<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Rocky‘s Blog - Geph</title>
    <subtitle>月更 技术博客 CXX优先</subtitle>
    <link rel="self" type="application/atom+xml" href="https://suchaharcan.github.io/tags/geph/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://suchaharcan.github.io/"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-11-01T00:00:00+00:00</updated>
    <id>https://suchaharcan.github.io/tags/geph/atom.xml</id>
    <entry xml:lang="en">
        <title>Geph 免费版 + iTerm：给 macOS 终端补一层可用的外网代理</title>
        <published>2026-11-01T00:00:00+00:00</published>
        <updated>2026-11-01T00:00:00+00:00</updated>
        
        <author>
          <name>Suchaharcan</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://suchaharcan.github.io/03Share_blog/geph-macos-iterm-proxy/"/>
        <id>https://suchaharcan.github.io/03Share_blog/geph-macos-iterm-proxy/</id>
        
        <content type="html" xml:base="https://suchaharcan.github.io/03Share_blog/geph-macos-iterm-proxy/">&lt;h1 id=&quot;geph-mian-fei-ban-iterm-gei-macos-zhong-duan-bu-yi-ceng-ke-yong-de-wai-wang-dai-li&quot;&gt;Geph 免费版 + iTerm：给 macOS 终端补一层可用的外网代理&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;TL;DR：Geph 在 macOS 上可以开启本机 HTTP/SOCKS5 代理。本文用 &lt;code&gt;geph_proxy.zsh&lt;/code&gt; 把 iTerm 里的 &lt;code&gt;curl&lt;/code&gt;、&lt;code&gt;git&lt;/code&gt;、Homebrew 等终端工具的流量接到 Geph，同时在 &lt;code&gt;NO_PROXY&lt;/code&gt; 中排除常见国内域名。脚本会先核对 &lt;code&gt;9910/9909&lt;/code&gt; 端口，再实际访问国外测试站；只有验证成功才设置代理变量，失败则自动清理。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class=&quot;markdown-alert-important&quot;&gt;
