几天前把拉斯维加斯服务器的数据转移到了香港的服务器,想到有些人可能没那么快知道,就使用iptables进行端口转发,实现FTP连接到拉斯维加斯服务器的IP,最后是到达香港的FTP服务器。
这实现不难,首先修改配置,实现开机就打开内核转发:
1 |
vim /etc/sysctl.conf |
把默认的:
1 |
net.ipv4.ip_forward = 0 |
改成:
1 |
net.ipv4.ip_forward = 1 |
然后执行:
1 |
echo 1 > /proc/sys/net/ipv4/ip_forward |
打开内核转发功能。
使用下面两条命令添加转发规则:
1 2 3 |
iptables -t nat -I PREROUTING -p tcp --dport 本机端口 -j DNAT --to 目标IP:目标端口 iptables -t nat -I POSTROUTING -p tcp --dport 本机端口(要和上面那句的端口一样) -j MASQUERADE |
然后保存iptables规则,并且重新启动iptables:
1 2 3 |
service iptables save service iptables restart |
但是连接FTP时,却提示读取目录列表失败:
后来单手摘JJ也来搞FTP端口转发,我把这个问题告诉了他,他折腾了一下,告诉我,原来执行下面几句还要加载几个iptables的模块:
1 2 3 4 5 |
modprobe iptable_nat modprobe ip_conntrack_ftp modprobe ip_nat_ftp |
使用过程中发现,iptables重启后就会自动卸载这个三个模块,因此最好把上面三句命令添加到iptables里面。
Comments are closed.