我刚刚安装了vsftpd,并启动了服务。 该服务正在运行,我的netstat转储显示它(见下文)。 我也启用了匿名访问的措施。 但是,当我尝试使用FTP客户端访问服务器,或者甚至只是telnet到端口21时,我会收到“拒绝连接”。
我如何解决这个问题?
netstat -a:
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:11110 *:* LISTEN tcp 0 0 *:mysql *:* LISTEN tcp 0 0 *:macromedia-fcs *:* LISTEN tcp 0 0 *:ndmp *:* LISTEN tcp 0 0 *:ftp *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost:19350 *:* LISTEN tcp 0 0 *:lmsocialserver *:* LISTEN tcp 0 0 localhost:19350 localhost:60863 ESTABLISHED tcp 0 0 mischost:ssh c-71-56-64-141.hsd1.g:62946 ESTABLISHED tcp 0 0 localhost:60863 localhost:19350 ESTABLISHED tcp 0 196 mischost:ssh c-71-56-64-141.hsd1.g:18606 ESTABLISHED tcp 0 0 *:http *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 mischost:http baiduspider-123-125-7:25479 FIN_WAIT2 udp 0 0 *:ndmp *:*
的/ etc / SYSCONFIG / iptables的:
:INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [1:92] -A INPUT -i lo -j ACCEPT -A INPUT -d 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m tcp --dport 10000 -j ACCEPT -A INPUT -p tcp -m tcp --dport 1935 -j ACCEPT -A INPUT -p tcp -m tcp --dport 1111 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 -A INPUT -j REJECT --reject-with icmp-port-unreachable -A FORWARD -j REJECT --reject-with icmp-port-unreachable -A OUTPUT -j ACCEPT COMMIT
iptables -L -n:
Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 REJECT all -- 0.0.0.0/0 127.0.0.0/8 reject-with icmp-port-unreachable ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:10000 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1935 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1111 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8 LOG all -- 0.0.0.0/0 0.0.0.0/0 limit: avg 5/min burst 5 LOG flags 0 level 7 prefix `iptables denied: ' REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable Chain FORWARD (policy ACCEPT) target prot opt source destination REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable Chain OUTPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
“连接拒绝”是非常具体的。 这意味着,当你尝试连接到这个服务(通过发送一个SYN数据包),你得到了一个特定的响应(一个RST数据包),意思是“服务器在那里,但没有提供服务的端口,没有任何防火墙如果没有任何事情真正在端口上进行监听,那么这个响应就是你所得到的,因为你已经validation了端口正在监听,所以这个响应必须来自某个防火墙,或者是服务器本身的防火墙你可以用iptables -L -n来检查)或者你和服务器之间的其他防火墙,如果不是服务器本身,它可能是服务器和客户端之间的任何其他路由器。
这一切都假定您尝试telnet到正确的IP地址。
检查防火墙是否打开了端口21,并且在防火墙中有用于连接跟踪数据stream的模块。