需求说明
将本机 (IP: 192.168.174.100) 发往 192.168.174.165:443 的流量转发到 另一节点 192.168.174.149:20037(nginx 4层代理到192.168.174.165:443)
启用 IP 转发
# 节点IP: 192.168.174.100
sysctl -w net.ipv4.ip_forward=1
代理节点配置
# 节点IP:192.168.174.149
server {listen 20037;proxy_pass 192.168.174.165:443;}
配置防火墙规则
# 节点IP: 192.168.174.100# 使用直接规则添加 DNAT
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat OUTPUT 0 -p tcp -s 192.168.174.100 -d 192.168.174.165 --dport 443 -j DNAT --to-destination 192.168.174.149:20037# 然后添加 SNAT 和 FORWARD 规则
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 -p tcp -d 192.168.174.149 --dport 20037 -j SNAT --to-source 192.168.174.100
sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 destination address=192.168.174.149 port port=20037 protocol=tcp accept'# 重新加载
sudo firewall-cmd --reload
验证配置
# 查看富规则
sudo firewall-cmd --list-rich-rules# 查看直接规则
sudo firewall-cmd --direct --get-all-rules# 查看所有规则
sudo firewall-cmd --list-all