(可以直接使用第二点,如果无法使用在参考第一点,文章仅供参考)
- 打开或者创建wsl的配置文件,2.0后才可以这样使用,文件位置在C盘的用户目录USER的用户名下面的.wslconfig,如没有这个文件,创建即可,在文件中添加下面的内容
[experimental]
autoMemoryReclaim=gradual
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true
-
添加下面代码到一个sh脚本内容,例如./proxy.sh中,执行该脚本即可
也可以添加到bashrc或者zshrc中方便使用 vim ~/.zshrc 或者 vim ~/.bashrc 在文件中添加下面的命令,路径按自己的实际路径填写即可 alias proxy="source ./proxy.sh" 添加后更新配置source ~/.zhsrc 更新配置后即可使用 proxy set 开启 proxy unset 关闭 proxy test 测试是否可以使用 为了方便,可以把自己常用的一些命令简写到配置文件中,比如频繁的命令 alias vzhsrc="vim ~/.zshrc" alias szhrc="source ~/.zshrc" alias n="neofetch" alias vim="nvim" alias vi="nvim"
注意,如果是archLiux中hostname无法使用,可以使用hostnamectl hostname即可,或者删除脚本中涉及输出主机名
#!/bin/sh
hostip=$(cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }')
wslip=$(hostname -I | awk '{print $1}')
port=端口号
PROXY_HTTP="http://${hostip}:${port}"
set_proxy(){
export http_proxy="${PROXY_HTTP}"
export HTTP_PROXY="${PROXY_HTTP}"
export https_proxy="${PROXY_HTTP}"
export HTTPS_proxy="${PROXY_HTTP}"
export ALL_PROXY="${PROXY_SOCKS5}"
export all_proxy=${PROXY_SOCKS5}
git config --global http.https://github.com.proxy ${PROXY_HTTP}
git config --global https.https://github.com.proxy ${PROXY_HTTP}
echo "Proxy has been opened."
}
unset_proxy(){
unset http_proxy
unset HTTP_PROXY
unset https_proxy
unset HTTPS_PROXY
unset ALL_PROXY
unset all_proxy
git config --global --unset http.https://github.com.proxy
git config --global --unset https.https://github.com.proxy
echo "Proxy has been closed."
}
test_setting(){
echo "Host IP:" ${hostip}
echo "WSL IP:" ${wslip}
echo "Try to connect to Google..."
resp=$(curl -I -s --connect-timeout 5 -m 5 -w "%{http_code}" -o /dev/null www.google.com)
if [ ${resp} = 200 ]; then
echo "Proxy setup succeeded!"
else
echo "Proxy setup failed!"
fi
}
if [ "$1" = "set" ]
then
set_proxy
elif [ "$1" = "unset" ]
then
unset_proxy
elif [ "$1" = "test" ]
then
test_setting
else
echo "Unsupported arguments."
fi