FTP 连接问题

FTP 连接问题

这是我在 CentOS 论坛上提出的一个问题的转帖这里a 我感觉我现在有点力不从心,而 StackExchange 过去一直对我很好。

我在通过 FTP 连接服务器时遇到了一些问题。我使用的是 ISPConfig 后端(我不熟悉),并且使用 Google 查看是否可以正确设置 FTP。ISPConfig 说我的 FTP 服务正在运行。

根据我尝试连接的位置,我收到以下两个错误:

https://ftptest.net/

Error: Could not connect to server: No route to host
Make sure to enter the correct server address
Ensure that the server is up and running.
Check your firewall configuration, port 21 needs to be opened.
Check your NAT router configuration, port 21 needs to be forwarded.
In some cases your ISP might block that port. In this case configure the server to use a different port. Contact your ISP for details.

菲利兹拉

Status:         Connection attempt failed with "ECONNREFUSED - Connection refused by server".

我已经对我的主机名进行了 ping 测试,并且它解析了(96 毫秒,所以它没有丢失)

以下是我认为相关的配置文件:

我快速搜索了如何加载模块,因为它已经在我的 proftpd.conf 文件中,并且遇到了ServerFault 上的这个答案运行命令后这是我的输出 /etc/rc.d/rc.sysinit 输出

更新

我可以确认端口 21 是开放的,因为我从以下位置获得netsat

tcp    0    0    :::21    :::*    LISTEN    1069/proftpd

ftp我尝试在终端中使用命令,这是我的回应

computer:~ user$ ftp IP-ADDRESS
ftp: Can't connect to `IP-ADDRESS': Connection refused

总结

我无法通过 FTP 连接,而且我不知道发生了什么事......

編輯

  • 10 月 30 日 14-1:更新了我的配置文件以显示我的进度
  • 10 月 30 日 14-2:添加iptables -L -n输出

答案1

Tracepath 显示访问主机本身没有问题(从配置文件中获取主机名)。但是当尝试访问主机的 21 端口时,tcpdump 显示:

07:18:15.545762 IP my.router.48912 > your.host.ftp: Flags [S], seq 1872206172, win 29200, options [mss 1460,sackOK,TS val 621547848 ecr 0,nop,wscale 7], length 0
07:18:16.034781 IP your.host > my.router: ICMP host your.host unreachable - admin prohibited, length 68

原因可能是您的 iptables 规则,它没有为端口 21 指定特定的 INPUT 处理,而只为端口 22(ssh)和 8080 指定了特定的 INPUT 处理:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited

因此它会落入 icmp-host-prohibited 行,这将导致如上所示的“ICMP 主机 your.host 无法访问 - 管理员禁止,长度 68”。

我不知道如何使用 ISPConfig 修复此问题,但您至少需要为端口 21 添加一条规则。此外,如果您想允许被动 FTP 模式,您还需要允许更多,请参阅https://unix.stackexchange.com/questions/93554/iptables-to-allow-incoming-ftp.如果您的任何客户端由于位于某些防火墙或路由器后面而无法使用主动模式,则需要使用被动模式,这包括大多数位于家庭路由器后面的用户以及大多数移动网络。

并确保 iptables 规则确实被激活。

相关内容