wsl2 的 mirrored 网络模式下,在里面监听一个端口,同局域网同网段下的设备可以 telnet,不同网段的设备不行。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ThisDay
V2EX    Windows

wsl2 的 mirrored 网络模式下,在里面监听一个端口,同局域网同网段下的设备可以 telnet,不同网段的设备不行。

  •  
  •   ThisDay 2024-04-11 11:09:57 +08:00 1940 次点击
    这是一个创建于 619 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在 wsl2 中监听 6400 端口,然后从不同的网段的设备上 telnet 这个端口。 例如我设备的 ip 是 192.168.1.123 ,然后从 192.168.1.x 的设备上可以 telnet 192.168.1.123 6400 成功。在 192.168.2.x 等所有的非 192.168.1.x 的设备上都不能 telnet 成功。但是如果我在 windows 上面监听 6400 端口则所有网段的设备都可以 telnet 成功。 有人遇到过类似的问题么?

    第 1 条附言    2024-04-12 10:46:11 +08:00
    已解决,让它沉下去吧
    zed1018
        1
    zed1018  
       2024-04-11 11:54:18 +08:00
    盲猜一手是防火墙的原因,可以参考官方文档把 inbound 默认管理方式都设为 allow 试试。

    https://learn.microsoft.com/en-us/windows/wsl/networking

    另外考虑优先在 windows listen 这个端口排除一下是不是本身两个网段就不通而不是在 wsl2 里不通。
    zed1018
        2
    zed1018  
       2024-04-11 11:54:50 +08:00
    噢,后半句当我没说。没看完你的贴子。
    ThisDay
        3
    ThisDay  
    OP
       2024-04-11 13:34:23 +08:00
    @zed1018 #1
    防火墙我开始设置成了 allow ,后来干脆直接关了,然后并没有改善
    ThisDay
        4
    ThisDay  
    OP
       2024-04-11 13:39:09 +08:00
    @leeyuzhe 破案了,把 cfw 的 tun 关了就行了,感觉那块网卡有问题还是
    zed1018
        5
    zed1018  
       2024-04-11 13:51:09 +08:00
    @leeyuzhe #4 恭喜解决问题。其实用代理就好了,一般来讲。不行可以配合 proxychains-ng
    realJamespond
        6
    realJamespond  
       2024-04-11 15:10:30 +08:00
    子网掩码没设置对?
    onlxx123
        7
    onlxx123  
       2024-04-11 15:35:27 +08:00
    @leeyuzhe 我有个相似的问题想请教,WSL2 网络模式也是 mirrored ,同局域网同网段下的设备可以访问,但是本机用 IP 却访问不了,只能 127.0.0.1 访问。
    weak
        8
    weak  
       2024-04-11 15:42:24 +08:00 via iPhone
    @onlxx123 wsl --update --pre-release 把 WSL2 更新到 2.0.0 或以上版本。
    Ipsum
        9
    Ipsum  
       2024-04-11 16:04:45 +08:00
    @leeyuzhe tun 没有路由规则的时候会优先走他内部的,你自己加一条静态路由进去就行了。
    ThisDay
        10
    ThisDay  
    OP
       2024-04-11 16:26:08 +08:00
    @Ipsum 请问具体如何操作,或者有什么关键词能让我搜索一下
    ThisDay
        11
    ThisDay  
    OP
       2024-04-11 16:27:09 +08:00
    @realJamespond 不是的,你注意看我最后一句,我在 windows 上面监听的端口完全正常
    Ipsum
        12
    Ipsum  
       2024-04-11 19:04:24 +08:00
    @leeyuzhe ip r add xxx.xxx.xxx.xxxx/xx via gwip
    povvoq
        13
    povvoq  
       2024-04-11 19:08:24 +08:00
    我之前解决不了,就用 nginx 代理
    hez2010
        14
    hez2010  
       2024-04-11 21:7:46 +08:00
    @onlxx123 你这个看上去是 dns 的配置问题了
    mmdsun
        15
    mmdsun  
       2024-04-11 23:41:06 +08:00
    借楼问下,我最近也遇到有个奇葩问题,WSL 2 镜像网络模式。

    WSL 2 中安装 Linux 版本的 docker (非 docker desktop ), 启动程序监听 0.0.0.0, docker 端口开了,防火墙关了。
    本机只能 localhost:8080 访问,本机用 192.168 的本机 ip+8080 不能访问,当然局域网其他设备也不能访问。

    最后只能本机安装了 nginx 转到了 localhost:8080 上,局域网才能访问。
    dant
        16
    dant  
       2024-04-12 00:21:50 +08:00
    > windows 上面监听 6400 端口则所有网段的设备都可以 telnet 成功
    windows 默认有源进源出,linux 默认只会按路由表匹配
    ThisDay
        17
    ThisDay  
    OP
       2024-04-12 09:43:51 +08:00
    @Ipsum #12
    @dant
    感谢,加了静态路由之后好了!!你们拯救了我一下午时间!
    现在又有个新问题,我 wls2 里面的 kafka 客户端报错 Cannot assign requested address 。
    ```
    Error connecting to node 10.0.15.247:9092 (id: 0 rack: null)
    java.net.BindException: Cannot assign requested address
    at sun.nio.ch.Net.connect0(Native Method) ~[?:1.8.0_402]
    at sun.nio.ch.Net.connect(Net.java:482) ~[?:1.8.0_402]
    at sun.nio.ch.Net.connect(Net.java:474) ~[?:1.8.0_402]
    at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:647) ~[?:1.8.0_402]
    at org.apache.kafka.common.network.Selector.doConnect(Selector.java:277) ~[kafka-clients-3.1.2.jar:?]
    at org.apache.kafka.common.network.Selector.connect(Selector.java:255) ~[kafka-clients-3.1.2.jar:?]
    at org.apache.kafka.clients.NetworkClient.initiateConnect(NetworkClient.java:990) ~[kafka-clients-3.1.2.jar:?]
    at org.apache.kafka.clients.NetworkClient.access$600(NetworkClient.java:73) ~[kafka-clients-3.1.2.jar:?]
    at org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:1161) ~[kafka-clients-3.1.2.jar:?]
    ```
    我通过打断点发现一个奇怪的问题,在 Net.connect 中调用了一个方法叫 isIPv6Available ,也是个 native 方法,在网络模式为 nat 或者 bridge 时返回 false ,在 mirrored 模式下返回了 true ,这是不是问题的原因。因为在另外的两种网络模式下都是好的,并且我的电脑跟 247 之间确实没有 ipv6 网络。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     890 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 42ms UTC 23:00 PVG 07:00 LAX 15:00 JFK 18:00
    Do have faith in what you're doing.
    ubao msn 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