Centos iptables 透明端口转发代理配置
需要将发往服务器A某个端口的流量转发到服务器B的某个端口上,记录一下配置步骤
启用iptables转发
确保在服务器A上启用了IP转发功能。编辑/etc/sysctl.conf文件并取消注释以下行(删除行首的"#"符号):
net.ipv4.ip_forward=1
保存并关闭文件后,使用以下命令使更改生效:
sudo sysctl -p
添加iptables流量转发
iptables -t nat -A PREROUTING -p tcp --dport 【服务器A监听端口】 -j DNAT --to-destination 【服务器B IP】:【服务器B端口】 iptables -t nat -A POSTROUTING -p tcp -d 【服务器B IP】 --dport 【服务器B端口】 -j SNAT --to-source 【服务器A IP】 iptables -I INPUT -p tcp --dport 【服务器A监听端口】 -j ACCEPT
测试转发
我在服务器B上挂了个网页,通过curl 服务器A IP:服务器A监听端口,可以访问到服务器B IP:服务器B端口上的网站了。
测试成功以后不要忘记保存服务器A的iptables配置
service iptables save
注意
服务器A配置完以后查看监听端口是空的,测试的时候不要看端口有没有监听,直接访问一下服务试试。
iptables 还需要把监听的端口放开来