赞
踩
由于 WSL 2 基于 Hyper-V,其与宿主 Windows 的关系可以看作是同一网络下的不同主机。要实现 WSL 2 到 Windows 的通信,首先要让 WSL 2 知道 Windows 的 IP 地址。
在 Windows 中,打开终端,执行 ipconfig
,可以看到 WSL 相关的网络信息:
需要注意的是,在没有特殊配置的情况下,电脑的 IP 地址通常会随网络环境的变化而变化,此处及后文的 IP 地址仅供参考,具体 IP 地址需要以自己实际操作时的输出为准。
通过 ipconfig
的输出可以发现,在 Windows-WSL 2 这一体系中,Windows 的 IP 地址为 192.168.176.1
。
Linux 系统中,/etc/resolv.conf
为 DNS 配置文件,对于 WSL 2 也是如此。在 WSL 2 中,执行 cat /etc/resolv.conf
,查看其中的内容:
可以发现,此处指向的 DNS 服务器 IP 为 192.168.176.1
,正是 Windows 的 IP,说明 WSL 2 是借助 Windows 去寻找真正的 DNS 服务器的。
可以尝试在 WSL 2 中 ping Windows,即执行 ping `cat /etc/resolv.conf | grep nameserver | awk '{print $2}'`
,能 ping 通即表示 WSL 2 能通过网络访问 Windows。
因为每次启动 WSL 2 都会重新分配虚拟网络,可以在 ~/.bashrc
中加入 Windows 网络相关环境变量,便于后续使用:
# Windows 宿主机 IP
WINDOWS_IP=$(grep nameserver /etc/resolv.conf | awk '{print $2}' | head -1)
# Windows 宿主机代理端口
WINDOWS_PROXY_PORT=7890
# 更新 Windows 网络信息
function update_windows_net_info() {
WINDOWS_IP=$(grep nameserver /etc/resolv.conf | awk '{print $2}' | head -1)
WINDOWS_PROXY_PORT=7890
}
如果有需要的话,还可以在 update_windows_net_info
中将 Windows 的 IP 地址写入 /etc/hosts
。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。