![带有 TLS 的 FTP 不起作用,我也无法在 pure-ftpd 中更改端口](https://linux22.com/image/1447325/%E5%B8%A6%E6%9C%89%20TLS%20%E7%9A%84%20FTP%20%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%EF%BC%8C%E6%88%91%E4%B9%9F%E6%97%A0%E6%B3%95%E5%9C%A8%20pure-ftpd%20%E4%B8%AD%E6%9B%B4%E6%94%B9%E7%AB%AF%E5%8F%A3.png)
我的 ftp 服务器一直出现问题,我尝试修复已经有一个多星期了。
我的配置:
- 我在 Raspberry Pi 上运行 Raspbian。
- 我的 ftp 服务器是 pure-ftpd,我使用以下开关运行它:
/usr/local/sbin/pure-ftpd -D -C 5 -E -A -H -x -p 35000:36000 -u 0 -y 5:3 -Y 1
- 我已经使用选项“--with-tls”进行了编译
- 我在用显式 TLS 加密,(我也尝试过隐式,结果相同)
- 我已经按照 pure-ftpd 中的 -p 开关定义端口转发了我的被动端口范围
- 我还将端口 20 转发到 21
我正在运行的其他服务器:
- Samba 服务器
- Apache Web 服务器
- 自定义 Python 套接字服务器
- 以及内置的 shh/sftp 服务器
我也正在运行 no-ip DUC 客户端
简而言之,以下是我在使用 pure-ftpd 时遇到的问题:
- 局域网中无 TLS 的 FTP(主动和被动):工作
- 局域网内使用 TLS 的 FTP(主动和被动):工作
- WAN 中无 TLS 的 FTP(被动):工作
- WAN 中带有 TLS 的 FTP(主动和被动):不起作用
- 无法更改端口,因为它无法在 WAN 中工作
以下是错误日志和我尝试过的方法:
ftptest.net 结果 (对于使用 TLS 的 FTP):
........
命令:PASV
回复:227 进入被动模式 (192,168,0,4,138,78)
错误:服务器在 PASV 回复中返回了不可路由的私有 IP 地址
我在论坛上看到过,您必须使用 -P 开关指定 PASV IP 地址,所以我这样做了,结果如下:
回复:211-支持的扩展:
...........................
错误:收到回车符但未换行
这是为了有或没有 tls 均可!是的,-P 开关根本不起作用!
我还应该指出,被动模式端口是正确的(取自 PASV 命令)
Filezilla 日志(带有明确的 tls):
命令:PASV
响应:227 进入被动模式 (192,168,0,4,138,251)
状态:服务器发送了带有不可路由地址的被动回复。请改用服务器地址。
命令:MLSD
错误:无法建立数据连接:ECONNREFUSED - 服务器拒绝连接
错误:服务器关闭连接
错误:无法检索目录列表
使用 -P 开关:
除了没有“服务器发送了无法路由的地址*”之外,其他都一样
我还尝试过弄乱防火墙(iptables),通过使用以下命令允许一切(从而禁用防火墙):
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
我还不能更改默认端口,因为如果我这样做,我会收到连接被拒绝错误。
我今天还出现了另一个奇怪的症状:
我只能打开端口 21 到 21(它可以工作),因为如果我打开 20,我就能获得 ssh 服务器。
记录一下:
状态:已连接,正在等待欢迎消息... 回复:
SSH-2.0-OpenSSH_6.0p1 Debian-4+deb7u2
错误:回复不包含有效的响应代码
我还尝试了端口转发 443、989 到 990(用于隐式 tls),并且尝试将 Raspberry Pi 设置为 DMZ 主机。
注意:我从 vsftpd 切换过来,因为它很慢并且不支持安全 ftp(Raspberry Pi 的 3.x 需要编译安全 ftp 支持,但我编译时出现错误),并且我不使用 proftpd,因为它无法编译 tls 支持
/var/log/messages 没有提供任何有用的信息(只说用户每次都登录,无论是否使用 tls)
希望你们能帮助我,因为我真的迷路了!
答案1
终于解决了!我所要做的就是将我的被动端口范围从 50000-51000 更改为 12000-13000!现在一切都运行良好!!!我现在像这样使用 pure-ftpd:
/usr/local/sbin/pure-ftpd -D -C 5 -E -A -H -x -S 192.168.0.4,60 -p 12000:13000 -u 0 -y 5:3 -Y 1 -P &