mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5
439 字
1 分钟
解决虚拟机无法共享宿主机Clash代理问题
2026-06-25

症状#

最近我想要在我的虚拟机上运行docker,但运行时却出现镜像容器pull不下来的问题,明明宿主机上的Clash开启了局域网连接,虚拟机内的系统也正确的配置了地址,但就是无法连接

alt text

alt text

双方能直接ping通代表通信局域网内通信没有大问题

解决#

在代理软件的订阅配置文件中找到了如下一行

allow-lan: false
bind-address: 127.0.0.1

这下解决方法就很简单了,将绑定中的回环地址改为*即可

allow-lan: true
bind-address: "*"

因为是订阅链接那边自动更新的配置文件,手动修改后下次更新可能被重新覆盖回去,可以关闭自动更新或者在宿主机终端中输入以下指令

Terminal window
netsh interface portproxy add v4tov4 listenaddress=10.10.10.1 listenport=7897 connectaddress=127.0.0.1 connectport=7897

这条命令将虚拟机出来的流量10.10.10.1导向了127.0.0.1:7897

问题的根本#

简单比喻理解这个问题是如何发生的,但也只是我个人的理解

在正常情况下,勾选了 Clash Verge 上的局域网连接开关,底层内核就应该自动将监听地址从局域网隐身状态的 127.0.0.1:7897 切换为对全网开放的 0.0.0.0:7897

但是由于配置文件中写死了绑定地址为127.0.0.1,而配置文件优先级高于设置,所以导致明明开了局域网连接,但代理软件依然一直在127.0.0.1中

也就是说,本来流量的导向应该是这样,docker发出的请求——>10.10.10.1——>Clash

但由于这个配置文件导致Clash被锁死在127.0.0.1上,虽然有在监听,但完全不会接受来自虚拟机的请求

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

解决虚拟机无法共享宿主机Clash代理问题
https://www.yisibuwang.top/posts/2026-06-25-解决虚拟机无法共享宿主机clash代理问题/
作者
buwang
发布于
2026-06-25
许可协议
CC BY 4.0

部分信息可能已经过时