无法从wsl2访问绑定到0.0.0.0的服务

问题描述

我有一个在MobaXterm的帮助下完成的ssh隧道,

Current:  2020-08-27 00:37:00
Deadline: 2020-08-27 12:00:00
False

因此,我进行了一些测试,并可以通过本地PC上的http://127.0.0.1:8545卷曲获取远程服务器上的服务。我在git bash和cmd上尝试了curl,但都可以使用,但在wsl2上的curl声称连接已被拒绝。

cmd:

local pc     <= Remote Server
0.0.0.0:8545 <= 127.0.0.1:8545

git bash:

>curl -H "Content-Type: application/json" -X POST --data "{\"jsonrpc\":\"2.0\",\"method\":\"eth_blockNumber\",\"params\":[],\"id\":83}" http://127.0.0.1:8545
{"jsonrpc":"2.0","id":83,"result":"0x6c360c"}

wsl2:

$ curl -XPOST -H "Content-type: application/json" -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":83}' 'http://127.0.0.1:8545'
{"jsonrpc":"2.0","result":"0x6c35b8"}

我还试图在127.0.0.1:8545和172.27.96.1:8545绑定隧道。由于这些方法无效,因此我想先尝试使0.0.0.0:8545有效,然后再尝试更具体的方法

我如何从wsl2到达该服务?

解决方法

我通过绑定到http://172.20.144.1:8545(wsl网络的网关地址)使其工作。然后,我可以从wsl和Windows(cmd)访问http://172.20.144.1:8545处的服务。

唯一的问题是wsl网络的网关ip在每次重新启动时都会更改。

我不确定Windows是否为wsl的网络网关提供地址解析。