連接 CentOS 7 VSFTPD 時目錄內容未列出
作業系統:CentOS 7 帶有 VSFTPD,防火牆暫時關閉
客戶:Filezilla
VSFTPD 配置設置:
用過的
[root@Turbo ~]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES ftpd_banner=Welcome to the DataMover FTP service. chroot_local_user=YES local_root=/home/ftp-docs listen=YES listen_ipv6=NO pasv_enable=YES pasv_max_port=65534 pasv_min_port=1024 pasv_address=192.168.20.88 hide_file=NO pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES
FileZilla 設置:
Logon Type Normal Port 21 Server Type Default (tried UNIX) Transfer Mode Passive (tried Active) Charset Auto detect Encryption Only use plain FTP (insecure)
我嘗試了傳輸模式和伺服器類型(在 UNIX 和自動檢測之間)的所有組合,但無濟於事。我使用純 FTP,因為我沒有將 TLS 添加到我的 CentOS 機器。我有一段時間有那個協議,因為我沒有它,我只是浪費時間協商到普通的 FTP。
這是 Filezilla 輸出:
Status: Disconnected from server Status: Connecting to 192.168.20.88:21... Status: Connection established, waiting for welcome message... Status: Connected Status: Retrieving directory listing... Status: Directory listing of "/" successful
有趣的是我沒有看到歡迎橫幅。我有一半希望看到這一點,因為 Filezilla 日誌說“等待歡迎消息……”。
和歡迎資訊一樣,目錄的內容是空白的。
使用者很好。我以使用者身份登錄並執行了操作,
cd ~
並且能夠驗證我是否進入了/home/ftp-docs
目錄。日誌文件顯示主要的虛無。
/var/log/消息:
Dec 11 09:23:35 Turbo systemd: Reloading. Dec 11 09:23:35 Turbo systemd: [/usr/lib/systemd/system/lvm2-lvmetad.socket:9] Unknown lvalue 'RemoveOnStop' in section 'Socket' Dec 11 09:23:35 Turbo systemd: [/usr/lib/systemd/system/dm-event.socket:10] Unknown lvalue 'RemoveOnStop' in section 'Socket' Dec 11 09:23:36 Turbo avahi-daemon[1227]: Invalid response packet from host 192.168.20.74. Dec 11 09:23:37 Turbo avahi-daemon[1227]: Invalid response packet from host 192.168.20.74. Dec 11 09:23:37 Turbo avahi-daemon[1227]: Invalid response packet from host 192.168.20.74. Dec 11 09:23:40 Turbo systemd: Stopping Vsftpd ftp daemon... Dec 11 09:23:40 Turbo systemd: Stopped Vsftpd ftp daemon. Dec 11 09:23:45 Turbo systemd: Starting Vsftpd ftp daemon... Dec 11 09:23:45 Turbo systemd: Started Vsftpd ftp daemon.
在我今天的所有測試中,/var/log/xferlog 顯示為空。
Tue Dec 8 15:48:35 2015 1 ::ffff:192.168.20.74 0 /CreativeCloudSet-Up.exe b _ i r datamover ftp 0 * i ~
我在伺服器上的命令行也很好。
[root@Turbo ~]# systemctl daemon-reload [root@Turbo ~]# systemctl stop vsftpd [root@Turbo ~]# systemctl start vsftpd [root@Turbo ~]# vi /var/log/messages [root@Turbo ~]# vi /var/log/xferlog [root@Turbo ~]#
只是為了完整起見,主目錄的內容很好。
[root@Turbo ~]# ls -l /home total 4 drwxr-xr-x. 3 root ftp-users 35 Dec 9 16:29 ftp-docs ... [root@Turbo ~]# [root@Turbo ~]# cd /home/ftp-docs/ [root@Turbo ftp-docs]# ls -l total 4 -rwxr--r--. 1 datamover root 13 Dec 8 15:47 smurfit.txt drwxr--r--. 2 root root 6 Dec 9 16:29 sub1 [root@Turbo ftp-docs]#
我瀏覽了很多網頁,這就是為什麼我將
hide_file
四個被動條目添加到我的vsftpd.conf
配置文件中。其他人連接有問題。那是而且不是我的問題。我連接很好。我只是什麼都沒看到。雖然我目前禁用了防火牆,但這是我的
iptables
設置:
vi /etc/sysconfig/iptables
# FTP -A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 1024:65535 -j ACCEPT
我確實讀過 CentOS 7 使用 FirewallD,而不是 iptables,但正如你所看到的:
[root@Turbo ~]# firewall-cmd --get-active-zones FirewallD is not running [root@Turbo ~]#
以下是我仔細閱讀的一些資源:
- FTP 文件Zilla
- 沒有到主機的路由
- 配置 vsftpd 以使用被動模式
- VSFTPD 沒有列出目錄的內容(我的問題)
- 如何在 CentOS 7 上安裝和配置 VSFTPD
- 設置 VSFTPD 以允許使用者上傳
- 設置預設 ftp 根文件夾
- 目錄列表不可見
- VSFTPD 監禁使用者
對我錯過的任何事情有什麼想法嗎?
這個問題的解決方案是如此,如此不明顯。當我知道正確的搜尋詞時,現在很明顯,但在過去的幾天裡沒有,並且更好地理解了事情,這些部分開始到位。許多關於“VSFTPD 目錄內容未列出”的文章無休止地談論被動與主動、埠、權限、使用 hide_file、local_root 等。
當我問自己必須有一種方法來獲取詳細的日誌記錄或“vsftpd 詳細日誌記錄”時,我真正的頓悟是我的關鍵術語。可以這麼說,這個想法及其實施擊中了母親的負擔。我開始知道 SELinux 的存在。這部分導致了我的痛苦。
這篇文章,在支持 FTPS 和 SELinux 的 CentOS 中安裝和配置 VSFTPD,對解決我的問題有很大幫助。
這些說明創建了幾個文件 mypol.*,我將其刪除。這讓我可以訪問 smurfs.txt,但我仍然遇到 sub1 的問題。
我通過注意到(為什麼我花了這麼長時間?)解決了這個問題 sub1 的所有者是 root,而不是 datamover。當我固定所有權(好的,權限)時,我也可以訪問該文件夾。
我只是嘗試下載兩個文件並成功。
我仍然無法上傳到
/home/ftp-docs/
並且必須保持 root 作為該文件夾的所有者以及 755 權限。任何偏差都會導致 FTP 停止工作。但是,我可以上傳到 sub1。所以解決方案(解決方法?)是簡單地上傳到子文件夾。為了讓事情順利進行,最後我必須執行以下操作,其中 /mnt/raid1 是本例中 FTP 客戶端的主目錄。(我曾經使用 /home/ftp-docs/。)
# /sbin/restorecon -v /mnt/raid1 # setsebool -P ftpd_full_access 1
我使用的有用連結: