现正在使用 ASUS 路由,刷的 Merlin 固件。
我开了一个访客网络, ifconfig 出来发现多了一个接口 "wl0.1",我想把这个网络的所有流量转到一个指定端口,因此用了以下 iptables 命令,但是无效:
iptables -t nat -I PREROUTING -i wl0.1 -p tcp -j REDIRECT --to-port 2081
如果我针对单一 IP 进行过滤是能行的,比如这个:
iptables -t nat -I PREROUTING -s 10.10.10.112 -p tcp -j REDIRECT --to-port 2081
有人知道是怎么回事么?
1
jasontse 2016-12-08 10:01:14 +08:00 via Android
因为不是 wl0.1 ,可能是 br2 。用 brctl show 看一下。
|
2
bluesky139 OP @jasontse brctl show 也没看到 br2.
这是在开启访客网络前: > bridge name bridge id STP enabled interfaces > br0 8000.ac9e177dc070 yes vlan1 > eth1 > eth2 这是开启后: > bridge name bridge id STP enabled interfaces > br0 8000.ac9e177dc070 yes vlan1 > eth1 > eth2 > wl0.1 |
3
ooxxcc 2016-12-08 10:17:54 +08:00
直接根据 guest ip 段过滤算了
|
4
jasontse 2016-12-08 10:18:15 +08:00 via Android
@bluesky139 那你看它网关地址是从哪个 interface 来的
|
5
bluesky139 OP @jasontse 这排版,我去传个图:
![]( http://ooo.0o0.ooo/2016/12/08/5848c2887235d.jpg) |
6
bluesky139 OP @ooxxcc 由于 DHCP 不在路由上,在其它机器上,也不好配,所以不能按 IP 段来,这个最初我就想过。
|
7
bluesky139 OP @jasontse 这个网关地址该怎么看?
|
8
bluesky139 OP @bluesky139 我自己是这样确定的,在手机上把接入点的 mac 地址打出来,跟 wl0.1 对应:
https://ooo.0o0.ooo/2016/12/08/5848c77c3d752.png 路由上整个 ifconfig 的结果是这样: https://ooo.0o0.ooo/2016/12/08/5848c8232b069.jpg |
9
jasontse 2016-12-08 10:44:48 +08:00 via iPad
private 和 guest 是一个段?。。。没有这样组网的
|
10
bluesky139 OP @jasontse 这个 guest 是拿来当第二个 private 用的,只是纯粹需要转发流量,内网的一切资源正常使用,所以在同一个网段。
网段怎样无所谓,我是想用 interface 来过滤,跟网段又没关系。 |
11
jasontse 2016-12-08 11:10:47 +08:00 via iPad
@bluesky139 wl0.1 发到 br0 才会从防火墙出去你这样做不了的
|
12
bluesky139 OP @jasontse 意思是我需要把“访问内部网络”关掉,让 guest 网络不能访问 private 网络对吗?这样又有个问题, guest 没有 DHCP 无法得到分配到 IP , 路由上的 DHCP 是关掉了的, DHCP 现由另一台服务器在服务。难道无解了?
|
13
orzfly 2016-12-08 11:36:50 +08:00 1
1) wl0.1 不能加入 br0
2) 需要在 iptables 里加入允许 br0 转发和 wl0.1 之间进行转发 3) 为了能转发你需要给 br0 和 wl0.1 用两个不同的 IP 段 |
14
orzfly 2016-12-08 11:38:50 +08:00
4) 用两个 IP 段并不是什么大事,反正有转发规则又不是不能互相访问……
|
15
jasontse 2016-12-08 11:50:36 +08:00 via iPad 1
@bluesky139 访不访问内部网不重要,重要的是弄个 br1 出来单独划个子网, DHCP 服务器广播域的问题可以另外解决。
|
16
bluesky139 OP @jasontse
@orzfly 我现在弄个了 br1 ,然后把 wl0.1 加入到了 br1 ,再配了网段: ifconfig br1 10.1.1.1 netmask 255.255.255.0 broadcast 10.1.1.255 再到 iptables 配了 br1 允许转发,这时候手机可以上网了(先不考虑 DNS 和 DHCP 的问题) 这时候我再执行以下命令,把 br1 所有流量转到 2081 上(这就是一个 ss-redir ): iptables -t nat -I PREROUTING -i br1 -p tcp -j REDIRECT --to-port 2081 又不通了。这时我觉得以上 iptables 命令是生效了的,应该还需要怎么设置? |
17
bluesky139 OP |
18
bluesky139 OP @jasontse DHCP 有什么好的解决方法?
|
19
jasontse 2016-12-08 17:30:36 +08:00 via iPad
@bluesky139 可以用 802.1q VLAN Tagging 解决,具体看你服务器操作系统。
|
20
bluesky139 OP @jasontse 我用 dnsmasq 解决了, dnsmasq 可以指定 br1 ,可以不用 DNS 功能,只用 DHCP 。
|