恩山无线论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 41857|回复: 2506

[N1盒子] 【终极指南】关于N1做旁路由添加 iptables 自定义防火墙规则的见解

    [复制链接]
发表于 2020-2-26 22:01 | 显示全部楼层 |阅读模式
本帖最后由 幻空lee 于 2020-3-14 04:18 编辑

看到 flippy 有说 N1 做旁路由的话不要忘了加自定义防火墙规则:
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

先解释一下这个规则:iptables 修改 NAT 表,使经过 eth0 的网卡的流量的源 IP 伪装成 eth0 的 IP,而且是动态伪装(直接读取 eth0 的 IP 地址)

为什么要这么做:
一般小伙伴的 N1 只配置了一个 LAN 口,WAN 口是没有使用,或者直接把 WAN 口删了,这个时候 N1 作为辅助网关,LAN 口负责把数据转发给主路由网关,默认是不会修改你的源 IP 的。

证明如下:
我们分别添加/不添加iptables规则,然后用主路由器看N1的IP地址:
图1 添加iptables规则(一切正常)
2.jpg
图2 不添加iptables规则(N1的IP为什么和手机一模一样?原因就在于N1转发手机的包,没有修改源IP,路由器通过识别源IP来判断设备的IP)
1.jpg

转发过程讲解:
手机(192.168.0.4)向外发一个包,先发到辅助网关N1(192.168.0.2),辅助网关并没有修改这个包的源地址(192.168.0.4),这个包由N1转发给主路由(192.168.0.1)再到外网;回应的包回来的时候,到了主路由,主路由一查 NAT 表,发现是手机(192.168.0.4)的,就直接发给手机了,根本不经过N1。

这个时候是可以上网的(不能留学),但是这样会导致很多功能无法使用,比如说去广告,回来的包都不经过N1,怎么去广告呢?科学留学也成了问题了,回来的包不经过N1,谁去给你解密呢???所以需要加一句:iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE,把去程包的源IP改为N1IP,这样回程包先发给N1N1完成了一系列不可描述的功能后,N1再根据NAT表,发送给相应设备。


上面这句话是我之前的解释,经过我证明,说法错误。原因是去广告和科学留学会正向代理设备,本身就会进行SNAT(源地址转换),所以不存在发回来的包找不到源设备的问题,是可以正常去广告和科学留学的。貌似可不加了,是吗?请继续观帖。

N1作为旁路时,推荐加上iptables规则,原因如下:
1. 不加的话,主路由会错误显示N1的IP,N1替谁转发了流量,主路由就会显示为谁的IP,这不逼死强迫症吗?
2. flippy帖子里有说,N1作为旁路由时,Padavan固件路由作为主路由时,开启硬加速的情况下,可能会存在微信或者QQ图片打不开等问题,其中具体原因可能就在于N1没有做SNAT,导致去广告或者留学白名单(如微信、QQ)回城不经过N1。
3. 加上无害,反而可以解决一些奇奇怪怪的问题。
...

有没有可以不用加的方法?
方法是有的,添加一个WAN口,关闭LAN口桥接,WAN口和LAN口共用eth0,WAN口发出数据的时候,会自动做SNAT,回来的包会先回到N1,再返给设备。

总结:什么时候需要设置 iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE ?
需要设置情况:
1. 主路由开DHCP(未指向旁路由网关),旁路由关DHCP,旁路由只有LAN口工作,其他设备需设置静态网关为旁路由,需要设置。
2. 主路由开DHCP(未指向旁路由网关),旁路由开DHCP(强制模式开),旁路由只有LAN口工作,其他设备通过强制DHCP获取旁路由网关,需要设置。
3. 主路由开DHCP(指向旁路由网关),旁路由关DHCP,旁路由只有LAN口工作,需要设置。
4. 主路由关DHCP,旁路由开DHCP,旁路由只有LAN口工作,需要设置。
不需要设置的情况:

1. 旁路由WAN LAN共用eth0,不用设置。
2. 单臂路由情况,N1作为拨号路由(有拨号就有WAN口),不用设置。


终极记忆口诀:没wan就加!

评分

