Why
鉴于日益严峻的网络形势,先写个文章记录一下各个 Shell 的代理设置,方便后续使用
(感觉不如…搞个 dot file repo)
Shell
*sh
不太清楚是不是所有发行版和 Shell 都支持all_proxy
,一起写上总没错:)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| export host_ip=<host ip> export port=<port>
function proxyOn() { export all_proxy=http://$host_ip:$port export http_proxy=$all_proxy export https_proxy=$all_proxy echo -e "Proxies turned on" }
function proxyOff(){ unset all_proxy http_proxy https_proxy echo -e "Proxies turned off" }
|
Powershell
Windows11 21H2 实测是跟随系统代理的
一些特殊情况
WSL2
WSL2 由于使用了虚拟机,所以会使用一个虚拟网卡与主机通信,并且 IP 会发生动态变化
可以通过查询 WSL2 主机 DNS 服务器的方法间接获得宿主机地址
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| export host_ip=$(cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }') export port=1080
function proxyOn() { export all_proxy=http://$host_ip:$port export http_proxy=$all_proxy export https_proxy=$all_proxy echo -e "Proxies turned on" }
function proxyOff(){ unset all_proxy http_proxy https_proxy echo -e "Proxies turned off" }
|
Git
你可以通过如下命令为 Git 设置代理
1 2 3 4 5 6
| git config --global http.proxy http://$host_ip:$port git config --global https.proxy http://$host_ip:$port
git config --global --unset http.proxy git config --global --unset https.proxy
|
这等效于编辑~/.gitconfig
1 2 3 4
| [http] proxy = http://$host_ip:$port [https] proxy = http://$host_ip:$port
|
快速验证代理
*sh
1 2 3 4 5 6 7 8 9
| root@BakaFT-PC:~ IP : **** 地址 : 美国 美国
数据二 : 美国 | Microsoft数据中心
数据三 : 美国 | 微软
URL : http://www.cip.cc/****
|
Powershell
1 2 3 4 5 6
| PS C:\Users\Administrator>curl api.ipify.org
StatusCode : 200 StatusDescription : OK Content : **** // Your IP Address will be shown here // ....
|
参考
WSL2 中访问宿主机 Windows 的代理 - ZingLix Blog
终端使用代理加速的正确方式(Shadowsocks) - SegmentFault 思否