最近利用Linux搭建服務器
搭建FTP的時候決定使用VSFTP搭建,結果卻出現了無法正常連接與無法上傳文件等諸多問題
經過許久的努力,終於讓VSFTP正常運行了
下面一一給出我的解決方案
1、關閉防火牆
使用yum安裝好vsftp並配置完成啟動后,我竟然發現本地連接FTP時完全收不到回應
就連歡迎信息也沒有,這是非常不尋常的狀況
經檢查VSFTP配置文件正確,程序也正常運行
於是我懷疑到防火牆
|
1
|
service iptables stop
|
運行上面的命令臨時關閉防火牆后,可以正常收到系統發送的歡迎信息了
2、設置權限
我使用的是一個名叫SCKA的賬戶連接FTP,可是我卻收到了下面的反饋信息
500 OOPS: cannot change directory:/home/SCKA從報錯信息上看,應該是切換到主目錄/home/SCKA時出現了錯誤,於是我嘗試執行下面的命令
|
1
|
chmod 777 /home/SCKA/
|
如此操作后本應解決問題,可是仍舊收到報錯信息
3、設置sebool
我突然想到我使用的Linux默認開啟了sebool,會不會是被它阻止了連接?
於是運行下面的命令,獲取sebool關於FTP的所有設定
|
1
|
getsebool -a|grep ftp
|
果然發現了一些問題
根據回饋來看似乎關於FTP的很多設置都處於off狀態,我特別注意了下其中的ftp_home_dir,似乎和我剛剛出現的問題有關
於是嘗試運行下面的命令解決
|
1
|
setsebool ftp_home_dir 1
|
重新啟動VSFTPD,然后再重新連接FTP,果然成功返回了主目錄!
不過這樣設定后重啟就會失效,我們需要進行永久的設置
|
1
|
setsebool -P ftp_home_dir 1
|
4、進一步解決無法上傳文件問題
連接上FTP后我再次嘗試上傳文件,可是再次接到報錯信息,無權限
首先想到權限問題,運行chmod 777 目錄名 后問題卻依舊
突然想到剛剛sebool里面還有幾個選項是off
|
1
2
3
|
setsebool allow_ftpd_full_access 1
setsebool allow_ftpd_use_cifs 1
setsebool allow_ftpd_use_nfs 1
|
用上面的命令把它們全部打開,然后重新連接了FTP,問題完美解決


