轉自http://blog.sina.com.cn/s/blog_4da051a60101c8ny.html
vsftp:425 failed to establish connection解決辦法
425 Failed to establish connection.
這時候,可以在ftp下使用命令:quote PASV
試試用以被動模式連接。
一般DOS命令行下都是默認以PORT主動模式連接。
即,端口21監聽,處理控制信息,再以端口20連接客戶端進行數據傳送。
而,經常的,通過外網的NAT的,基本端口20的數據連接都會被禁止掉。
所以,如果想對外網開放ftp,最好使用PASV模式。
PASV被動模式是指,以端口21監聽,有連接請求時,隨機開放一個比較大的端口號來處理數據傳輸。
vsftp中,通過編輯 /etc/vsftp.conf 實現啓用PASV連接。
sudo vi /etc/vsftp.conf
在配置文件中添加下面語句:
pasv_enable=YES
pasv_min_port=6000
pasv_max_port=7000
也即,啓動PASV連接模式,開放6000-7000端口號作爲數據傳送端口。
此外,如果是對外網開放,必須在路由器的轉發規則中,開放21端口。
爲了保險,可以將6000-7000端口也寫入到iptables中白名單中。
命令:
sudo iptables -A INPUT -p tcp --dport 6000:7000 -j ACCEPT
在ubuntu中一般可以不用,因爲ubuntu雖然有iptables,但默認是沒有規則的,
也即,不會設置端口限制,但其他版本就最好加上哈。
此外,如果帶有selinux的,最好也關閉。
ubuntu是默認沒安裝selinux。
像redhat、centOS之類的,
修改/etc/selinux/config文件中的SELINUX="" 爲disabled ,然後重啓。
這樣設定後,一般就可以搞定了。
如果還不行,可以通過一下思路:
1、防火牆(本機、客戶機)
2、FTP目錄的權限
3、客戶機是否是IPv6網絡
4、客戶機的網關限制了外網ftp