OpenWrt 多 wan,外部如何通过连接副 wan 入站?

2023-11-15 10:24:12 +08:00
 microka
GL-MT6000 ,刷了 ImmortalWrt 23.05.0 ,配置了三条 wan ,wan1 电信 2000M (配置默认路由,网关跃点 10 ),wan2 移动(配置默认路由,网关跃点 20 ),wan3 电信 300M (配置默认路由,网关跃点 30 ),未安装 mwan3 。

IPv4 路由表如下


防火墙区域设置为默认


配置了 wan 到 lan(PC)的 rdp 端口转发,通信规则放行入站 ICMP(Ping)

现在从外部连接 wan1 的电信 IP ,能 ping 通,也能 rdp ;但 wan3 的电信 IP 就 ping 不通也无法 rdp ,请问应如何配置才能从外部通过 wan3 IP 访问路由器及下游设备?
求指导,谢谢~
1430 次点击
所在节点    宽带症候群
21 条回复
wike
2023-11-15 10:37:29 +08:00
奇怪 你的入站不是拒绝了吗 wan1 wan2 wan3 在 wan zone 里面吗
microka
2023-11-15 10:40:31 +08:00
@wike 是的,wan1/2/3 都在同一 wan zone

试过防火墙全设置为接受,也是不行。
wike
2023-11-15 10:41:58 +08:00
1. 把 wan1 wan2 塞 wan zone 里面
2. 然后把 wan3 单独设置一个 wan_in zone 然后复刻原先的 wan zone 设置
3. 仿照你的通行规则设置 wan_in zone 的开放端口 4. 端口转发里面应该也是能选源区域和目标区域的
microka
2023-11-15 11:07:03 +08:00




@wike 麻烦大佬看下,这样设置完也重启路由器了,wan3 IP 还是不通
cq65617875
2023-11-15 11:08:01 +08:00
策略路由
microka
2023-11-15 11:24:29 +08:00
@cq65617875 #5 搜了下,搜到的要么是指定设备指定 wan 出口,要么是通过 mwan3 进行负载均衡,还不清楚我这种需求该如何配置,大佬能指导下吗?
wike
2023-11-15 11:37:17 +08:00
@microka 怪 理论上没问题 我怀疑一手硬件加速
wike
2023-11-15 11:41:56 +08:00
@microka 要不要开个 tcpdump 看看你的 ping
nkloveni
2023-11-15 12:29:06 +08:00
你的需求有两个对吧,一个是 wan3 需要能 ping 通,第二个是能做端口映射。
这个需求要用策略路由来做:
1. 创建一个新路由表 vi /etc/iproute2/rt_tables ,按格式增加一个 for 电信的路由表(比如叫 ct )
2. 给你的 rdp 机器绑定第二个 IP 地址
3. 创建一个策略路由:ip rule from xxx ( wan 口地址、第二个 IP ) lookup ct ,用源地址路由控制回包出口。
剩下配置和第一个出口一样了,防火墙、端口映射改怎么搞怎么搞。如果想更精细的控制,可以用 iptables 给数据包打 fw mark ,然后 ip rule 可以按照 fw mark 去路由。

整体来说比较麻烦,调试的时候多用 tcpdump 看数据包怎么实际转发的,多 debug 才能调通。恭喜入坑,保重保重
szdosar
2023-11-15 12:31:45 +08:00
这……,你家有三道大门,你问:如何让客户优先进第 2 号门?
那不是你把 1 、3 你扇门设置为只进不出就好了?
另外,你的邀请也要从 2 号门出去才行。
nkloveni
2023-11-15 12:31:51 +08:00
你这个是路由器拨号吗?这个路由器刷 openwrt 后跑不满 2000M 的宽带吧
maybeonly
2023-11-15 12:41:46 +08:00
为了搞类似的需求早年放弃了 openwrt 改成自己做……
不过或许现在的 openwrt 也能支持了才对?
需要 conntrack 。说白了就是来自 192.168.31.xx 端口 6xxx 的回包的路由得对得上才行。
基本想法是对来自各 wan 的连入连接给打 connmark ,出去的时候在根据 connmark 选路由表。
nkloveni
2023-11-15 12:46:44 +08:00
@maybeonly openwrt 一直也能做,用 iptable 的 mangle 表给数据包打 fw mark ,然后配合 ip rule 做策略路由就行。你再偷偷用下 ip 协议的 dscp 字段,还能跨路由去搞定这个事,记得数据包离开 wan 之前剥离 dscp 就行,有的 isp 碰到不为 0 就给丢包了。
microka
2023-11-15 12:49:37 +08:00
@nkloveni 多谢大佬指教,我是 Linux 菜鸟,手动配置路由表、策略路由可能有点难,或许我稍晚再尝试下 mwan3 (之前用 mwan3 一顿操作后能通😂)。是 MT6000 拨号,官方固件就是 openwrt ,wan 能跑满 2000M (有线),无线我没开没测,只是官网固件有个 bug IPv6 测速下行只能跑到 700 多 Mbps ,需要把两个 2.5G 网口(wan/lan)互换接线才能恢复正常满速(还在等官方修这个 bug )。

@szdosar 不是优先进门的问题吧,是想让门能同时通,而且是双向都要通;另外源进源出的问题可能还得借助 mwan3 才比较好处理?(对于我这种小白来说……
nkloveni
2023-11-15 12:50:45 +08:00
@maybeonly 你的意思是内网只设一个 IP 对吧,然后回包的时候不知道要回给哪个口的,只能去 connmark 去查 NAT 记录,然后再在对应去回包。那确实不好搞,我的办法就是设俩 IP...... 取个巧
qwvy2g
2023-11-15 12:50:49 +08:00
如果路由器服务端是 VPN 模式给远程客户端分配了 ip 就简单,如果路由器搭建的服务端像 sock5 这种不分配 IP 的纯代理模式就麻烦。
qwvy2g
2023-11-15 12:56:55 +08:00
ImmortalWrt 官方源默认启用的是 firewall4 ,和 lean 的源默认启用的是 firewall 不同,mwan3 勾选就会选上 firewall ,此时防火墙会提示 ipt 和 nft 混装。
maybeonly
2023-11-15 13:00:44 +08:00
@nkloveni 那不就是当年林**搞的方案嘛……那个当然简单,但是对后面就不友好了,以及,感情上早就受够了。还有就是 udp 的话对某些应用不友好。

管连入连接:
iptables -t nat -A PREROUTING -i wan1 -j CONNMARK --set-xmark 0x1
iptables -t nat -A PREROUTING -i wan2 -j CONNMARK --set-xmark 0x2
……
mark 贴回去:
iptables -t mangle -A PREROUTING -i br0 -m conntrack --ctdir REPLY -j CONNMARK --restore-mark
然后 ip ru 加 fwmark 路由表就好。
a90405
2023-11-15 13:27:19 +08:00
mwan3 在 23.05 已经年久失修废了
microka
2023-11-15 13:58:05 +08:00
@a90405 是啊,之前也留意到了,爱快那种简单易用真不错,只可惜免费版只能一条 IPv6

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/992015

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX