路由器

Linux端口转发(iptables)

2020-08-02  本文已影响0人  robot_test_boy

当服务器迁移,因为DNS未同步或某些人使用ip访问,一些流量还是会流向老的服务器。

使用iptables及其伪装特性,将所有流量转发到老的服务器。点击看iptables的介绍

本文假设没有运行的iptables,至少没有针对prerouting链和postrouting链的NAT表的转发规则。

1) 首先开启端口转发

# echo "1" > /proc/sys/net/ipv4/ip_forward

或sysctl net.ipv4.ip_forward=1

2) 增加端口转发

将端口1111上的流量转发到主机2.2.2.2 上的端口1111。

# iptables -t nat -A PREROUTING -p tcp        --dport 1111 -j DNAT --to-destination  2.2.2.2:1111

然后告诉IPtables伪装起来(masquerade)

# iptables -t nat -A POSTROUTING -j  MASQUERADE

仅仅重定向一个固定网络甚至是一台主机的流量

# iptables -t nat -A PREROUTING -s  192.168.1.1 -p tcp --dport 1111 -j DNAT        --to-destination 2.2.2.2:1111

仅仅重定向一个网段的流量

# iptables -t nat -A PREROUTING -s  192.168.1.0/24 -p tcp --dport 1111 -j DNAT  --to-destination 2.2.2.2:1111

这就可以进行Linux端口转发流量了。

查看转发规则 sudo iptables -t nat -nL

应用场景

1) docker bridge模式

2) 安全方面,同主机上端口指定网卡ip上的流量转发

3) 端口转发到另外的服务器,见上边案例

4) snat场景

5) dnat场景,内网访问外网

参考

https://www.debuntu.org/how-to-redirecting-network-traffic-to-a-new-ip-using-iptables/

上一篇 下一篇

猜你喜欢

热点阅读