centoss7端口转发规则

# 开启 IP 转发

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

# 添加永久性 IP 转发配置

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

# 添加 iptables 转发规则

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 13.91.51.239:80
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 13.91.51.239:443
iptables -t nat -A POSTROUTING -j MASQUERADE

# 保存 iptables 规则

iptables-save > /etc/sysconfig/iptables

# 重启 iptables 服务

service iptables restart

在 *filter 表中,FORWARD 链的规则是拒绝所有转发流量:

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

这会阻止所有的转发流量,使得 NAT 转发无法工作。需要修改以下几点:

首先删除阻止转发的规则:

iptables -D FORWARD -j REJECT --reject-with icmp-host-prohibited

添加允许转发的规则:

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth0 -j ACCEPT  # 假设 eth0 是你的网络接口

NAT 表的设置是正确的:
PREROUTING 链正确配置了 80 和 443 端口的转发
POSTROUTING 链正确配置了 MASQUERADE

完成修改后,可以用以下命令保存规则:

service iptables save

然后重启 iptables 服务:

service iptables restart

修改完成后,你可以通过以下方式测试转发是否生效:
# 测试到目标服务器的连接

telnet 13.91.51.239 80
telnet 13.91.51.239 443

# 查看连接状态

netstat -nat | grep :80
netstat -nat | grep :443
点赞

发表回复