通知 欢迎关注我的店铺天天软件圆

OpenWrt路由器iptables设置IP重定向的方法,MASQUERADE有什么用?

2025-04-14
0评论
/
36阅读
爱搜啊

OpenWrt路由器iptables设置IP重定向的方法

问题背景

想通过路由器把访问104.16.0.0/12地址段的请求都转到172.67.69.102?明明在hosts文件里改能正常访问网站,但用iptables设置后反而失效?这种情况多半是NAT转发链条没接完整!

终极解决方案

在SSH中依次执行这些命令(建议复制粘贴):

# 开启内核转发功能(关键开关!)
echo 1 > /proc/sys/net/ipv4/ip_forward

# 核心转发规则(接收入站请求)
iptables -t nat -A PREROUTING -d 104.16.0.0/12 -j DNAT --to-destination 172.67.69.102

# 隐藏发送者身份(让回包能找到路)
iptables -t nat -A POSTROUTING -d 172.67.69.102 -j MASQUERADE

为什么必须加MASQUERADE?

想象你请代购帮忙买东西:

1. 你(客户端)把需求发给代购(路由器)

2. 代购把需求改成自己的地址发给商家(DNAT)

3. 商家必须把货物回寄给代购(MASQUERADE伪装发件人)

4. 代购再转交给你

不加MASQUERADE就像让商家直接给你寄国际快递,很可能被防火墙拦截!

常见翻车点排查

1. IP转发未开启:检查 cat /proc/sys/net/ipv4/ip_forward 是否返回1

2. 规则顺序冲突:用 iptables -t nat -L --line-numbers 查看规则优先级

3. 目标服务器拒接:目标IP的80/443端口是否真的开放?用 telnet 172.67.69.102 80 测试

4. IP段范围过大:/12对应104.16.0.0-104.31.255.255,确认是否误包含非常用IP

高级技巧

- 临时测试可追加`-I`参数将规则置顶:

  iptables -t nat -I PREROUTING 1 -d 104.16.0.0/12 -j DNAT --to 172.67.69.102

- 查看实时NAT记录:

  cat /proc/net/nf_conntrack | grep 172.67.69.102

- 嵌入式设备保存配置建议:

  iptables-save > /etc/iptables.rules
  echo "iptables-restore < /etc/iptables.rules" >> /etc/rc.local

效果验证

执行后打开浏览器访问:

curl -v http://example.com(替换成你的域名)

观察是否出现 Connected to 172.67.69.102 的提示

适用场景

本方案特别适合:

- 老旧嵌入式设备无ipset支持

- 需要快速屏蔽/替换CDN节点

- 临时解决DNS污染问题

- 内网服务伪装(把多个IP映射到单台服务器)

建议操作前备份原有规则 iptables-save > iptables.bak ,翻车时可快速恢复。


点击链接加入群聊四群:722808830
点击链接加入群聊三群:751529538(已满)
点击链接加入群聊二群:376877156(已满)
点击链接加入群聊一群:622891808(已满)

饿了么红包
饿了么红包


本站附件分享,如果附件失效,可以去找找看

诚通网盘附件百度网盘附件

于2025-04-14发布