在工作环境中接触到iptables有时候需要进行端口转发功能,例如我本机不开放那些端口的,但可以使用它来进行转发到使用的端口上。下面小编给大家介绍一下如何使用iptables进行本地端口转发。希望对大家有所帮助 。
首先登陆我们的内网服务器,工作机不能随便拿来用的。
再查看一下我们系统里当前使用的端口情况
从上图可以查看到我们系统里边的22端口和25是使用的。
下面我开启一下系统的ip转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
我们也可以通过编辑 /etc/sysctl.conf文件来启用ip转发,然后再使用sysctl命令生效。
例如我们将连接服务器 43999端口的连接都转发到22端口上面去,可以使用下面的命令
iptables -t nat -A PREROUTING -p tcp -i eth0 -d 192.168.31.147 --dport 43999 -j DNAT --to 192.168.31.147:22
这样就可以实现在外面也可以通过43999端口连接ssh了。其实我们的43999端口是在系统里没有开的,但通过转发就可以使用了。
以上只是使用了在外面的情况,但如果在服务器里边是使用不到43999端口的。
这里我们还可以在里边进行设置本地转发。
再从本地进行测试,也是可以连接了,虽然端口是没有开启的。
注意事项
iptables转发功能需要系统的支持才行,如果系统不开启,即使设置了也没有用。