利用iptables做端口转发

Posted lichmama

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用iptables做端口转发相关的知识,希望对你有一定的参考价值。

需求背景:

  A与C不在同一网段无法直接访问,而A和B,C和B可以互通。现需要A借助B访问C的3306端口。

 

解决方案:

  利用iptables配置规则,实现端口转发。

 

具体操作:

在B上开启端口转发功能:
    echo 1 > /proc/sys/net/ipv4/ip_forward
    或 
    vim /etc/sysctl.conf,修改net.ipv4.ip_forward = 1
    sysctl -p
开启B的23306(或其他合适的端口):
    iptables -A INPUT -p tcp -m tcp --dport 23306 -j ACCEPT
配置路由转发规则:
    iptables -t nat -A PREROUTING -p tcp -m tcp --dport 23306 -j DNAT --to-destination C:3306
    iptables -t nat -A POSTROUTING -p tcp -m tcp -d C --dport 3306 -j SNAT --to-source B

 

以上是关于利用iptables做端口转发的主要内容,如果未能解决你的问题,请参考以下文章

iptables端口复用和端口转发

iptable实现端口转发

iptables做端口转发

利用iptables将一台机子的某个端口的流量转发到另外一个机子的某个端口

iptables实现端口转发

20180202使用iptables做MySQL的端口转发