.. 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",