mac终端代理

转载来自:https://github.com/Qingquan-Li/blog/issues/131

环境:

  • macOS
  • 网络代理服务器(购买或自行搭建)
  • 网络代理客户端(ClashX等)

macOS 下的终端默认是不走系统代理的,即使我们已经打开了网络代理客户端的"全局代理"。

一、开启全局代理模式

打开网络代理客户端,并打开全局代理模式。

二、配置终端代理

在终端命令行中,配置代理。

以使用 ClashX 代理客户端为例,HTTP 代理端口为 7890 ,Socks5 代理端口为 7891。端口是可修改的。HTTP 代理或 Socks5 代理,配置时选其中一种复制到终端即可。

点击 ClashX => 复制终端代理命令,即可复制到一下命令:

# 配置http访问的
export https_proxy=http://127.0.0.1:7890
# 配置https访问的
export http_proxy=http://127.0.0.1:7890

# 配置http和https访问
export all_proxy=socks5://127.0.0.1:7891

这种方法只在当前终端窗口有效,关闭或新建终端窗口后将实效。
或执行 $ export all_proxy='' 使其失效。
或在网络代理客户端中关闭全局代理模式,使其失效。

如果想长期有效,请把以上命令添加到 Shell 配置文件 .bash_profile 或者 .zshrc ,然后执行 $ source ~/.bash_profile 或者 $ source ~/.zshrc 使配置生效。

附:局域网内配置其他电脑( macOS / Linux )终端的网络代理:

  1. 网络代理客户端(这里是ClashX)设置“全局”连接模式,打开“允许局域网连接”;
  2. $ export all_proxy=socks5://运行着网络代理客户端的电脑的IP地址:7891

附:局域网内共享电脑的网络代理给其他设备:

这里已经配置好网络代理的宿主电脑,使用的网络代理客户端是 ClashX 。
在局域网内,把宿主电脑的网络代理共享给其他设备。

  1. iPhone => 设置 => wifi => 配置代理 => 手动模式 => 服务器-运行着ClashX电脑的IP地址 => 端口7890 。
  2. Ubuntu => System Setting => Network => Network proxy => 运行着ClashX电脑的IP地址 + 端口7890/7891 。

三、验证

对比配置终端代理前后的 IP 和 归属地址:

$ curl cip.cc  # 查询IP、归属地址、运营商
 
alias proxy='export all_proxy=socks5://127.0.0.1:7891'
alias unproxy='unset all_proxy'
alias ip='curl cip.cc'

你好👋,我配置里面是如上设置的,我使用的是IPLC线路Proxy之后还是本机IP,请问我有什么地方做的不对呢?我以前是使用的SSR这样是没问题的,现在切换到了ClashX。

 
 

hello,建议检查一下是否开了全局代理,如果没开全局,确实会继续显示本机 IP 的。

如果还是不行,因为我不知道你具体使用的方案,建议可以完全按上面的流程走一遍。

附一张图:

agent

 

有什么办法可以使用规则判断模式来使终端走代理么,因为不想一直在全局和规则上切换

 
 

@mipawn 理论上,都是要先开全局的。
如果不想一直开着全局,可以试一下,运行 $ curl cip.cc 确定终端已经在走代理了,然后把全局改为规则,再次运行 $ curl cip.cc 看看此时终端是不是还在走代理。

 

@FatliTalk 按照这个步骤试了一下,只有在全局模式下才能使终端处于代理模式之下。搜了一下相关话题,也没找到解决方案,不知是否有新的办法能够在规则模式下使终端处于代理模式?谢谢。

 
 

@tzayuan 需要开全局的,至少我是这样。

 
 

@FatliTalk 感谢回复。我又测试了一下,发现规则模式下的终端代理是按照规则模式进行代理的。如把cip.cc加入规则中后,执行curl cip.cc就可以返回正确的代理后的信息。通过这种方式,可以不完美的实现终端的规则模式下代理,只是可能漏掉一些终端访问地址的规则导致这些访问地址是通过本地网络进行访问的。

但同时我产生了两个新的疑问:

  1. 当我在规则中加入cip.cc后,通过执行curl cip.cc的确可以返回代理后的信息,但是我发现执行curl www.cip.cc则返回的还是我的本地网络的信息,因此推测规则中的cip.cc并不包含***.cip.cc,对此还是存疑的;

  2. 同时我在浏览器中访问cip.cc,自动返回的是www.cip.cc,这里是否应理解为cip.cc主机配置了自动返回www.cip.cc为访问该主机的默认返回页面?

 
 

@tzayuan 对于疑问1,我认为你的推断正确,即需要配置完整的URL。已经肉翻,无法测试验证。
对于疑问2,你打开浏览器的 Developer Tools 访问 cip.cc 可以看到被 301 重定向到 www.cip.cc 了。

 
 
alias proxy='export all_proxy=socks5://127.0.0.1:7891'
alias unproxy='unset all_proxy'
alias ip='curl cip.cc'

你好👋,我配置里面是如上设置的,我使用的是IPLC线路Proxy之后还是本机IP,请问我有什么地方做的不对呢?我以前是使用的SSR这样是没问题的,现在切换到了ClashX。

最后是怎么解决的呢,我和你一样的情况

 
 

@HelperInCa 必须在全局规则下才能生效

posted @ 2022-02-28 18:55  冰糖葫芦很乖  阅读(5779)  评论(1编辑  收藏  举报