我试图在Centos 7上安装vsftpd。我可以从本地连接到服务器,但是不能从远程机器连接到服务器。 对于系统和networkingpipe理这个话题,我有点新鲜。
以下是我查找答案的一些地方:
无法通过firewalld打开FTP端口
添加规则后,Centos不会打开端口
端口80过滤了nmap
我有vsftpd服务启动并运行:
> netstat -plnt | grep ':21. ' tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 12393/vsftpd
我可以用ftp localhostlogin就好了。 但是,当我尝试远程login,几秒钟后,我“连接超时”。 所以我怀疑防火墙的问题。
(另外,从FTP端口closuresvsftpd服务
lsof -i:21 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME vsftpd 12393 root 3u IPv4 63746670 0t0 TCP *:ftp (LISTEN)
)
既然这是Centos,那我就用firewalld吧。 港口21 似乎是开放的:
> firewall-cmd --list-services dhcpv6-client ftp https ssh
和:
> firewall-cmd --list-ports 433/tcp 21/tcp 80/tcp 20/tcp
也:
> firewall-cmd --get-default-zone public > firewall-cmd --get-active-zone public interfaces: enp0s25
我已经通过firewall-cmd --reload重新加载了firewalld
但是,如果我从远程机器尝试nmap,它声称端口20和21被过滤:
> nmap -p20,21 my.ftp.server.com Starting Nmap 6.40 ( http://nmap.org ) at 2017-03-27 13:48 PDT Nmap scan report for rrcs-xx-xx-xx-xx (xx.xx.xx.xx) Host is up (0.035s latency). PORT STATE SERVICE 20/tcp filtered ftp-data 21/tcp filtered ftp
我甚至跟踪过firewalld的各种连锁店,看看所有的iptables规则,并发现这些规则:
> iptables -S IN_public_allow -N IN_public_allow -A IN_public_allow -p tcp -m tcp --dport 21 -m conntrack --ctstate NEW -j ACCEPT -A IN_public_allow -p tcp -m tcp --dport 20 -m conntrack --ctstate NEW -j ACCEPT
我很高兴发布iptables -S的整个输出,如果有人认为这将有所帮助。
最后,我已经closures了SELinux足够长的时间,以确定我得到了与它一样的行为。
所以我的问题是:
其他一些机器可能是过滤端口21的stream量才能到达我的机器? (这台机器上也有一个networking服务器,我可以连接到很好)。 如果是这样,我怎么可能去确定呢?
有没有其他的东西,我可以检查debugging这个问题?
任何和所有的帮助表示赞赏。
nmap“已过滤”本身并不意味着您的FTP访问被阻止 – 只是意味着中间防火墙检测到您正在运行nmap扫描和探测并丢弃数据包。 这是一个很常见的“function”。 不幸的是,在防火墙开始丢弃你的ftp数据包之后,你必须稍微等待状态清除,以便你可以合法地尝试login。
除此之外,除了firewalld和iptables之外,还有其他的用户/端口控制服务可能会受到干扰。 一个是/etc/hosts.allow或/etc/hosts.deny,通过tcp_wrappers提供
尝试添加一行到你的hosts.allow文件中,内容如下:
ALL : YOUR_IP_ADDRESS_HERE : allow
这说“所有端口”:IP:允许访问。
另一个要问的问题是,如果您可以通过它的外部接口而不是本地主机回送别名从服务器login。 ftp MY_IP 。 即使在“监听”closures的情况下,通常也允许localhostlogin,例如/etc/vsftpd.conf
LISTEN=NO #是你的vsftpd.conf文件吗?
这是因为它实际上并没有“监听”外部ipv4或ipv6接口。
另外检查你的/etc/services文件,下面的行是注释还是注释?
services:ftp-data 20/tcp services:ftp-data 20/udp
关于iptables,如果你担心规则的干扰,只需要刷新它们:
iptables -F
所以我认为操作/检查的顺序是这样的:
netstat -al ,并检查/etc/vsftp.conf,/ etc / services,/etc/hosts.allow – 再试一次。 如果确定 ,那么中间或基于源的数据包过滤是你的敌人3.如果失败,刷新iptables,再试一次4.如果仍然失败,还有一些其他问题,防止你通过本地服务器login。
如果在第二点,你可以login,你仍然想尝试刷新你的iptables,并检查系统日志的错误消息。 通常情况下,传入的连接失败tcp_wrappers会导致“源连接断开…”。
请在vsftpd.conf中查看这些行
pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES
如果您无法缩servlets器上的连接范围,则可以开始查看从主机到服务器traceroute MY_SERVER_IP的路由,或从服务器traceroute MY_CLIENT_IP 。 这个命令也可以是tracepath 。 我会说,托pipe设施中的近服务器防火墙阻止你的连接是不太可能的 。 如果是企业环境,则很有可能,甚至可能,但是如果服务器所在的环境不是托pipe机构或教育机构,则在路由器上阻止FTP端口的情况就不那么常见了。 Comcast等客户端ISP也不常见。
远程机器有多远? 比如有多lessnetworking跳数? 如果你与服务器在同一个子网上,那显然这是服务器configuration。