wsl2 代理脚本proxy.sh

wsl2 开发时使用宿主系统的proxy,

在宿主机D盘创建文件:proxy.sh,代码在最后。

拷到wsl的用户根目录,

rm -rf ~/proxy.sh
cp /mnt/d/proxy.sh ~/

使用方式:

source ~/proxy.sh set
source ~/proxy.sh test
source ~/proxy.sh unset

proxy.sh脚本

#!/bin/sh
# source ~/proxy.sh set 开启代理
# source ~/proxy.sh unset 关闭代理
# source ~/proxy.sh test 查看代理
hostip=$(cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }')
wslip=$(hostname -I | awk '{print $1}')

sport=10808
hport=10809

PROXY_SOCKS5="socks5://${hostip}:${sport}"
PROXY_HTTP="http://${hostip}:${hport}"

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

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注