- 论坛徽章:
- 0
|
外网运行 squid 两快网卡 外网 eth0 IP为本 222.222.222.222 内网 eth1 1.1.1.1
内网有案2台web服务器,分别是 1.1.1.2 1.1.1.3
这两台内网服务器安装有 pure-ftpd 服务
我要实现在外网使用这两台ftp服务,就想出了如下方案
修改1.1.1.2 的 pure-ftpd 设置为:
# IP address/port to listen to (default=all IP and port 21).
Bind ,2222
# 使用2222做为ftp 端口
# Port range for passive connections replies. - for firewalling.
PassivePortRange 30000 35000
#使用数据端口范围为 30000 到 35000
修改1.1.1.3 的 pure-ftpd 设置为:
# IP address/port to listen to (default=all IP and port 21).
Bind ,3333
# 使用3333做为ftp 端口
# Port range for passive connections replies. - for firewalling.
PassivePortRange 35001 40000
#使用数据端口范围为 35001 到 40000
这样这两台服务器就分别适用不同的端口了
在外网服务器这样设置 iptables
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
echo 1 >; /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -d 222.222.222.222 -p tcp --dport 2222 -j DNAT --to 1.1.1.2
iptables -t nat -A POSTROUTING -d 1.1.1.2 -p tcp --dport 2222 -j SNAT --to 1.1.1.1
iptables -t nat -A PREROUTING -d 222.222.222.222 -p tcp --dport 30000:35000 -j DNAT --to 1.1.1.2
iptables -t nat -A POSTROUTING -d 1.1.1.2 -p tcp --dport 30000:35000 -j SNAT --to 1.1.1.1
iptables -t nat -A PREROUTING -d 222.222.222.222 -p tcp --dport 3333 -j DNAT --to 1.1.1.3
iptables -t nat -A POSTROUTING -d 1.1.1.3 -p tcp --dport 3333 -j SNAT --to 1.1.1.1
iptables -t nat -A PREROUTING -d 222.222.222.222 -p tcp --dport 35001:40000 -j DNAT --to 1.1.1.3
iptables -t nat -A POSTROUTING -d 1.1.1.3 -p tcp --dport 35001:40000 -j SNAT --to 1.1.1.1
这样可以连接到ftp 服务,但是不能对文件进行列表,我认为是 ftp 的 21(2222)端口已经连接成功了,但数据传送端口 nat 的有问题。
请帮帮我看问题在那里 |
|