同一性
使用clash等搭建代理后,终端不经设置并不会通过代理,而无论是Windows还是Linux,方法都是加入http_proxy
,https_proxy
或all_proxy
环境变量。
假设我有代理http://127.0.0.1:7890
(可完全替换为socks5://127.0.0.1:1080
),那么只需将该值赋给上述变量即可,不同系统操作方法不一。
同时还要注意设置的环境变量是临时还是永久的问题,临时设置只对当前终端会话有效。
注意:上述三个环境变量名全大写或全小写都没有问题
补充一点,如果只是git需要使用代理,可以在git设置代理,原理相同:
git config --global http.proxy 'socks5://127.0.0.1:1080' git config --global https.proxy 'socks5://127.0.0.1:1080'
如果不想git全局使用代理,那只需要在需要代理的仓库输入去掉
--global
的命令即可:git config http.proxy 'socks5://127.0.0.1:1080' git config https.proxy 'socks5://127.0.0.1:1080'
若要取消git的代理设置:
#取消http代理 git config --global --unset http.proxy #取消https代理 git config --global --unset https.proxy
或
#取消http代理 git config --unset http.proxy #取消https代理 git config --unset https.proxy
Windows
临时设置
set http_proxy=http://127.0.0.1:7890 # =后的值可以加双引号,也可以不加
set https_proxy=http://127.0.0.1:7890 # 注意这里是设置https的代理,但是我们的代理还是http
# 或者直接设置
set all_proxy=http://127.0.0.1:7890 # 这是一次性设置两个,可以不设置这个
永久设置
终端启用代理的方法是那三个环境变量,因此永久设置就是手动去设置添加环境变量。
如何添加环境变量不再赘述。
Linux
临时设置
export http_proxy=http://127.0.0.1:7890 # =后的值可以加双引号,也可以不加
export https_proxy=http://127.0.0.1:7890 # 注意这里是设置https的代理,但是我们的代理还是http
# 或者直接设置
export all_proxy=http://127.0.0.1:7890 # 这是一次性设置两个,可以不设置这个
永久设置
同样的,永久设置也是是将其写入环境变量,在Linux中是将上述内容添加到~/.bashrc
或~/.profile
的末尾。
然后注意我们需要使用source ~/.bashrc
或source ~/.profile
刷新当前环境使设置生效。
测试是否通过了代理
因为ping是ICMP报文,代理不转发所以测试时不要使用ping来测试,而是用curl
来进行测试。
curl ip.gs # 推荐,启用后返回代理IP,否则是本地IP(但是返回结果只有IP)
curl cip.cc # 好像有点问题,能curl通Google但是它还是显示本地IP(返回结果会显示地址)
curl https://www.google.com # 最直接的方法,能返回HTML就没问题,否则会报错
参考
- Windows系统下设置cmd命令行(终端)走代理的方法
- [Linux 让终端走代理的几种方法](Linux 让终端走代理的几种方法 - 知乎 (zhihu.com))