V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
microka
V2EX  ›  宽带症候群

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

  •  
  •   microka · 2023-11-15 10:24:12 +08:00 · 1462 次点击
    这是一个创建于 399 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 访问路由器及下游设备?
    求指导,谢谢~
    21 条回复    2023-11-16 08:28:42 +08:00
    wike
        1
    wike  
       2023-11-15 10:37:29 +08:00 via iPhone
    奇怪 你的入站不是拒绝了吗 wan1 wan2 wan3 在 wan zone 里面吗
    microka
        2
    microka  
    OP
       2023-11-15 10:40:31 +08:00
    @wike 是的,wan1/2/3 都在同一 wan zone

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




    @wike 麻烦大佬看下,这样设置完也重启路由器了,wan3 IP 还是不通
    cq65617875
        5
    cq65617875  
       2023-11-15 11:08:01 +08:00
    策略路由
    microka
        6
    microka  
    OP
       2023-11-15 11:24:29 +08:00
    @cq65617875 #5 搜了下,搜到的要么是指定设备指定 wan 出口,要么是通过 mwan3 进行负载均衡,还不清楚我这种需求该如何配置,大佬能指导下吗?
    wike
        7
    wike  
       2023-11-15 11:37:17 +08:00 via iPhone
    @microka 怪 理论上没问题 我怀疑一手硬件加速
    wike
        8
    wike  
       2023-11-15 11:41:56 +08:00 via iPhone
    @microka 要不要开个 tcpdump 看看你的 ping
    nkloveni
        9
    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
        10
    szdosar  
       2023-11-15 12:31:45 +08:00
    这……,你家有三道大门,你问:如何让客户优先进第 2 号门?
    那不是你把 1 、3 你扇门设置为只进不出就好了?
    另外,你的邀请也要从 2 号门出去才行。
    nkloveni
        11
    nkloveni  
       2023-11-15 12:31:51 +08:00
    你这个是路由器拨号吗?这个路由器刷 openwrt 后跑不满 2000M 的宽带吧
    maybeonly
        12
    maybeonly  
       2023-11-15 12:41:46 +08:00
    为了搞类似的需求早年放弃了 openwrt 改成自己做……
    不过或许现在的 openwrt 也能支持了才对?
    需要 conntrack 。说白了就是来自 192.168.31.xx 端口 6xxx 的回包的路由得对得上才行。
    基本想法是对来自各 wan 的连入连接给打 connmark ,出去的时候在根据 connmark 选路由表。
    nkloveni
        13
    nkloveni  
       2023-11-15 12:46:44 +08:00
    @maybeonly openwrt 一直也能做,用 iptable 的 mangle 表给数据包打 fw mark ,然后配合 ip rule 做策略路由就行。你再偷偷用下 ip 协议的 dscp 字段,还能跨路由去搞定这个事,记得数据包离开 wan 之前剥离 dscp 就行,有的 isp 碰到不为 0 就给丢包了。
    microka
        14
    microka  
    OP
       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
        15
    nkloveni  
       2023-11-15 12:50:45 +08:00
    @maybeonly 你的意思是内网只设一个 IP 对吧,然后回包的时候不知道要回给哪个口的,只能去 connmark 去查 NAT 记录,然后再在对应去回包。那确实不好搞,我的办法就是设俩 IP...... 取个巧
    qwvy2g
        16
    qwvy2g  
       2023-11-15 12:50:49 +08:00 via Android
    如果路由器服务端是 VPN 模式给远程客户端分配了 ip 就简单,如果路由器搭建的服务端像 sock5 这种不分配 IP 的纯代理模式就麻烦。
    qwvy2g
        17
    qwvy2g  
       2023-11-15 12:56:55 +08:00 via Android
    ImmortalWrt 官方源默认启用的是 firewall4 ,和 lean 的源默认启用的是 firewall 不同,mwan3 勾选就会选上 firewall ,此时防火墙会提示 ipt 和 nft 混装。
    maybeonly
        18
    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
        19
    a90405  
       2023-11-15 13:27:19 +08:00 via Android
    mwan3 在 23.05 已经年久失修废了
    microka
        20
    microka  
    OP
       2023-11-15 13:58:05 +08:00 via iPhone
    @a90405 是啊,之前也留意到了,爱快那种简单易用真不错,只可惜免费版只能一条 IPv6
    HOOC
        21
    HOOC  
       2023-11-16 08:28:42 +08:00
    routeros 或 ikuai 吧~openwrt 多线接入配置感觉好麻烦,我甚至搞不太懂 openwrt 的逻辑。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1189 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:15 · PVG 07:15 · LAX 15:15 · JFK 18:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.