在使用win10上的WSL2时遇到了一个问题:每次重启电脑或wsl2后,wsl2子系统的ip地址就会发生改变。后来在wsl的github上找到了相关的解决方案。
在使用win10的wsl2子系统时,windows会通过虚拟交换机给win10本机与wsl2子系统各自会分配一个ip地址,当windows电脑重启并再次打开wsl2时,虚拟交换机会被重新创建,分配给它们的ip地址也会随着改变。
目前我在wsl2上安装了docker环境,启动了一个mysql容器并映射了3306端口到docker宿主机的33306,这样windows可以通过wsl2-ip:33306
访问mysql,docker容器之间也可以通过wsl2-ip:33306
访问mysql。 但是wsl2子系统的ip地址不固定,导致每次重启wsl2都会查看当前的ip地址并修改相关链接配置,十分不方便。
解决方案是我在wsl的github上的issue上看到的 ===> 传送门。
方案的大致内容就是:既然固定不了wsl2的ip地址,那么就在启动wsl2后主动给它设置一个ip地址。
我按照上面的思路并结合自己的需求编写了一个简单的bat脚本,每当我开机后需要用到docker时就执行该脚本,这样就能够通过固定的ip地址去访问服务了。
自己首先划定了一个虚拟的局域网络 192.168.169.1/28
,然后将192.168.169.1
分配给了windows,192.168.169.2
分配给了wsl2,这样就可以通过指定的ip地址访问相应系统上的服务了。
上述的ip地址可以自己自定,只要不跟已有局域网络相冲突即可。