基于wsl-vpnkit实现Windows和WSL的双向任意访问,解决a-Trust等VPN客户端使能时无法互相访问的问题。
这里我把wsl-vpnkit作为了WSL的启动项,配置好了一劳永逸。
1、WSL网络模式需要为:VirtioProxy
。其他网络配置项的开关无所谓,按需开启就行。
2-1、Windows端下载 wsl-vpnkit.tar.gz
:https://github.com/sakai135/wsl-vpnkit/releases/download/v0.4.1/wsl-vpnkit.tar.gz
2-2、Windows端PowerSheel进入刚才下载的目录,执行命令把wsl-vpnkit导入wsl:
wsl --import wsl-vpnkit --version 2 $env:USERPROFILE\wsl-vpnkit wsl-vpnkit.tar.gz
3-1、进入WSL环境,下载wsl-vpnkit并解压:
# install dependencies
sudo apt-get update
sudo apt-get install iproute2 iptables iputils-ping dnsutils wget
# download wsl-vpnkit and unpack
VERSION=v0.4.1
wget https://github.com/sakai135/wsl-vpnkit/releases/download/$VERSION/wsl-vpnkit.tar.gz
tar --strip-components=1 -xf wsl-vpnkit.tar.gz \
app/wsl-vpnkit \
app/wsl-gvproxy.exe \
app/wsl-vm \
app/wsl-vpnkit.service
# remove tar
rm wsl-vpnkit.tar.gz
3-2、仍在WSL环境内,添加wsl-vpnkit到systemd:
# wsl-vpnkit setup as a distro
wsl.exe -d wsl-vpnkit --cd /app cat /app/wsl-vpnkit.service | sudo tee /etc/systemd/system/wsl-vpnkit.service
# copy and edit for wsl-vpnkit setup as a standalone script
sudo cp ./wsl-vpnkit.service /etc/systemd/system/
sudo nano /etc/systemd/system/wsl-vpnkit.service
# enable the service
sudo systemctl enable wsl-vpnkit
# start and check the status of the service
sudo systemctl start wsl-vpnkit
systemctl status wsl-vpnkit
4、注意,wsl-vpnkit文档中提到可以配置自定义DNS,这个操作不要做(会覆盖WSL内的DNS),除非你清楚自己在做什么:
If modifying
/etc/resolv.conf
to set a custom DNS configuration, setgenerateResolvConf=false
inwsl.conf
.
— over —