vsftpd:從外部 IP 連線時出現 ECONNREFUSED

vsftpd:從外部 IP 連線時出現 ECONNREFUSED

當我開始設定 vsftpd 伺服器時,我遇到了很多問題,但這次我無法弄清楚到底出了什麼問題。

我有一個運行 vsftpd 的 ubuntu 14.04 伺服器。伺服器位於 DMZ 中的防火牆後面,並已指派了特定的內部和全域 IP 位址。從本機以及內部網路進行連線都可以。

到目前為止一切順利,但是當我嘗試透過其全域 IP 位址存取 FTP 伺服器時,無論是從內部網路還是其他任何地方,FileZilla 都會給我以下資訊:

Status:         Connecting to <global.ip>:21...
Status:         Connection attempt failed with "ECONNREFUSED - Connection refused by server".
Error:          Could not connect to server

我可以排除錯誤 IP 位址的原因,因為輸入不存在的 IP 會導致逾時錯誤,並且對全域 IP 執行 whois 檢查會向我提供我們公司的網路服務供應商。

我已經在 vsftpd.conf 中設置了 50.000 範圍內的被動端口,防火牆也會轉發來自端口 20、21 和 50.000-50.050 的請求。然後,我再次在 iptables 配置中添加了一些規則,以允許所需的流量通過。

作為參考,這是我的 iptables 設定:

~$ sudo iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere
tcp dpts:50000:50050
ACCEPT     tcp  --  anywhere             anywhere
tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere
tcp dpt:ftp

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere
tcp spt:ftp-data

還有我的 vsftpd.conf:

listen=YES
local_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600
ftpd_banner=Welcome
chroot_local_user=YES
ls_recurse_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_ciphers=HIGH

rsa_cert_file=/home/awacs/vsftp.crt
rsa_private_key_file=/home/awacs/vsftp_clear.key

#pasv_address=<global.ip>
pasv_min_port=50000
pasv_max_port=50050
listen_port=21
pasv_enable=YES
#listen_address=<global.ip>

正如你所看到的,我嘗試了配置中的pasv_address和參數。 listen_addressListen_address導致伺服器只接受來自全域IP的請求,這使得它根本不回應。設定 pasv_address 也不能令人滿意,因為外部請求仍然不起作用,並且來自內部網路的連接卡在目錄 LIST 命令處。

如果有人能告訴我我做錯了什麼或忽略了什麼,我會非常高興。我再次強調,伺服器在內部網路上運作得很好,但我無法讓它透過全球 IP 進行連線。先感謝您。

相關內容