在WSL的/etc/profile中添加如下命令
ipaddr=$(ifconfig eth0 | grep 'inet ' | awk '{print $2}')
sed -i '/wslhost/d' /mnt/c/Windows/System32/drivers/etc/hosts
echo "$ipaddr wslhost" >> /mnt/c/Windows/System32/drivers/etc/hosts
上述命令会在WSL启动时将查询到的ip地址设置到windows下的hosts文件中, 然后通过wslhost就可以直接访问
然后要在windows设置host文件夹的权限, 否则上述命令执行时极大概率会遇到权限不足问题
-
在etc文件夹中右键-属性-安全-高级-更改-输入框中输入Users-确定, 然后可以看到所有者变成了 User。

-
然后返回 安全,点击 编辑,找到User,在 完全控制 这项打勾✔

-
确定, 保存更改。这个时候重启wsl, 查看hosts文件发现多了这么一行,说明配置成功

以后就可以通过wslhost可以尝试通过wslhost在windows下连接WSL数据库
本文基于:wsl2能否固定ip地址? - 搁浅的回答 - 知乎https://www.zhihu.com/question/387747506/answer/1820473311
该博客介绍了如何在WSL中通过修改/etc/profile文件,实现启动时自动将WSL的IP地址添加到Windows的hosts文件中,以便通过wslhost访问。此外,还详细阐述了如何解决执行此操作时可能遇到的权限问题,包括更改文件夹权限以确保用户具有完全控制权。这一配置对于在Windows环境下便捷连接WSL内的数据库特别有用。
2万+





