op 为旁路由如何通过公网访问指向旁路由下的设备? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
RayGZJ
V2EX    OpenWrt

op 为旁路由如何通过公网访问指向旁路由下的设备?

  •  
  •   RayGZJ 2023-05-26 09:39:17 +08:00 3676 次点击
    这是一个创建于 872 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我有以下三个设备:

    ikuai 10.0.0.1 主软路由
    openwrt 10.0.0.222 旁路由 网关指向 10.0.0.1
    dietpi ( Linux 主机) ip:10.0.0.6 网关指向 10.0.0.222

    我在 ikuai 上面做了动态解析有公网 ip:xxx.cn
    dietpi 的 520 端口有一个服务,我通过 ikuai 映射到 520 外网端口,但是网关指向 op ,数据经过 openwrt ,我之前在 op 自定义防火墙输入了以下规则:


    iptables -t nat -I PREROUTING -p tcp -m multiport --sports 520 -j RETURN

    之前是生效的,刚用没多久就访问不了显示不可达。
    但是我将 dietpi 重新指向 10.0.0.1 ikuai 是正常的。

    请问访问旁路由下设备的正确的映射方式应该是怎样的?
    请教下各位

    21 条回复    2023-09-27 23:56:50 +08:00
    RayGZJ
        1
    RayGZJ  
    OP
       2023-05-26 09:46:29 +08:00 via iPhone
    其中 op 使用的版本为:

    ImmortalWrt 18.06-k5.4-SNAPSHOT r12339-8b50c1df21 (2023-05-03) / LuCI openwrt-18.06-k5.4 branch (git-22.312.35760-7afcfb2)
    tty228
        2
    tty228  
       2023-05-26 11:59:43 +08:00
    https://github.com/tty228/luci-app-serverchan/blob/d04c70632e251050b65ec6b20c040ff3e6fa5cf9/root/usr/share/serverchan/serverchan#L1323

    除了转发,还需要重写源 IP ,不然会被大多数防火墙当做无效数据包丢弃

    iptables -t nat -I POSTROUTING -p tcp -d 10.0.0.6 --dport 520 -j SNAT --to-source 10.0.0.222
    tty228
        3
    tty228  
       2023-05-26 12:24:49 +08:00
    吃完饭重新看了一下帖子,好像场景和我想象中不一样,不确定上面的规则能不能用
    手上的 OpenWrt 都升级 nftables 了没法测试 →_→
    tty228
        4
    tty228  
       2023-05-26 12:29:53 +08:00
    如果上面的规则不能用的话,大概是要在主路由上添加规则:
    iptables -t nat -A POSTROUTING -p tcp -d 10.0.0.6 --dport 520 -j SNAT --to-source 10.0.0.1

    不过爱快没用过不知道能不能设置相关的选项,不嫌麻烦的话,可以转发 520 端口到 OpenWrt ,再由 OpenWrt 转发到 Linux 主机
    RayGZJ
        5
    RayGZJ  
    OP
       2023-05-26 12:34:06 +08:00 via iPhone
    @tty228 nftables 我那个自带的 dnsmasq 好像不是的 搞不懂是啥原理 是不是出去的数据被丢弃了 进来的时候能找到

    wan ikuai -op-linux

    出去的时候找不到
    RayGZJ
        6
    a href="/member/RayGZJ" class="dark">RayGZJ  
    OP
       2023-05-26 13:26:12 +08:00 via iPhone
    putaosi
        7
    putaosi  
       2023-05-26 13:51:27 +08:00 via iPhone
    用我的方案,放弃旁路由用法
    mbooyn
        8
    mbooyn  
       2023-05-26 13:55:50 +08:00
    openwrt 做旁路由时,如果需要科学的主机将网关、DNS 指向 Openwrt 旁路由后直接在主路由将需要转发的端口设置为主机无法转发成功,需要先主路由转发到旁路由,旁路由再二次端口转发至主机
    Rysle
        9
    Rysle  
       2023-05-26 14:22:28 +08:00 via Android
    你这些设备都在同一个局域网的话,主路由应该能和网段内的任意设备互访的,不管这些设备的网关设置成什么。因为这时候是通过 ARP 找到对方,而不是网关。
    sexoutsex2011
        10
    sexoutsex2011  
       2023-05-26 14:48:52 +08:00
    @Rysle +1
    我也这个拓扑,端口映射后,外网访问内网设备没问题的
    RayGZJ
        11
    RayGZJ  
    OP
       2023-05-27 00:44:25 +08:00 via iPhone
    @sexoutsex2011 有没有富强呢 ? 不需要在自定义防火墙添加某些端口命令吗?

    我是为了富强才用 openclash ,还有个亚马逊电视棒走的旁路由。
    RayGZJ
        12
    RayGZJ  
    OP
       2023-05-27 00:45:33 +08:00 via iPhone
    @Rysle 好像不行 网关指向 op 的时候就不能通过外网转发访问到
    sexoutsex2011
        13
    sexoutsex2011  
       2023-05-28 22:33:08 +08:00 via iPhone
    @RayGZJ 有富强的,不需要
    RayGZJ
        14
    RayGZJ  
    OP
       2023-05-29 00:06:48 +08:00 via iPhone
    @sexoutsex2011 你是什么版本的 op
    thereone
        15
    thereone  
       2023-06-01 23:33:08 +08:00
    最好的方法是旁路由不要做 NAT ,你上面的问题根因很简单端口映射没做全

    外网访问-->爱快:520--旁路由(NAT)--设备:520
    这里看对于爱快是不知道你的设备的,哪怕是在同一个局域网。
    假设你的爱快直接映射设备的 520 端口,你看路径外部进来是 爱快->设备:520 内部路径 设备:520->旁路由 IP(NAT)旁路由 IP-爱快 看到没有 ip 连接不一致导致你的 TCP 连接建立不起来。原因都在这里。

    正确方式旁路由(NAT)模式
    爱快映射:520-->旁路由:520-->旁路由:520-->映射设备 IP:520
    爱快端口映射 旁路由端口映射
    正确的是有两次端口映射的过程的。

    更好的旁路由方法,最好关闭旁路由的防火墙删除所有区域,防火墙选项全部放行
    这样你的旁路由就真的只做路由功能,唯一会变的就是经过了旁路由你的原始数据的源 mac 地址会变成旁路由的 mac 地址 IP 地址不会变动所以对于爱快来说设备地址是可见的。
    于是上面的端口映射就可以按照正常的思路做 在爱快上面直接映射设备的地址就行了
    thereone
        16
    thereone  
       2023-06-01 23:38:56 +08:00
    @Rysle 互访是可以出爱快就不是了,爱快访问设备可以 arp 局域网内的话。当外部访问进来可以直接找到设备 问题是设备回应的数据包在旁路由会把 设备的 ip 转换成旁路由的 ip 这样源 ip 地址变了爱快能让 tcp 建立连接?爱快找 A A 把东西给 B B 在给爱快,爱快表示不是 A 给的我不收 于是连接就建立不起来了。
    mohumohu
        17
    mohumohu  
       2023-06-03 02:23:31 +08:00
    旁路由做 nat 又多了一层 nat 确实不是很好的办法。如果是为了科学,可以用这个类似的方案,不需要改网关: https://github.com/kkkgo/PaoPaoGateWay
    RayGZJ
        18
    RayGZJ  
    OP
       2023-09-26 11:21:21 +08:00 via iPhone
    @thereone #15 感谢回复,防火墙规则每次都要加不同端口,按照你的说法可否直接在 op 设置端口全映射( fullcone )并删除防火墙所有规则?

    另请教:旁路由可否这样理解,所有在局域网内网关指向旁路由的,都经过 op 的 NAT 转换,而 ikuai 并不能直接访问旁路由下的设备。例如 ikuai 主网 ip 为 10.0.0.1 ,旁路由 10.0.0.6 。

    同局域网内,设备 A 网关指向 ikuai ,设备 B 网关指向 op ,不考虑外网访问的前提下,通过局域网内地址 10.0.0.x ,设备 A 可否访问设备 B 在 op 未设置防火墙规则的端口?
    RayGZJ
        19
    RayGZJ  
    OP
       2023-09-26 11:23:42 +08:00 via iPhone
    @mohumohu #17 感谢回复,到时候搞一个单独 x86 小主机看看。现在感觉使用 Apple TV 做软路由是个不错的选择。x86 还是比较折腾。
    RayGZJ
        20
    RayGZJ  
    OP
       2023-09-27 23:54:30 +08:00 via iPhone
    @mbooyn #8 实际应该是指向旁路有多设备数据将多走一段路,设备-op-ikuai-wan
    RayGZJ
        21
    RayGZJ  
    OP
       2023-09-27 23:56:50 +08:00 via iPhone
    @Rysle #9 这个可能是软路由系统造成的原因吗,ikuai 为主路由。或者我这个拓扑本身主路由 ARP 就寻不到网关指向 op 下的设备 ip 或 mac 地址?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5877 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 03:11 PVG 11:11 LAX 20:11 JFK 23:11
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86