iptables流量中转

centos默认不适用iptables,因此如果需要使用iptables,需要停止firewalld

systemctl stop firewalld

再centos上使用iptables需要安装iptables依赖,即iptables-services、iptables-devel这两个包

sudo yum install iptables-services iptables-devel

启动iptables

systemctl enable iptables.service && sudo systemctl start iptables.service

流量中转

1./etc/sysctl.conf文件中添加net.ipv4.ip_forward=1,表示开启内核流量转发
2. 重新加载配置
sysctl -p

3. 正式配置iptables转发规则

iptables -t nat -A PREROUTING -p tcp --dport [源端口号] -j DNAT --to-destination [目标IP:目标端口号]
iptables -t nat -A PREROUTING -p udp --dport [源端口号] -j DNAT --to-destination [目标IP:目标端口号]
iptables -t nat -A POSTROUTING -p tcp -d [目标IP] --dport [目标端口号] -j SNAT --to-source [中转服务器IP]
iptables -t nat -A POSTROUTING -p udp -d [目标IP] --dport [目标端口号] -j SNAT --to-source [中转服务器IP]

源端口表示中转机器想要转发本机器上哪个端口进来的流量
前两条是去程,表示把源端口进来的流量都转发到目的机器上。
后两条是回程,表示把目的机器*[目标端口号]*发回来的数据的源地址修改成中转机器的地址

4.配置完成之后保存

service iptables save

当然别忘了中转机器要开启对应的端口,允许数据进来

iptables -I INPUT -p tcp --dport [源端口号] -j ACCEPT
service iptables save

你可能感兴趣的:(linux,网络,centos,运维)