参与人数 32恩山币 +38 收起 理由
jf7642132 + 1 恩山全体路由党向你学习!
wl13142011 + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
fanscoubou + 1 恩山全体路由党向你学习!
clfeng + 1 几亿网民,我们俩竟然神奇的在恩山相遇了!来,1分也是分!
lake2 + 1 恩山全体路由党向你学习!
iquelite + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
chenpiqqqq + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
robindou + 1 强大的恩山!(以下重复1万次)
edywh -1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
老少平安 + 1 强大的恩山!(以下重复1万次)
xhui903 + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
mosss + 1 恩山全体路由党向你学习!
vicclin + 1 恩山全体路由党向你学习!
56143575 + 3 恩山全体路由党向你学习!
qq1344664527 + 1 恩山全体路由党向你学习!
qwqwhh + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
南兄 + 1 恩山全体路由党向你学习!
powerpc2008 + 2 恩山全体路由党向你学习!
tcxds + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
hstgames + 1 一语惊醒梦中人
不知名悲伤 + 1 恩山全体路由党向你学习!
天天顺心 + 1 就喜欢这种追根溯源的帖子,告诉我们为什么
Xiaomj + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
tanhu + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
wycghrp + 1 恩山全体路由党向你学习!
TensorLake + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
开始懂了~ + 2 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
86.29 + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
校友(梨) + 2 风清云淡、飘逸悠然……极爽!
萌萌是神马 + 4 一看就是觉得高端、大气、上档次!
flysailor + 1 恩山全体路由党向你学习!
dakai + 1 恩山全体路由党向你学习!

查看全部评分

本帖被以下淘专辑推荐:

我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-2-26 22:06 | 显示全部楼层
做拨号旁路由,不加这句能获取ip但是不能上网
来自安卓客户端来自安卓客户端
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2020-2-26 22:11 | 显示全部楼层
kalengame 发表于 2020-2-26 22:06
做拨号旁路由,不加这句能获取ip但是不能上网

1. 做拨号旁路由,把LAN 口桥接取消,WAN口设置成LAN口同一网卡 eth0,然后N1 网口 外接 路由器的LAN口,路由器再用一个LAN口外接猫。然后就可以在N1 里设置WAN口拨号了。

2. 或者说你上级设备是交换机,N1 接交换机,路由器也接交换机,交换机接猫。这个时候,只需要到路由器里,关闭拨号,设置按照1 设置就可以了。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-2-26 22:11 | 显示全部楼层
我没有添加也不影响,比较奇怪。
来自苹果客户端来自苹果客户端
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2020-2-26 22:12 | 显示全部楼层
kalengame 发表于 2020-2-26 22:06
做拨号旁路由,不加这句能获取ip但是不能上网

其实,这就是单臂路由了(非VLAN),当然你有网管交换机,或者你上级路由能划VLAN,设置成VLAN单臂路由,效率更高!
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2020-2-26 22:16 | 显示全部楼层
开始懂了~ 发表于 2020-2-26 22:11
我没有添加也不影响,比较奇怪。

ssh里,输入 iptables -t nat -vnL,可以看看是不是自带这条规则
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-2-26 22:18 | 显示全部楼层
幻空lee 发表于 2020-2-26 22:16
ssh里,输入 iptables -t nat -vnL,可以看看是不是自带这条规则

感谢!学习了。
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2020-2-26 22:21 | 显示全部楼层

或者说,你主路由设置的DHCP设置的网关是旁路由的IP,这样主路由做NAT的时候,就会把源地址伪装成旁路由IP,这也是很多人为啥不添加也能正常用的原因。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-2-26 22:24 | 显示全部楼层
都是干货呐,正纳闷这句规则啥意思
来自安卓客户端来自安卓客户端
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-2-26 22:34 | 显示全部楼层
就会把源地址伪装成旁路由IP
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-2-26 22:38 | 显示全部楼层
幻空lee 发表于 2020-2-26 22:21
或者说,你主路由设置的DHCP设置的网关是旁路由的IP,这样主路由做NAT的时候,就会把源地址伪装成旁路由I ...

对,就是你说的情况。我主路由指向了旁路由的网关。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-2-26 22:40 | 显示全部楼层
感谢,学习了。
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2020-2-26 22:42 | 显示全部楼层
开始懂了~ 发表于 2020-2-26 22:38
对,就是你说的情况。我主路由指向了旁路由的网关。

额,我的主路由是AC9,没硬改,没法刷机,用的官方固件。这个官方固件有个毛病,没法自定义 DHCP。。。。所以,我现在用的是 wan lan 共用 eth0 这种方法。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-2-26 22:44 | 显示全部楼层
幻空lee 发表于 2020-2-26 22:42
额,我的主路由是AC9,没硬改,没法刷机,用的官方固件。这个官方固件有个毛病,没法自定义 DHCP。。。。 ...

原来如此,我是觉得我以前关闭主路由的DHCP的时候需要添加,现在关闭N1的时候不需要添加。看你解释很清楚了。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-2-26 22:52 | 显示全部楼层
那么内外都正常的情况下,到底是加还是不加呢
我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )|网站地图

GMT+8, 2020-10-27 12:07

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表