当前场景以下:linux
服务器A是双网卡,有一个内网IP和一个公网IP服务器
内网IP: 10.0.10.30ssh
外网IP: 58.68.255.123tcp
服务器B只有内网网卡,内网IP:10.0.30.88,它能够和10.0.10.30通讯。ide
如今的需求是客户机须要经过公网去ssh链接服务器B,因为服务器B没有公网IP,因此只能经过经过服务器A的iptables作端口转发。rest
打开linux内核的ip转发功能。ip
echo 1 > /proc/sys/net/ipv4/ip_forward(临时开启)ci
添加iptables规则。it
iptables -A PREROUTING -p tcp -d 58.68.255.123 --dport 3911 -j DNAT --to-destination 10.0.30.88:3911io
iptables -A POSTROUTING -p tcp -d 10.0.30.88 --dport 3911 -j SNAT --to-source 10.0.10.30
iptables -A FORWARD -d 10.0.30.88 -p tcp --dport 3911 -j ACCEPT
iptables -A FORWARD -s 10.0.30.88 -p tcp --sport 3911 -j ACCEPT
service iptables save
service iptables restart