&lt;p&gt;Geph 官方入口：&lt;a class=&quot;external&quot; rel=&quot;external&quot; href=&quot;https://geph.io/&quot;&gt;Geph 官网&lt;/a&gt; · &lt;a class=&quot;external&quot; rel=&quot;external&quot; href=&quot;https://docs.geph.io/&quot;&gt;Geph 官方文档&lt;/a&gt; · &lt;a class=&quot;external&quot; rel=&quot;external&quot; href=&quot;https://github.com/geph-official&quot;&gt;Geph 官方 GitHub&lt;/a&gt;。
请从官网下载客户端，并遵守所在地区法律法规及 Geph 服务条款。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2 id=&quot;1-mu-biao-yu-gua-yong-bian-jie&quot;&gt;1. 目标与适用边界&lt;/h2&gt;
&lt;p&gt;本方案只解决一个具体问题：&lt;strong&gt;让 macOS 终端获得镜像站没有覆盖的外网访问能力&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;它适合：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;curl&lt;/code&gt;、&lt;code&gt;wget&lt;/code&gt;、&lt;code&gt;git clone/fetch/pull&lt;/code&gt; 等会读取代理环境变量的命令行工具；&lt;/li&gt;
&lt;li&gt;Homebrew、npm、pip、Go 等能够继承 &lt;code&gt;HTTP_PROXY&lt;/code&gt; / &lt;code&gt;HTTPS_PROXY&lt;/code&gt; 的终端程序；&lt;/li&gt;
&lt;li&gt;已有的 GitHub、Homebrew、PyPI 镜像没有覆盖的国外域名；&lt;/li&gt;
&lt;li&gt;希望把 Geph 放在后台，只给终端提供按需代理的 Mac 用户。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它不适合：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;浏览器、App Store、原生桌面应用等不读取 zsh 环境变量的程序；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ping&lt;/code&gt;、普通 UDP、&lt;code&gt;git@github.com:&lt;/code&gt; 形式且未配置 &lt;code&gt;ProxyCommand&lt;/code&gt; 的 SSH 连接；&lt;/li&gt;
&lt;li&gt;需要完整 TUN 或系统级 VPN 的场景。&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote class=&quot;markdown-alert-note&quot;&gt;
&lt;p&gt;镜像站和 Geph 是互补关系。GitHub、Homebrew、PyPI 等已有国内镜像的下载仍应优先走镜像；Geph 只弥补镜像没有覆盖的域名。把大文件也强行送进免费代理，只会更慢。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2 id=&quot;2-shi-ce-huan-jing&quot;&gt;2. 实测环境&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;项目&lt;/th&gt;&lt;th&gt;本文检查值&lt;/th&gt;&lt;th&gt;说明&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;macOS&lt;/td&gt;&lt;td&gt;27.2 / arm64&lt;/td&gt;&lt;td&gt;Intel Mac 的安装路径与终端用法相同&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Shell&lt;/td&gt;&lt;td&gt;zsh 5.9&lt;/td&gt;&lt;td&gt;依赖交互式 zsh 加载 &lt;code&gt;~/.zshrc&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Geph&lt;/td&gt;&lt;td&gt;5.9.1&lt;/td&gt;&lt;td&gt;其他 5.x 版本请核对设置页&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Geph HTTP 代理&lt;/td&gt;&lt;td&gt;&lt;code&gt;127.0.0.1:9910&lt;/code&gt;&lt;/td&gt;&lt;td&gt;优先使用，兼容性最好&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Geph SOCKS5 代理&lt;/td&gt;&lt;td&gt;&lt;code&gt;127.0.0.1:9909&lt;/code&gt;&lt;/td&gt;&lt;td&gt;HTTP 端口不可用时自动尝试&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;脚本&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://suchaharcan.github.io/03Share_blog/geph-macos-iterm-proxy/geph_proxy.zsh&quot;&gt;&lt;code&gt;geph_proxy.zsh&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;完整源码，建议下载后先阅读再加载&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;blockquote class=&quot;markdown-alert-warning&quot;&gt;
&lt;p&gt;端口必须与 Geph 设置页完全一致。默认约定是 &lt;strong&gt;HTTP &lt;code&gt;9910&lt;/code&gt;、SOCKS5 &lt;code&gt;9909&lt;/code&gt;&lt;/strong&gt;；如果把 Geph 改成其他端口，就要同步修改脚本顶部的 &lt;code&gt;GEPH_HTTP_PORT&lt;/code&gt;、&lt;code&gt;GEPH_SOCKS_PORT&lt;/code&gt;，或者把 Geph 改回默认端口。不要把两个端口写反。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2 id=&quot;3-an-zhuang-bing-pei-zhi-geph&quot;&gt;3. 安装并配置 Geph&lt;/h2&gt;
&lt;h3 id=&quot;3-1-an-zhuang-ke-hu-duan&quot;&gt;3.1 安装客户端&lt;/h3&gt;
&lt;p&gt;从 &lt;a class=&quot;external&quot; rel=&quot;external&quot; href=&quot;https://geph.io/&quot;&gt;Geph 官网&lt;/a&gt; 下载 macOS 版本，按官方提示完成安装并启动。第一次使用时按客户端要求创建或登录免费账户。&lt;/p&gt;
&lt;p&gt;免费版的速度会受限。Geph 5.9.1 的界面提示免费账号限速，因此它更适合网页访问、API、代码拉取和小文件下载，不适合把几十 GB 的镜像下载全部塞进代理。&lt;/p&gt;
&lt;h3 id=&quot;3-2-kai-qi-ben-di-dai-li&quot;&gt;3.2 开启本地代理&lt;/h3&gt;
&lt;p&gt;在 Geph 中进入：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;设置 → 局域网 → 本地代理&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;确认：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;“本地代理”处于开启状态；&lt;/li&gt;
&lt;li&gt;“SOCKS5 端口”为 &lt;code&gt;9909&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;“HTTP 代理端口”为 &lt;code&gt;9910&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;Geph 已连接；&lt;/li&gt;
&lt;li&gt;至少有一个可用节点。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;“自动配置代理”会尝试修改系统代理。本文的脚本只改当前 iTerm 环境，不依赖系统代理是否开启，因此不会强制浏览器走 Geph。&lt;/p&gt;
&lt;h3 id=&quot;3-3-xian-yan-zheng-duan-kou&quot;&gt;3.3 先验证端口&lt;/h3&gt;
&lt;p&gt;安装好本文脚本后，可以直接运行：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;geph_proxy&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; ports&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;也可以手动检查：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;lsof&lt;/span&gt;&lt;span&gt; -&lt;/span&gt;&lt;span&gt;nP&lt;/span&gt;&lt;span&gt; -&lt;/span&gt;&lt;span&gt;iTCP:9909&lt;/span&gt;&lt;span&gt; -&lt;/span&gt;&lt;span&gt;iTCP:9910&lt;/span&gt;&lt;span&gt; -&lt;/span&gt;&lt;span&gt;sTCP:LISTEN&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预期可以看到 Geph 进程监听这两个端口。如果只有 &lt;code&gt;5678&lt;/code&gt; 这类本地控制界面端口，没有 &lt;code&gt;9909/9910&lt;/code&gt;，说明 Geph 的本地代理没有真正启动；此时继续配置代理环境变量只会得到 &lt;code&gt;Proxy CONNECT aborted&lt;/code&gt; 或连接拒绝。&lt;/p&gt;
&lt;blockquote class=&quot;markdown-alert-tip&quot;&gt;
&lt;p&gt;如果设置页已经显示“本地代理开启”，但 &lt;code&gt;9909/9910&lt;/code&gt; 仍未监听，先将 Geph 完全退出，再从 Finder 或 Dock 正常启动；或者关闭“本地代理”后重新开启。仍无效时，再检查 Geph 版本和官方文档。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2 id=&quot;4-yue-du-xia-zai-bing-jia-zai-zhong-duan-jiao-ben&quot;&gt;4. 阅读、下载并加载终端脚本&lt;/h2&gt;
&lt;h3 id=&quot;4-1-xian-yue-du-yuan-ma-zai-xia-zai&quot;&gt;4.1 先阅读源码，再下载&lt;/h3&gt;
&lt;p&gt;脚本会修改当前终端的代理环境变量，并可能尝试启动 Geph。建议先打开
&lt;a href=&quot;https://suchaharcan.github.io/03Share_blog/geph-macos-iterm-proxy/geph_proxy.zsh&quot;&gt;&lt;code&gt;geph_proxy.zsh&lt;/code&gt; 完整源码&lt;/a&gt; 阅读，确认端口、代理变量、启动命令和清理逻辑符合你的预期，再保存到本机。&lt;/p&gt;
&lt;p&gt;为了便于说明，下文的示例目录是：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;~/.local/share/geph-proxy/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这只是示例，你可以把脚本放到自己的任意目录；后续所有 &lt;code&gt;source&lt;/code&gt; 命令都要使用实际路径。&lt;/p&gt;
&lt;p&gt;浏览器下载时，选择“文件 → 存储为”，把文件保存为：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;~/.local/share/geph-proxy/geph_proxy.zsh&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;下载后确认文件可读，并再次查看内容：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;test&lt;/span&gt;&lt;span&gt; -&lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt;HOME&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;/.local/share/geph-proxy/geph_proxy.zsh&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-3 z-d-6&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;  &amp;amp;&amp;amp;&lt;/span&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt; echo&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;geph_proxy.zsh 已就绪&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;less&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt;HOME&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;/.local/share/geph-proxy/geph_proxy.zsh&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;4-2-jia-ru-ni-zi-ji-de-zshrc&quot;&gt;4.2 加入你自己的 &lt;code&gt;~/.zshrc&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;先备份现有的 zsh 配置：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;cp&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt;HOME&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;/.zshrc&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt;HOME&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;/.zshrc.backup.&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;$(&lt;/span&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;date&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; +%Y%m%d-%H%M%S&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后用编辑器打开自己的 &lt;code&gt;~/.zshrc&lt;/code&gt;，在末尾加入：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-6 z-l-i z-d-2 z-d-i&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;z-l-6 z-l-i z-d-2 z-d-i&quot;&gt; Geph terminal proxy&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;source&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt;HOME&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;/.local/share/geph-proxy/geph_proxy.zsh&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote class=&quot;markdown-alert-important&quot;&gt;
&lt;p&gt;示例路径 &lt;code&gt;~/.local/share/geph-proxy/geph_proxy.zsh&lt;/code&gt; 必须与你实际保存脚本的位置一致。
不需要 source 整个函数目录；只 source 这一个文件即可。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;保存后，可以重新打开 iTerm，或者在当前终端立即加载配置：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;source&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt;HOME&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;/.zshrc&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;4-3-ying-yong-hou-de-ji-chu-ce-shi&quot;&gt;4.3 应用后的基础测试&lt;/h3&gt;
&lt;p&gt;先确认 zsh 已经识别 &lt;code&gt;geph_proxy&lt;/code&gt; 函数：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;whence&lt;/span&gt;&lt;span&gt; -&lt;/span&gt;&lt;span&gt;w&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; geph_proxy&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;正常输出类似：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;geph_proxy: function&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后按顺序测试：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;geph_proxy&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; ports&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;geph_proxy&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; on&lt;/span&gt;&lt;span&gt; -&lt;/span&gt;&lt;span&gt;-quick&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;geph_proxy&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; status&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;geph_proxy&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; off&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;四步分别用于检查 Geph 端口、验证代理能否访问外网、确认当前终端变量、清理当前终端代理。如果 &lt;code&gt;whence -w&lt;/code&gt; 找不到函数，先检查脚本路径，再确认 &lt;code&gt;~/.zshrc&lt;/code&gt; 中的 &lt;code&gt;source&lt;/code&gt; 行没有写错。&lt;/p&gt;
&lt;blockquote class=&quot;markdown-alert-note&quot;&gt;
&lt;p&gt;本文故意使用 &lt;code&gt;geph_proxy&lt;/code&gt; 作为主命令，避免与已有的 &lt;code&gt;proxy&lt;/code&gt; 函数互相覆盖。如果你更喜欢短命令，可以在确认没有同名函数后自行添加别名：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-1 z-l-i z-d-3 z-d-i&quot;&gt;alias&lt;/span&gt;&lt;span&gt; proxy&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;#39;&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;geph_proxy on&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-1 z-l-i z-d-3 z-d-i&quot;&gt;alias&lt;/span&gt;&lt;span&gt; unproxy&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;#39;&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;geph_proxy off&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2 id=&quot;5-shi-yong-fang-shi&quot;&gt;5. 使用方式&lt;/h2&gt;
&lt;h3 id=&quot;5-1-kai-qi-yan-zheng-bing-ce-su&quot;&gt;5.1 开启、验证并测速&lt;/h3&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;geph_proxy&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; on&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;它会依次执行：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;测试 Geph HTTP &lt;code&gt;127.0.0.1:9910&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;HTTP 不行时测试 SOCKS5 &lt;code&gt;127.0.0.1:9909&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;两个端口都未开放时尝试启动 Geph 并等待；&lt;/li&gt;
&lt;li&gt;通过候选代理访问国外 HTTPS 测试站；&lt;/li&gt;
&lt;li&gt;只有外网访问成功才设置终端代理变量；&lt;/li&gt;
&lt;li&gt;默认下载约 10 MB 数据，显示 Mbps、MB/s 和首字节延迟。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;开启后，当前终端启动的子进程会继承这些变量：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;http_proxy&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;https_proxy&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;all_proxy&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;no_proxy&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;HTTP_PROXY&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;HTTPS_PROXY&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;ALL_PROXY&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;NO_PROXY&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;5-2-zhi-yan-zheng-wai-wang-bu-xia-zai-ce-su&quot;&gt;5.2 只验证外网，不下载测速&lt;/h3&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;geph_proxy&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; on&lt;/span&gt;&lt;span&gt; -&lt;/span&gt;&lt;span&gt;-quick&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这个模式仍会测试代理能否访问国外站点，只跳过 10 MB 下载测速，适合频繁切换终端或流量有限时使用。&lt;/p&gt;
&lt;h3 id=&quot;5-3-cha-kan-zhuang-tai&quot;&gt;5.3 查看状态&lt;/h3&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;geph_proxy&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; status&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;5-4-zhong-xin-ce-su&quot;&gt;5.4 重新测速&lt;/h3&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;geph_proxy&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; test&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;5-5-jian-cha-duan-kou&quot;&gt;5.5 检查端口&lt;/h3&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;geph_proxy&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; ports&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;5-6-guan-bi-dai-li&quot;&gt;5.6 关闭代理&lt;/h3&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;geph_proxy&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; off&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;关闭只清理当前终端的环境变量，不会退出 Geph，也不会改变 Geph 的节点或系统 VPN 状态。&lt;/p&gt;
&lt;h3 id=&quot;5-7-ming-ling-su-cha&quot;&gt;5.7 命令速查&lt;/h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;命令&lt;/th&gt;&lt;th&gt;作用&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;geph_proxy on&lt;/code&gt;&lt;/td&gt;&lt;td&gt;自动选择 Geph 端口、验证外网并测速&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;geph_proxy on --quick&lt;/code&gt;&lt;/td&gt;&lt;td&gt;验证外网，不下载测速&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;geph_proxy off&lt;/code&gt;&lt;/td&gt;&lt;td&gt;清除当前终端代理变量&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;geph_proxy test&lt;/code&gt;&lt;/td&gt;&lt;td&gt;重新验证并测速&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;geph_proxy status&lt;/code&gt;&lt;/td&gt;&lt;td&gt;查看当前代理和八个环境变量&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;geph_proxy ports&lt;/code&gt;&lt;/td&gt;&lt;td&gt;检查 &lt;code&gt;9910/9909&lt;/code&gt; 是否真正监听&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;geph_proxy help&lt;/code&gt;&lt;/td&gt;&lt;td&gt;显示帮助&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr /&gt;
&lt;h2 id=&quot;6-yuan-li&quot;&gt;6. 原理&lt;/h2&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;mermaid&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;flowchart&lt;/span&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt; TD&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    A&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;iTerm / zsh&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt; --&amp;gt;&lt;/span&gt;&lt;span&gt; B&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;geph_proxy on&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    B &lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;--&amp;gt;&lt;/span&gt;&lt;span&gt; C&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;HTTP 9910&amp;lt;br/&amp;gt;可用？&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    C &lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;--&amp;gt;|&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;是&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;|&lt;/span&gt;&lt;span&gt; D&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;设置 HTTP_PROXY / HTTPS_PROXY&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    C &lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;--&amp;gt;|&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;否&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;|&lt;/span&gt;&lt;span&gt; E&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;SOCKS5 9909&amp;lt;br/&amp;gt;可用？&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    E &lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;--&amp;gt;|&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;是&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;|&lt;/span&gt;&lt;span&gt; F&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;设置 SOCKS5H 代理&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    E &lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;--&amp;gt;|&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;否&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;|&lt;/span&gt;&lt;span&gt; G&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;尝试启动 Geph&amp;lt;br/&amp;gt;等待端口开放&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    G &lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;--&amp;gt;&lt;/span&gt;&lt;span&gt; C&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    D &lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;--&amp;gt;&lt;/span&gt;&lt;span&gt; H&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;Geph 本地代理&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    F &lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;--&amp;gt;&lt;/span&gt;&lt;span&gt; H&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    H &lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;--&amp;gt;&lt;/span&gt;&lt;span&gt; I&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;Geph 隧道&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    I &lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;--&amp;gt;&lt;/span&gt;&lt;span&gt; J&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;国外网络&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    B &lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;--&amp;gt;&lt;/span&gt;&lt;span&gt; K&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;NO_PROXY 国内域名&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    K &lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;--&amp;gt;&lt;/span&gt;&lt;span&gt; L&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;直连&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;6-1-huan-jing-bian-liang-dai-li&quot;&gt;6.1 环境变量代理&lt;/h3&gt;
&lt;p&gt;macOS 终端程序通常通过环境变量决定是否使用代理：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;http_proxy&lt;/code&gt; / &lt;code&gt;HTTP_PROXY&lt;/code&gt;：HTTP 请求；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;https_proxy&lt;/code&gt; / &lt;code&gt;HTTPS_PROXY&lt;/code&gt;：HTTPS 请求；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;all_proxy&lt;/code&gt; / &lt;code&gt;ALL_PROXY&lt;/code&gt;：部分客户端使用的兜底代理；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no_proxy&lt;/code&gt; / &lt;code&gt;NO_PROXY&lt;/code&gt;：不经过代理的域名。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;脚本优先使用 Geph 的 HTTP 端口，因为多数命令行工具对 HTTP 代理兼容性最好。HTTP 不可用但 SOCKS5 可用时，再使用 &lt;code&gt;socks5h://&lt;/code&gt;，让 DNS 也通过代理解析。&lt;/p&gt;
&lt;h3 id=&quot;6-2-wei-shen-me-xian-yan-zheng-zai-she-zhi&quot;&gt;6.2 为什么先验证再设置&lt;/h3&gt;
&lt;p&gt;端口存在不代表节点可达。Geph 可能已经监听 &lt;code&gt;9910&lt;/code&gt;，但远端节点暂时超时；此时直接把环境变量写进终端，会让后续 &lt;code&gt;curl&lt;/code&gt;、&lt;code&gt;brew&lt;/code&gt;、&lt;code&gt;git&lt;/code&gt; 一起卡住。&lt;/p&gt;
&lt;p&gt;脚本先执行一个 204 测试：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;curl&lt;/span&gt;&lt;span&gt; -&lt;/span&gt;&lt;span&gt;-proxy&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt;proxy_url&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; -&lt;/span&gt;&lt;span&gt;-noproxy&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-3 z-d-6&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  -&lt;/span&gt;&lt;span&gt;-max-time&lt;/span&gt;&lt;span class=&quot;z-l-3 z-d-6&quot;&gt; 6&lt;/span&gt;&lt;span&gt; -&lt;/span&gt;&lt;span&gt;-output&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; /dev/null&lt;/span&gt;&lt;span class=&quot;z-l-3 z-d-6&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  -&lt;/span&gt;&lt;span&gt;-write-out&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt; &amp;#39;&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;%{http_code}\n&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;#39;&lt;/span&gt;&lt;span class=&quot;z-l-3 z-d-6&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;  https://www.gstatic.com/generate_204&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;只有返回 &lt;code&gt;204&lt;/code&gt;、其他 2xx/3xx 状态且 curl 正常退出，脚本才设置代理。全部失败时会执行等价于 &lt;code&gt;unproxy&lt;/code&gt; 的清理操作。&lt;/p&gt;
&lt;h3 id=&quot;6-3-wei-shen-me-fang-zai-hou-tai-ye-neng-yong&quot;&gt;6.3 为什么放在后台也能用&lt;/h3&gt;
&lt;p&gt;Geph 开启本地代理后，终端只需要连接本机回环地址：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;127.0.0.1:9910&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;127.0.0.1:9909&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Geph 客户端可以留在菜单栏或后台，不必每执行一条命令就手动切换节点。当前终端保留代理变量，后续子进程会自动继承。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&quot;7-guo-nei-yu-ming-zhi-lian&quot;&gt;7. 国内域名直连&lt;/h2&gt;
&lt;p&gt;脚本默认把以下一类域名加入 &lt;code&gt;NO_PROXY&lt;/code&gt;：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;.cn&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;.baidu.com&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;.qq.com&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;.tencent.com&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;.aliyun.com&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;.alibaba.com&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;.taobao.com&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;.jd.com&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;.bilibili.com&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;.zhihu.com&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;.gitee.com&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;.huaweicloud.com&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;完整列表在脚本的 &lt;code&gt;GEPH_NO_PROXY_DOMAINS&lt;/code&gt; 数组中。这样可以避免访问常见国内站点时绕一圈国外节点。&lt;/p&gt;
&lt;p&gt;需要追加自己的内网或国内域名时，在加载脚本前设置：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-9 z-l-i z-d-9 z-d-i&quot;&gt;export&lt;/span&gt;&lt;span&gt; GEPH_EXTRA_NO_PROXY&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;.example.cn,.corp.internal&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;source&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt;HOME&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;/.local/share/geph-proxy/geph_proxy.zsh&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;geph_proxy&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; on&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote class=&quot;markdown-alert-warning&quot;&gt;
&lt;p&gt;&lt;code&gt;NO_PROXY&lt;/code&gt; 是基于域名的客户端约定，不是完整的 GeoIP 分流。不同程序对通配符和结尾匹配的支持并不完全一致；直接访问国内 IP、没有域名后缀的地址，或本身不读取环境变量的程序，仍可能不受 &lt;code&gt;NO_PROXY&lt;/code&gt; 控制。&lt;/p&gt;
&lt;p&gt;需要浏览器、所有进程和 IP 级分流时，应使用 Geph 客户端的全局路由能力或独立规则代理，而不是只依赖终端环境变量。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2 id=&quot;8-duan-kou-yi-zhi-xing-jian-cha&quot;&gt;8. 端口一致性检查&lt;/h2&gt;
&lt;h3 id=&quot;8-1-geph-duan&quot;&gt;8.1 Geph 端&lt;/h3&gt;
&lt;p&gt;在 Geph 设置中查看：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;SOCKS5 端口：9909&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;HTTP 代理端口：9910&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;8-2-jiao-ben-duan&quot;&gt;8.2 脚本端&lt;/h3&gt;
&lt;p&gt;脚本顶部对应变量为：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-9 z-l-i z-d-9 z-d-i&quot;&gt;typeset&lt;/span&gt;&lt;span&gt; -g&lt;/span&gt;&lt;span&gt; GEPH_HTTP_PORT&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-4 z-d-7&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;z-l-4 z-d-7&quot;&gt;{&lt;/span&gt;&lt;span&gt;GEPH_HTTP_PORT&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;:-&lt;/span&gt;&lt;span&gt;9910&lt;/span&gt;&lt;span class=&quot;z-l-4 z-d-7&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-9 z-l-i z-d-9 z-d-i&quot;&gt;typeset&lt;/span&gt;&lt;span&gt; -g&lt;/span&gt;&lt;span&gt; GEPH_SOCKS_PORT&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-l-4 z-d-7&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;z-l-4 z-d-7&quot;&gt;{&lt;/span&gt;&lt;span&gt;GEPH_SOCKS_PORT&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;:-&lt;/span&gt;&lt;span&gt;9909&lt;/span&gt;&lt;span class=&quot;z-l-4 z-d-7&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你把 Geph 的 HTTP 端口改成了 &lt;code&gt;10010&lt;/code&gt;，就要让脚本看到相同值：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-9 z-l-i z-d-9 z-d-i&quot;&gt;export&lt;/span&gt;&lt;span&gt; GEPH_HTTP_PORT&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;z-l-3 z-d-6&quot;&gt;10010&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;source&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt;HOME&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;/.local/share/geph-proxy/geph_proxy.zsh&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;geph_proxy&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; ports&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;更长期的做法是直接修改脚本中的默认端口。&lt;strong&gt;端口不一致时，原因为连接拒绝，解决方案只有两种：把 Geph 改回默认值，或把脚本改成 Geph 的实际值。&lt;/strong&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&quot;9-yan-zheng-qing-dan&quot;&gt;9. 验证清单&lt;/h2&gt;
&lt;h3 id=&quot;9-1-jian-cha-duan-kou&quot;&gt;9.1 检查端口&lt;/h3&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;geph_proxy&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; ports&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;期望 &lt;code&gt;9909&lt;/code&gt;、&lt;code&gt;9910&lt;/code&gt; 至少有一个显示“正在监听”。&lt;/p&gt;
&lt;h3 id=&quot;9-2-kai-qi-dan-tiao-guo-ce-su&quot;&gt;9.2 开启但跳过测速&lt;/h3&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;geph_proxy&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; on&lt;/span&gt;&lt;span&gt; -&lt;/span&gt;&lt;span&gt;-quick&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;期望看到：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;✓ Geph HTTP 可用：http://127.0.0.1:9910（…… ms）&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;✓ 当前终端已接入：Geph HTTP&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果 HTTP 不通但 SOCKS5 正常，则会显示 &lt;code&gt;Geph SOCKS5&lt;/code&gt;。&lt;/p&gt;
&lt;h3 id=&quot;9-3-jian-cha-guo-wai-fang-wen&quot;&gt;9.3 检查国外访问&lt;/h3&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;curl&lt;/span&gt;&lt;span&gt; -&lt;/span&gt;&lt;span&gt;-noproxy&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt; &amp;#39;&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;#39;&lt;/span&gt;&lt;span&gt; -&lt;/span&gt;&lt;span&gt;sS&lt;/span&gt;&lt;span&gt; -&lt;/span&gt;&lt;span&gt;o&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; /dev/null&lt;/span&gt;&lt;span class=&quot;z-l-3 z-d-6&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  -&lt;/span&gt;&lt;span&gt;-max-time&lt;/span&gt;&lt;span class=&quot;z-l-3 z-d-6&quot;&gt; 15&lt;/span&gt;&lt;span class=&quot;z-l-3 z-d-6&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  -&lt;/span&gt;&lt;span&gt;w&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt; &amp;#39;&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;HTTP %{http_code}\n&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;#39;&lt;/span&gt;&lt;span class=&quot;z-l-3 z-d-6&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;  https://www.gstatic.com/generate_204&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;期望返回 &lt;code&gt;HTTP 204&lt;/code&gt;。&lt;code&gt;--noproxy &#39;&#39;&lt;/code&gt; 的作用是确认这次测试没有被当前 shell 的 &lt;code&gt;NO_PROXY&lt;/code&gt; 意外绕过。&lt;/p&gt;
&lt;h3 id=&quot;9-4-jian-cha-dai-li-bian-liang&quot;&gt;9.4 检查代理变量&lt;/h3&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;geph_proxy&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; status&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;env&lt;/span&gt;&lt;span class=&quot;z-l-9 z-d-9&quot;&gt; |&lt;/span&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt; grep&lt;/span&gt;&lt;span&gt; -&lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt; &amp;#39;&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt;_proxy=&lt;/span&gt;&lt;span class=&quot;z-l-5 z-d-4&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;9-5-ce-su&quot;&gt;9.5 测速&lt;/h3&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;geph_proxy&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; test&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;免费账号有限速，速度会明显低于本地直连或其他付费线路。这个结果用于判断“是否可用”，不适合当作线路排名。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&quot;10-you-que-dian&quot;&gt;10. 优缺点&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;项目&lt;/th&gt;&lt;th&gt;评价&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;稳定性设计&lt;/td&gt;&lt;td&gt;脚本先验证真实外网再设置代理，避免端口假在线拖住所有终端命令&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;成本&lt;/td&gt;&lt;td&gt;可以使用 Geph 免费账号，不依赖商业镜像会员&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;终端覆盖&lt;/td&gt;&lt;td&gt;能覆盖 &lt;code&gt;curl&lt;/code&gt;、&lt;code&gt;git&lt;/code&gt;、Homebrew、npm、pip 等继承环境变量的 CLI&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;后台使用&lt;/td&gt;&lt;td&gt;Geph 留在菜单栏，终端按需连接本机端口，不必频繁切换窗口&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;国内直连&lt;/td&gt;&lt;td&gt;对常见 &lt;code&gt;.cn&lt;/code&gt; 和国内大站配置 &lt;code&gt;NO_PROXY&lt;/code&gt;，减少无效绕行&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;限速&lt;/td&gt;&lt;td&gt;免费版存在速度限制，大文件下载仍应优先使用国内镜像&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;覆盖范围&lt;/td&gt;&lt;td&gt;只接管读取代理环境变量的程序，不替代系统级 VPN&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;分流精度&lt;/td&gt;&lt;td&gt;&lt;code&gt;NO_PROXY&lt;/code&gt; 不是 GeoIP；国内 IP、特殊客户端和部分原生应用可能不受控&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;SSH / UDP&lt;/td&gt;&lt;td&gt;普通 SSH、ping、UDP 通常不读取 HTTP 代理变量，需要各自配置&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3 id=&quot;tui-jian-de-shi-yong-zu-he&quot;&gt;推荐的使用组合&lt;/h3&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;GitHub / Homebrew / PyPI&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  → 已有国内镜像优先&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;镜像未覆盖的 HTTPS 域名&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  → Geph 终端代理&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;浏览器和全系统流量&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  → 按需使用 Geph 客户端的系统级能力&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2 id=&quot;11-chang-jian-wen-ti&quot;&gt;11. 常见问题&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;现象&lt;/th&gt;&lt;th&gt;原因&lt;/th&gt;&lt;th&gt;处理&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;9910/9909&lt;/code&gt; 未监听&lt;/td&gt;&lt;td&gt;Geph 本地代理未真正启动&lt;/td&gt;&lt;td&gt;关闭再开启“本地代理”，完全退出 Geph 后重开&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;curl: (7)&lt;/code&gt;&lt;/td&gt;&lt;td&gt;本机端口没有监听，或连接被拒绝&lt;/td&gt;&lt;td&gt;运行 &lt;code&gt;geph_proxy ports&lt;/code&gt;，核对端口&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;Proxy CONNECT aborted&lt;/code&gt; / &lt;code&gt;curl: (28)&lt;/code&gt;&lt;/td&gt;&lt;td&gt;本地端口通了，但 Geph 节点连接超时&lt;/td&gt;&lt;td&gt;更换 Geph 节点，或重新连接&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;返回 &lt;code&gt;HTTP 407&lt;/code&gt;&lt;/td&gt;&lt;td&gt;本地代理要求认证&lt;/td&gt;&lt;td&gt;检查 Geph 设置；本脚本默认适配无认证的本机代理&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;geph_proxy: command not found&lt;/code&gt;&lt;/td&gt;&lt;td&gt;zsh 未加载脚本，或 &lt;code&gt;source&lt;/code&gt; 路径不正确&lt;/td&gt;&lt;td&gt;先运行 &lt;code&gt;whence -w geph_proxy&lt;/code&gt;，再检查 &lt;code&gt;~/.zshrc&lt;/code&gt; 中的脚本路径&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;只有新终端生效&lt;/td&gt;&lt;td&gt;函数只在 source 后加载&lt;/td&gt;&lt;td&gt;运行 &lt;code&gt;exec zsh&lt;/code&gt; 或重新打开 iTerm&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;国内站点仍走代理&lt;/td&gt;&lt;td&gt;该域名不在 &lt;code&gt;NO_PROXY&lt;/code&gt; 中，或程序不读取该变量&lt;/td&gt;&lt;td&gt;用 &lt;code&gt;GEPH_EXTRA_NO_PROXY&lt;/code&gt; 追加域名&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;git@github.com:...&lt;/code&gt; 不走代理&lt;/td&gt;&lt;td&gt;SSH 不读取 &lt;code&gt;HTTPS_PROXY&lt;/code&gt;&lt;/td&gt;&lt;td&gt;改用 HTTPS remote，或单独配置 SSH &lt;code&gt;ProxyCommand&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;浏览器没有变化&lt;/td&gt;&lt;td&gt;浏览器不继承 iTerm 的环境变量&lt;/td&gt;&lt;td&gt;使用 Geph 的系统代理/全局 VPN，或浏览器独立代理配置&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3 id=&quot;quan-bu-shi-bai-hou-de-hui-fu&quot;&gt;全部失败后的恢复&lt;/h3&gt;
&lt;p&gt;脚本在失败时会主动清除代理变量。也可手动执行：&lt;/p&gt;
&lt;pre class=&quot;giallo z-l-code z-d-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-l-2 z-d-5&quot;&gt;geph_proxy&lt;/span&gt;&lt;span class=&quot;z-l-8 z-d-10&quot;&gt; off&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果仍有残留，可以新开一个 iTerm 标签页；新的 shell 不会继承旧标签页里的临时代理变量。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&quot;12-an-quan-yu-shi-yong-bian-jie&quot;&gt;12. 安全与使用边界&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;只从 &lt;a class=&quot;external&quot; rel=&quot;external&quot; href=&quot;https://geph.io/&quot;&gt;Geph 官网&lt;/a&gt; 或 &lt;a class=&quot;external&quot; rel=&quot;external&quot; href=&quot;https://github.com/geph-official&quot;&gt;Geph 官方 GitHub&lt;/a&gt; 获取客户端和资料。&lt;/li&gt;
&lt;li&gt;不要把来源不明的代理二进制、配置或证书加入 &lt;code&gt;PATH&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;免费代理不等于匿名保证。是否需要信任第三方网络、是否会暴露登录信息，仍取决于自己的风险模型和服务条款。&lt;/li&gt;
&lt;li&gt;代理只改变网络路径，不会自动校验下载文件是否完整；软件包仍应使用官方签名或哈希校验。&lt;/li&gt;
&lt;li&gt;不要让 AI 或其他工具在未经确认的情况下修改节点、系统 VPN、证书和网络规则。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2 id=&quot;13-ben-di-shi-yong-liu-cheng-zong-jie&quot;&gt;13. 本地使用流程总结&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;从 &lt;a class=&quot;external&quot; rel=&quot;external&quot; href=&quot;https://geph.io/&quot;&gt;Geph 官网&lt;/a&gt; 安装并启动 Geph。&lt;/li&gt;
&lt;li&gt;在“设置 → 本地代理”确认 HTTP &lt;code&gt;9910&lt;/code&gt;、SOCKS5 &lt;code&gt;9909&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;打开 &lt;a href=&quot;https://suchaharcan.github.io/03Share_blog/geph-macos-iterm-proxy/geph_proxy.zsh&quot;&gt;&lt;code&gt;geph_proxy.zsh&lt;/code&gt; 完整源码&lt;/a&gt;，阅读后下载到自己的脚本目录。&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;~/.zshrc&lt;/code&gt; 中 source 该文件，路径必须与脚本实际位置一致。&lt;/li&gt;
&lt;li&gt;重新打开 iTerm，运行 &lt;code&gt;whence -w geph_proxy&lt;/code&gt; 确认函数已加载。&lt;/li&gt;
&lt;li&gt;运行 &lt;code&gt;geph_proxy ports&lt;/code&gt; 检查 Geph 端口。&lt;/li&gt;
&lt;li&gt;运行 &lt;code&gt;geph_proxy on --quick&lt;/code&gt; 验证外网。&lt;/li&gt;
&lt;li&gt;需要查看速度时运行 &lt;code&gt;geph_proxy test&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;不再需要终端代理时运行 &lt;code&gt;geph_proxy off&lt;/code&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;完整脚本下载：&lt;a href=&quot;https://suchaharcan.github.io/03Share_blog/geph-macos-iterm-proxy/geph_proxy.zsh&quot;&gt;geph_proxy.zsh&lt;/a&gt;&lt;/p&gt;
</content>
        
    </entry>
</feed>
