我在 Ubuntu 10.04 上启动了 vsftpd,但无法连接到它。
错误提示(FTP 客户端):
Status: Connecting to 124.205.xx.xx:21...
Error: Connection timed out
Error: Could not connect to server
我已经检查了服务器状态,vsftpd 正在运行:
$ ps ax | grep vsftpd
23646 ? Ss 0:00 /usr/sbin/vsftpd
23650 pts/1 S+ 0:00 grep --color=auto vsftpd
端口 21 也处于监听状态:
$ netstat -tlnp | grep 21
(No info could be read for "-p": geteuid()=1000 but you should be root.)
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN -
我可以连接到本地主机:
$ ftp localhost
Connected to localhost.
220 (vsFTPd 2.2.2)
Name (localhost:jlee):
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
以下是 iptables 输出
$ sudo iptables -vL
Chain INPUT (policy ACCEPT 191 packets, 144K bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 124 packets, 28502 bytes)
pkts bytes target prot opt in out source destination
这里有什么问题?
答案1
检查你的 ftp 客户端是处于主动模式还是被动模式。如果是被动模式,你必须添加一些参数。像这样:
pasv_enable=YES pasv_promiscuous=NO pasv_min_port=40000 根据需要 pasv_max_port=41000 pasv_address=xxx.xxx.xxx.xxx (你的 ip) port_promiscuous=NO
答案2
我刚刚apt-get install vsftpd
在我的 Ubuntu 10.04 笔记本电脑上安装了 vsftpd,守护进程开箱即可运行。
您是否修改了 vsftpd 配置文件?
ftp localhost
如果您尝试在服务器上执行此操作,这对您是否有用?
您是否启用了 iptables?是否iptables -vL
列出了一些规则?
答案3
这不是您的服务器防火墙,也不是您的 vsftp 配置,而是您和您的服务器之间的某种东西 =P
您能从您的 PC 连接到任何其他 FTP 服务器吗?您能从另一台主机连接到您的 FTP 吗?
答案4
我不确定,但可能是 apparmor 守护程序拒绝您将其连接到 FTP 服务器,禁用 apparmor 并查看是否有帮助
service apparmor stop