2024年1月30日
By: Chase

魔法proxy各种设置

前言

搜资料要魔法, 装依赖要魔法, 最近github不稳定了, 有时clone也需要魔法了.

本文帮助自己记录git, 命令行等如何施法(设置挂proxy), 不包括**魔法(获得一个proxy)**本身, 默认已有127.0.0.1:1080的魔法配方.

如何查看施法成功了没

这个单独提是因为, 很多人以为设置了代理软件的全局代理或者命令行, 或者其他, 之后的网络请求肯定是已经使用了魔法, 其实不一定的.

  1. 看你的魔法log, 到底有没有请求走这边.
  2. 看你的网络监视器, 这种尤其是在安装依赖卡主的时候, 你以为他在缓慢拉取, 实际一点请求数据量都没有.
  3. wireshark抓包分析一下请求走哪了, 菜逼如我建议慎重使用, 可能会和代理软件有冲突, 我之前用他就把全局网络设置搞乱了, 最后重置了.

施法

常规施法

mac自带的, 设置里全局搜代理, 如下配置即可.

图-0

这个开启后Safari可以施法, Apple Music也可以施法, 许多其他的一些已安装应用应该也可以, 没有进一步的追踪log查看.

但是Chrome不知为什么不能施法, 还是需要额外使用SwitchyOmega插件.

命令行施法

我默认用的zsh, 所以在~/.zprofile全局设置了proxyunproxy两个快捷键. 同理你可以设置~/.bashrc

alias proxy='export all_proxy=socks5://127.0.0.1:1080'
alias unproxy='unset all_proxy'

配置完了别忘记source ~/.zprofile让配置生效.

之后我们分别在proxyunproxy的情况下试试

curl https://www.google.com

一种应该会报Failed to connect, 一种会报ssl相关错误.

或者更直接点:

curl cip.cc

会直接返回你的ip信息.

这里不要用ping测试施法成功了没有, 至于为啥我讲不到很透彻, 贴一下chatGPT的回答:

使用 ping 命令测试代理成功与否通常并不可靠,原因如下:

  1. 代理服务器不响应 ICMP 请求: 许多代理服务器和防火墙配置为不响应 ICMP 请求,这是出于安全和隐私的考虑。因此,即使代理正常工作,ping 请求也可能不会收到响应。
  2. ping 测试的是网络层: ping 是基于 ICMP 协议,它测试的是网络层的可达性。然而,代理通常工作在更高的传输层(如TCP或UDP),因此 ping 无法直接测试代理的具体功能。
  3. 代理可能使用不同的协议: 代理可以支持多种协议,如HTTP、HTTPS、Socks等。ping 只能测试基本的网络连通性,无法检测代理对其他协议的支持情况。 对于测试代理的可用性,更好的方式是使用专门的代理测试工具,或者通过尝试使用代理进行实际的应用层通信,例如使用 curl 或浏览器访问网页。这样可以更全面地测试代理的功能和性能。如果代理需要身份验证,还需要确保在测试中提供正确的凭证。

npm与yarn施法

npm和yarn单独拿出来说, 是因为他不走命令行已经挂了的代理, 可以自己直接看代理log确认.

npm的, 修改~/.npmrc或者项目目录下的.npmrcproxy代理http请求, https-proxy代理https请求

proxy=socks5://127.0.0.1:1080 
https-proxy=socks5://127.0.0.1:1080

查看npm的设置可以通过npm config list查看.

yarn的, 修改~/.yarnc或者项目目录下的.yarnc

httpProxy socks5://127.0.0.1:1080
httpsProxy socks5://127.0.0.1:1080

yarn的设置查看可以用yarn config list

很多人会给npm设置淘宝镜像(registry), 个人建议能自己走魔法, 就不要用registry.

git施法

git常规情况下应该是会走zsh或者bash的全局设置, 但是之前安装依赖的时候, 依赖的网络请求报了一个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 config --global --unset http.proxy
git config --global --unset https.proxy

查看的话可以git config --list或者打开~/.gitconfig

Tags: proxy