需求背景:
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