在 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
zed1018 236 天前
盲猜一手是防火墙的原因,可以参考官方文档把 inbound 默认管理方式都设为 allow 试试。
https://learn.microsoft.com/en-us/windows/wsl/networking 另外考虑优先在 windows listen 这个端口排除一下是不是本身两个网段就不通而不是在 wsl2 里不通。 |
2
zed1018 236 天前
噢,后半句当我没说。没看完你的贴子。
|
6
realJamespond 236 天前
子网掩码没设置对?
|
7
onlxx123 236 天前
@leeyuzhe 我有个相似的问题想请教,WSL2 网络模式也是 mirrored ,同局域网同网段下的设备可以访问,但是本机用 IP 却访问不了,只能 127.0.0.1 访问。
|
11
leeyuzhe OP @realJamespond 不是的,你注意看我最后一句,我在 windows 上面监听的端口完全正常
|
13
pkokp8 236 天前
🤔我之前解决不了,就用 nginx 代理
|
15
mmdsun 236 天前
借楼问下,我最近也遇到有个奇葩问题,WSL 2 镜像网络模式。
WSL 2 中安装 Linux 版本的 docker (非 docker desktop ), 启动程序监听 0.0.0.0, docker 端口开了,防火墙关了。 本机只能 localhost:8080 访问,本机用 192.168 的本机 ip+8080 不能访问,当然局域网其他设备也不能访问。 最后只能本机安装了 nginx 转到了 localhost:8080 上,局域网才能访问。 |
16
dant 236 天前
> windows 上面监听 6400 端口则所有网段的设备都可以 telnet 成功
windows 默认有源进源出,linux 默认只会按路由表匹配 |
17
leeyuzhe OP @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 网络。 |