wsl 固定ip 方法 一劳永逸

目前网上有很多办法,有用host,有修改bash的,非常多,也非常麻烦。

目前发现这种方法最为简单:添加一个开机启动项,配置一个netsh

1.准备一个vbs 并添加到开机启动项

Set ws = WScript.CreateObject("WScript.Shell")
ws.run "wsl -d CentOS7 -u root sudo service sshd start", vbhide
ws.run "wsl -d CentOS7 -u root ip addr add 172.28.131.101/20 broadcast 172.28.143.255 dev eth0 label eth0:1", vbhide

这个vbs的意义是首先拉起openssh服务,允许我连接到服务器

第二个是为eth0添加一个固定的ip地址为172.28.131.101/20,这个IP就是我希望固定的IP,广播地址172.17.111.255,这种添加后的netmask就是 255.255.240.0,添加结果如图:

wsl 固定ip 方法 一劳永逸_第1张图片

 

至于为什么不使用192.168网段,纯粹是因为wsl默认的子网掩码就是255.255.240.0所以采取172网段。

因为执行命令需要时间,而windows启动项是非阻塞的,所以我们需要手动执行:

netsh interface ip add address "vEthernet (WSL)" 172.28.131.102 255.255.240.0

目的是为链接到WSL的虚拟网卡配置成172.28.131.102/20,实现到WSL的联通。这里IP地址不要与上面的冲突。

通过ipconfig查看:

wsl 固定ip 方法 一劳永逸_第2张图片

 

注意,这种方法是添加一个IP地址,所以不会影响到WSL初始化的IP信息。使用WSL初始化IP,一样可以正常连接。

如果你希望使用192.168网段的,可以把WSL配置成其他网段,比如192.168.7.X,然后广播为192.168.7.255,对应子网192.168.7.0;vEthernet设置为192.168.7.Z,对应子网掩码一致。理解起来可能容易一些。

你可能感兴趣的:(tcp/ip,服务器,linux)