我正在尝试通过另一台使用两个以太网卡的 PC 创建的 NAT 网络连接到 FTP 服务器。我想通过 FTP 客户端通过第一台 PC 访问第二台 PC 的 FTP 服务器。硬件配置如下:
FTP 服务器可以通过标准端口 21 访问,而我使用 1024-1048 端口范围进行被动连接。在没有NAT的本地网络上,FTP服务器可以完美工作。当我使用 iptables 输入 NAT 规则时,我可以连接到端口 21,但无法获取文件和文件夹列表。我使用的 iptables 配置如下:
*filter
-A FORWARD -d 145.34.67.230/32 -i enp1s0 -o enp2s0 -p tcp -m tcp --dport 21 -j ACCEPT
-A FORWARD -d 145.34.67.230/32 -i enp1s0 -o enp2s0 -p tcp -m tcp --dport 1024:1048 -j ACCEPT
COMMIT
*nat
-A PREROUTING -i enp1s0 -p tcp -m tcp --dport 21 -j DNAT --to-destination 145.34.67.230:21
-A PREROUTING -i enp1s0 -p tcp -m tcp --dport 1024:1048 -j DNAT --to-destination 145.34.67.230:1024-1048
COMMIT
我在尝试连接时使用wireshark扫描网络,发现FTP服务器发送相对于本地网络的地址和端口,如您所见:
我想弄清楚我需要设置什么来纠正来自 FTP 服务器的数据包,以便我的 FTP 客户端可以通过 NAT 正确连接。
我使用的是常规 Ubuntu 22.04。
谢谢您的帮助