这个问题与我关于使 WSL2 地址为 static 的问题有关。由于这看起来不可能,我正在尝试提出一种解决方法。
我想我可以在启动时在 WSL2 中运行一个 shell 脚本,它将 WSL2 机器的地址写入主机系统上的文件。powershell 脚本将查找该文件,并在找到后运行:
netsh interface portproxy add v4tov4 listenport=4000 listenaddress=0.0.0.0 connectport=4000 connectaddress=<WSL2 IP>
Run Code Online (Sandbox Code Playgroud)
如果可能,我想消除在 Linux 中运行 shell 脚本的需要。
一种可能性它通过netsh interface ipv4 show neighbors。172.27.154.150 是我的 WSL2 机器的当前 IP 地址,但我不确定如何编写脚本来隔离该 IP 地址。
PS C:\Users\Nick> netsh interface ipv4 show neighbors
Interface 1: Loopback Pseudo-Interface 1
Internet Address Physical Address Type
-------------------------------------------- ----------------- -----------
224.0.0.22 Permanent
239.255.255.250 Permanent
Interface 7: Ethernet0
Internet Address Physical Address Type
-------------------------------------------- ----------------- -----------
192.168.163.2 …Run Code Online (Sandbox Code Playgroud) 我在 WIN10 机器上的 WSL2 中运行 SSH 服务器。为了完成这项工作,我正在使用:
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=22 connectaddress=172.19.237.178 connectport=22
Run Code Online (Sandbox Code Playgroud)
这最初工作正常。172.19.237.178是 WSL2 VM 的 IP。
只有一个问题。我将 sshd 设置为在 PC 启动时运行,并且每次启动机器时 WSL2 都有不同的 IP。有没有办法将 WSL2 配置为使用静态 IP?
编辑:有关确定 WSL 机器 IP 的变通方法,请参阅此问题。
netsh ×1
networking ×1
powershell ×1
ssh ×1
windows-10 ×1
windows-subsystem-for-linux ×1
wsl2 ×1