.. back to home

linux 使用代理以及遇到的问题


前提 你得有一个代理

我的场景是wsl,使用主机打开的 clash 代理

clash for windows 支持端口代理,所以在wsl中需要科学上网的场景可以走这个代理提高访问速度

理论可行,实现优点曲折。

小插曲,wsl2的网络模式与wsl1不一致,本质上是两台机器,通过网络链接,所以需要知道windows的IP,在wsl网络里的IP,

 1# windows下执行 ipconfig即可看到
 2> ipconfig
 3以太网适配器 vEthernet (WSL (Hyper-V firewall)):
 4
 5   连接特定的 DNS 后缀 . . . . . . . :
 6   本地链接 IPv6 地址. . . . . . . . : fe80::e4ec:39b6:69cb:8afe%42
 7   IPv4 地址 . . . . . . . . . . . . : 172.31.192.1
 8   子网掩码  . . . . . . . . . . . . : 255.255.240.0
 9   默认网关. . . . . . . . . . . . . :
10
11# wsl2   执行 
12cat /etc/resolv.conf | grep nameserver 
13nameserver 172.31.192.1

linux设置代理,一个脚本完事

 1#!/bin/sh
 2hostip=$(cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }')
 3wslip=$(hostname -I | awk '{print $1}')
 4port=58972  # 代理的端口
 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} # git 的代理
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

启动

设置 vscode 的代理

设置里找到加上就行

1    "http.proxy": "http://172.31.192.1:58972",