Centos搭建FTP服务
前言:
Centos 搭建FTP服務學習記錄
FTP簡介
FTP簡稱“文件傳輸協議”,用于Internet上的控制文件的雙向傳輸。
在FTP中常遇到兩個概念:
下載和上傳
“下載”文件就是從遠程主機拷貝文件至自己的計算機上
“上傳”文件就是將文件從自己的計算機拷貝到遠程主機上。
FTP連接及傳輸模式
控制連接 TCP 21 ,用于發送FTP命令信息
數據連接 TCP 20,用于上傳、下載數據
數據連接的建立類型:
主動模式:服務端從20端口主動向客戶端發起連接 被動模式:服務端在指定范圍內某個端口被動等待客戶端連接
被動模式相較于主動模式好,因為主動連接的話會涉及到開放服務器端防護墻的20、21端口,而且主動模式服務器無法控制客戶端所開啟的端口,也容易被客戶端的防火墻攔截。
FTP用戶的類型:
匿名賬戶:
anonymous
ftp
本地用戶
搭建過程
服務器端:
這里實驗使用的是vsftpd,所以要先下載
$ yum install vsftpd但是下載的過程遇到了點問題,如下:
這個問題是yum命令被鎖
解決方法:等待一會或者強制結束
rm -f /var/run/yum.pid下載好之后,先來了解一下vsftpd服務的一些默認目錄,以免后面操作時不知道有關目錄在哪里
/usr/sbin/vsftpd ---- VSFTPD的主程序 /etc/rc.d/init.d/vsftpd ---- 啟動腳本 /etc/vsftpd/vsftpd.conf ---- 主配置文件 /etc/pam.d/vsftpd ---- PAM認證文件 /etc/vsftpd.ftpusers ---- 禁止使用VSFTPD的用戶列表文件 /etc/vsftpd.user_list ---- 禁止或允許使用VSFTPD的用戶列表文件 /var/ftp ---- 匿名用戶主目錄 /var/ftp/pub ---- 匿名用戶的下載目錄查看配置文件
vi /etc/vsftpd/vsftpd.conf #PS:以root權限去看,因為下載的時候便是用的root用戶
這里就解釋其中重要的一些配置:
| download_enable | 是否允許下載文件 |
| anonymous_enable | 是否允許匿名用戶訪問 |
| anon_upload_enable | 是否允許匿名用戶上傳文件 |
| anon_mkdir_write_enable | 是否允許匿名用戶創建目錄 |
| anon_other_write_enable | 是否開放匿名用戶的其他寫入權限 |
| local_enable | 是否允許本地用戶登錄 FTP |
其他的如果用到查詢即可
客戶端:
客戶機需要安裝一下ftp包,這樣才能使用連接命令ftp ip,下載命令:
yum install ftp匿名用戶測試
對于vsftpd默認配置是開啟了本地用戶和匿名用戶,可以直接登錄的,所以這里沒有對配置文件進行修改
服務器端先開啟一下服務
客戶端使用匿名用戶連接,注意需要在同一個網段(兩個網絡都選為僅主機模式即可或自己手動配置),如果不在一個網段則會出現下面的問題
但是還有一種情況,就是客戶端和服務器端都在一個網段,還是出現這個情況,那就應該是服務器端的防火墻將請求給攔截了,所以就需要關閉服務器端的防火墻
解決方法:
1.查看防火墻:iptables -L 2.清空防火墻:iptables -F #注:這個設置只是暫時的,一旦關機再開機還需要重新進行輸入,如果想永久更改就需要下載iptables-services,然后進行更改,這里不詳細敘述客戶端再次連接,連接成功(匿名用戶ftp沒有密碼,空格即可)
配置文件中匿名用戶登錄 vsftpd 服務后的根目錄是 /var/ftp/,進入/var/ftp/pub上傳一個自己創建的文件看一下,發現無法創建
查看一下配置文件,匿名用戶上傳功能開了,但為什么還是不行
看了老師的講解,才知道目錄也需要進行設置權限,但如果直接使用chmod命令是不行的,會有一小bug,最好的方法是更改目錄的屬主
重啟一下,客戶端再次連接,但發現還是不行,之前忘記在配置文件加上一段代碼,這段代碼寫哪里都可以,只要是在配置文件中
但。。。。還是不行,我要吐了,什么情況,查了半天發現:是selinux限制了,把selinux關掉就可以了
先查看下selinux里有哪些關于ftp的
getsebool -a | grep ftp
如果是寫權限和全部權限是off的話就使用命令打開
再在客戶端進行上傳測試,成功。
下載測試,成功
最后這里提一點常用的Linux ftp 命令
ftp中用lcd切換本地路徑,用cd切換遠程服務器的路徑。如:cd目錄名(進入服務器目錄) lcd目錄名(進入本機目錄) !命令是執行本地shell命令具體的看大師傅的博客
Linux ftp 命令
本地用戶測試
上面使用了匿名用戶進行登陸,并上傳下載,這次通過本地用戶來實現一下
我的本地用戶是shy,第一步就設置配置文件(其實不用改就可以)
local_enable=YES write_enable=YES local_umask=022 userlist_deny=YES userlist_enable=YES為了安全默認禁止以root身份登入,如果你實在想改的話就可以編輯一下文件
vi /vsftpd/user_list
不過不建議,自己可以設置一個新的用戶進行測試,這里我就使用本地用戶shy
登陸成功,進行上傳下載測試,注意創建的文件位于shy賬戶家目錄
上傳成功
除本地用戶以為,還有一個虛擬用戶,虛擬用戶不是系統中存在的,因此比本地用戶安全。這里就先不學習,待到有需要時再進行學習。
總結
以上是生活随笔為你收集整理的Centos搭建FTP服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Centos DHCP服务搭建及测试
- 下一篇: Python爬虫之旅_(数据解析)_Xp