iptables 做 ssh 登录的端口转发

使用 ssh 登录A机器(IP:1.1.1.1) 的 2333 端口,可以自动跳转到 B机器(IP:2.2.2.2)上,其中B机器的 ssh 登录端口就是默认的 22。

首先确保几个条件:

1. iptables 端口转发打开了, 改 /etc/sysctl.conf 这个文件,把 net.ipv4.ip_forward=1 这句话的注释取消。

2. 两台机器可以联通

3. iptables 的 filter 下面的 FORWARD 默认策略要是 ACCEPT

然后在 A机器上运行下面两个命令:

1 iptables -t nat -A PREROUTING -d 1.1.1.1 -p tcp --dport 2333 -j DNAT --to-destination 2.2.2.2:22
2 
3 iptables -t nat -A POSTROUTING -d 2.2.2.2 -p tcp --dport 22 -j SNAT --to 1.1.1.1

数据包首先进入 PREROUTING 链,更改数据包的目标地址,然后在 POSTROUTING 上再把源地址改成本机IP。关于数据包进入这几个链的顺序,搜一搜就可以知道了,值得了解一下。

注意,在A机器上配置时不要自作聪明把本机IP写成 127.0.0.1 或者 192.168.0.1,就写成实际的 IPv4 地址就行。

posted on 2017-02-20 16:48  daghlny  阅读(2872)  评论(0编辑  收藏  举报

导航