.. back to home

WSL2配置代理


该方法引用自: https://www.cnblogs.com/tuilk/p/16287472.html

配置WSL2

这种配置方法适用于长期配置,也就是写一个脚本,然后可以通过命令启动代理。新建proxy.sh脚本如下:

 1#!/bin/sh
 2hostip=$(cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }')
 3wslip=$(hostname -I | awk '{print $1}')
 4port=7890
 5 
 6PROXY_HTTP="http://${hostip}:${port}"
 7 
 8set_proxy(){
 9  export http_proxy="${PROXY_HTTP}"
10  export HTTP_PROXY="${PROXY_HTTP}"
11 
12  export https_proxy="${PROXY_HTTP}"
13  export HTTPS_proxy="${PROXY_HTTP}"
14 
15  export ALL_PROXY="${PROXY_SOCKS5}"
16  export all_proxy=${PROXY_SOCKS5}
17 
18  git config --global http.https://github.com.proxy ${PROXY_HTTP}
19  git config --global https.https://github.com.proxy ${PROXY_HTTP}
20 
21  echo "Proxy has been opened."
22}
23 
24unset_proxy(){
25  unset http_proxy
26  unset HTTP_PROXY
27  unset https_proxy
28  unset HTTPS_PROXY
29  unset ALL_PROXY
30  unset all_proxy
31  git config --global --unset http.https://github.com.proxy
32  git config --global --unset https.https://github.com.proxy
33 
34  echo "Proxy has been closed."
35}
36 
37test_setting(){
38  echo "Host IP:" ${hostip}
39  echo "WSL IP:" ${wslip}
40  echo "Try to connect to Google..."
41  resp=$(curl -I -s --connect-timeout 5 -m 5 -w "%{http_code}" -o /dev/null www.google.com)
42  if [ ${resp} = 200 ]; then
43    echo "Proxy setup succeeded!"
44  else
45    echo "Proxy setup failed!"
46  fi
47}
48 
49if [ "$1" = "set" ]
50then
51  set_proxy
52 
53elif [ "$1" = "unset" ]
54then
55  unset_proxy
56 
57elif [ "$1" = "test" ]
58then
59  test_setting
60else
61  echo "Unsupported arguments."
62fi

注意:其中第4行的更换为自己的代理端口号。

1source ./proxy.sh set:开启代理
2source ./proxy.sh unset:关闭代理
3source ./proxy.sh test:查看代理状态

2.1 任意路径下开启代理
可以在~/.bashrc中添加如下内容,并将其中的路径修改为上述脚本的路径:

1alias proxy="source /path/to/proxy.sh"

然后输入如下命令:

1source ~/.bashrc

那么可以直接在任何路径下使用如下命令:

1proxy set:开启代理
2proxy unset:关闭代理
3proxy test:查看代理状态

2.2 自动设置代理
也可以添加如下内容,即在每次shell启动时自动设置代理,同样的,更改其中的路径为自己的脚本路径:

1. /path/to/proxy.sh set