一句话结论
netstat -nr -f inet 是在看 macOS 当前的 IPv4 路由表。路由表可以理解成系统发网络包之前查的一张地图:我要访问某个 IP,应该从哪个网卡出去,下一跳交给谁。
你这次看到的变化,重点不是某一行单独说明了“Codex 代理”或“Claude 代理”,而是前后两次路由表里 走 utun4 的网段、隧道网关、VPN 服务端公网 IP 都变了。这说明代理/VPN 客户端重新建立或重新下发了一套路由规则。
⚠️ 路由表只能看到“IP 网段怎么走”,看不到“这个规则具体属于 Codex 还是 Claude”。如果要确认某条规则来自哪个软件,需要结合代理客户端配置、系统网络设置或抓包日志。
这个命令是什么意思?
命令是:
netstat -nr -f inet拆开看:
netstat:查看网络状态-r:显示 routing table,也就是路由表-n:用数字显示 IP,不反查域名,输出更快更清楚-f inet:只看 IPv4,不看 IPv6
所以这条命令的意思就是:
显示当前系统的 IPv4 路由表,并且所有地址都用数字展示。路由表解决什么问题?
当电脑要访问一个地址,比如:
10.21.155.22
api.openai.com
claude.ai
baidu.com系统最终都会把域名解析成 IP,然后查路由表:
目标 IP 是什么?
↓
有没有更具体的路由规则匹配它?
↓
如果有,就按那条规则走
↓
如果没有,就走 default 默认路由路由表匹配遵循“越具体越优先”。比如
10.21.155.22/32比10更具体,所以会优先匹配单个 IP 的规则。
表格每一列怎么看?
常见输出长这样:
Destination Gateway Flags Netif
default 192.168.3.1 UGScg en0
10 172.31.147.0 UGSc utun4
192.168.3 link#14 UCS en0关键列是这几个:
- Destination:目标网段或目标 IP
- Gateway:下一跳,也就是包先交给谁
- Flags:这条路由的属性
- Netif:从哪个网络接口出去
对小白来说,最先看三列就够:
Destination -> Gateway -> Netif也就是:
去哪里 -> 交给谁 -> 从哪个接口出去default 是什么?
例如:
default 192.168.3.1 UGScg en0default 是默认路由,也叫兜底路由。
意思是:如果目标 IP 没有匹配到更具体的规则,就从 en0 出去,交给 192.168.3.1。
在你的机器上:
en0通常是 Wi-Fi 网卡192.168.3.1通常是家里或办公室路由器
所以这行可以翻译成:
普通外网流量默认走 Wi-Fi,下一跳是本地路由器 192.168.3.1。en0 是什么?
en0 是 macOS 上常见的物理网络接口名。大多数 Mac 上,en0 通常对应 Wi-Fi。
你可以粗略这样记:
en0 本机真实网络接口,常见是 Wi-Fi
lo0 本机回环接口,也就是 127.0.0.1
utunX 虚拟隧道接口,常见于 VPN、代理隧道、Network Extensionutun4 是什么?
utun4 是 macOS 的虚拟隧道接口,不是普通物理网卡。
utun 可以粗略理解成 user tunnel。很多 VPN、公司内网客户端、代理隧道、Network Extension 都会创建 utun0、utun1、utun4 这种接口。
为什么这里判断它和 VPN/代理隧道有关?
第一,名字本身是 utunX,这是 macOS 上典型的隧道接口。
第二,你的很多内网网段都走它:
10 172.31.147.0 UGSc utun4
11 172.31.147.0 UGSc utun4
100.64/10 172.31.147.0 UGSc utun4
172.16/12 172.31.147.0 UGSc utun4
172.31.2.60/32 172.31.147.0 UGSc utun4
172.31.6.60/32 172.31.147.0 UGSc utun4第三,普通默认路由仍然走 en0:
default 192.168.3.1 UGScg en0这说明不是所有流量都进隧道,而是部分内网或指定公网网段走隧道,普通流量仍然走本地网络。这就是常见的 分流代理 / 分流 VPN。
严谨说法:只看
utun4这个名字,不能 100% 确定它属于哪个具体软件;但结合大量公司内网网段走utun4,基本可以判断它是 VPN 或代理隧道接口。
10、172.16/12、100.64/10 是什么?
这些是网段,不是单个 IP。
10 约等于 10.0.0.0/8
172.16/12 172.16.0.0 到 172.31.255.255
100.64/10 100.64.0.0 到 100.127.255.255
192.168.0/16 192.168.0.0 到 192.168.255.255它们经常用于公司内网、VPN、容器网络、运营商内网或代理网络。
如果这些网段后面的 Netif 是 utun4,就可以理解成:
访问这些内部地址时,不走普通 Wi-Fi 出口,而是走 VPN/代理隧道。/32 是什么?
例如:
10.21.155.22/32 172.31.147.0 UGSc utun4/32 表示只匹配这一个 IP。
所以它比 10 这种大网段更具体。
10.21.155.22/32 = 只匹配 10.21.155.22 这一台机器
10 = 匹配整个 10.x.x.x 大网段Gateway 里的 link#14 是什么?
例如:
192.168.3 link#14 UCS en0link#14 表示这个网段是本机网卡直接连着的链路,不需要再交给某个远端网关。
可以翻译成:
192.168.3.x 是当前局域网,直接从 en0 这个网卡发出去。常见 Flags 怎么粗略理解?
Flags 不需要一开始全背下来,先记几个常见的:
U Up,这条路由是可用的
G Gateway,需要经过网关
H Host,目标是单个主机
S Static,静态路由或系统/客户端下发的明确路由
C Cloning/Connected,和本地链路/缓存相关比如:
UGSc粗略看就是:
这条路由可用,需要走网关,是系统里明确存在的一条路由规则。小白阶段不用纠结每个字母,优先看 Destination、Gateway、Netif。
你的第一次状态怎么看?
你第一次没有开 Codex/Claude 相关代理时,关键路由大概是:
default 192.168.3.1 UGScg en0
10 192.168.219.0 UGSc utun4
172.16/12 192.168.219.0 UGSc utun4
192.168.0/16 192.168.219.0 UGSc utun4
106.13.100.253 192.168.3.1 UGHS en0
192.168.219.0 192.168.219.0 UH utun4可以翻译成:
普通外网默认走 en0 -> 192.168.3.1
公司/内网相关地址走 utun4 -> 192.168.219.0
VPN/代理服务端 106.13.100.253 单独走 en0 -> 192.168.3.1这里最关键的是:
default没变,普通外网仍然走本地路由器- 内网段走
utun4 utun4的隧道侧地址/网关是192.168.219.0
你的第二次状态怎么看?
你后面打开 Codex/Claude 相关代理后,关键路由变成:
default 192.168.3.1 UGScg en0
10 172.31.147.0 UGSc utun4
172.16/12 172.31.147.0 UGSc utun4
104.18/16 172.31.147.0 UGSc utun4
160.79.104/21 172.31.147.0 UGSc utun4
172.64 172.31.147.0 UGSc utun4
111.63.65.36 192.168.3.1 UGHS en0
172.31.147.0 172.31.147.0 UH utun4可以翻译成:
普通外网默认仍然走 en0 -> 192.168.3.1
公司/内网相关地址走 utun4 -> 172.31.147.0
一些额外公网网段也被导到 utun4
VPN/代理服务端 111.63.65.36 单独走 en0 -> 192.168.3.1这里的变化有三类:
utun4的隧道侧地址/网关从192.168.219.0变成172.31.147.0- VPN/代理服务端公网 IP 从
106.13.100.253变成111.63.65.36 - 新增了几个走
utun4的公网网段,比如104.18/16、160.79.104/21、172.64
从哪里判断是公网 IP?
先记住几个常见的内网/保留地址段:
10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.31.255.255
192.168.0.0 ~ 192.168.255.255
127.0.0.0 ~ 127.255.255.255 本机回环地址
169.254.0.0 ~ 169.254.255.255 本地链路地址
100.64.0.0 ~ 100.127.255.255 运营商/隧道常见保留段如果一个 IP 不在这些常见内网或保留地址段里,就可以先粗略判断它是公网 IP。
比如你表里的:
106.13.100.253
111.63.65.36
104.18/16
160.79.104/21
172.64这些不属于 10.x.x.x、172.16~172.31.x.x、192.168.x.x 这些常见内网段,所以可以先按公网 IP / 公网网段理解。
而这些明显不是普通公网目标:
192.168.3.1 本地路由器
192.168.3.122 你的电脑在当前 Wi-Fi 里的局域网 IP
10.x.x.x 公司内网常见地址
172.16/12 内网地址段
172.31.x.x 内网地址段
127.0.0.1 本机回环地址
169.254.x.x 本地链路地址
100.64/10 运营商/隧道常见保留段⚠️ 判断公网 IP 的第一步不是查它属于哪个公司,而是先排除常见内网/保留地址段。排除之后,它大概率就是公网地址。
这里的公网 IP 是谁的 IP?
路由表里的 Destination 是目标地址,不是“我的地址”。
例如:
111.63.65.36 192.168.3.1 UGHS en0这行的意思是:
如果要访问 111.63.65.36 这个远端公网 IP,
就从 en0 出去,
先交给本地网关 192.168.3.1。所以这里:
111.63.65.36:你要访问的远端公网 IP,可能是 VPN/代理服务端192.168.3.1:你的本地路由器en0:你的 Wi-Fi 网卡
它不是说:
你的电脑公网 IP 是 111.63.65.36你的电脑在当前局域网里的地址,更像是:
192.168.3.122/32但这也只是局域网 IP,不是公网出口 IP。
真正对外显示的公网 IP,要问外部网站。常用命令是:
curl ifconfig.me或者:
curl ipinfo.io/ip一句话记住:
路由表里的 Destination 是“我要去访问谁”
不是“我自己是谁”所以 106.13.100.253、111.63.65.36 更像是代理/VPN 的远端服务端公网 IP,不是你本机的公网 IP。
为什么能看出“重新做了连接”?
不是因为某一行写着“reconnect”,而是前后对比发现三件事同时变了:
隧道网关变了
↓
服务端公网 IP 变了
↓
下发的路由集合变了这通常说明 VPN/代理客户端重新建了连接,或者切换了线路/节点,然后重新往系统路由表里写入规则。
更严谨地说:
从路由表能判断“隧道配置重新下发或切换过”
不能只靠路由表证明“用户手动点击了重连”但结合你自己知道“确实重新做了连接”,这个判断就能对上。
Codex 代理和 Claude 代理在这里怎么理解?
你可以把它们先理解成:
为了让 Codex / Claude 访问它们需要的网络服务,公司网管让你开启了特定代理或隧道规则。这些规则可能做几件事:
- 把某些公司内网地址导入 VPN
- 把某些 AI 服务相关的公网网段导入代理隧道
- 保留普通外网仍然走本地 Wi-Fi
- 给 VPN/代理服务端本身留一条直连本地网关的路由
为什么 VPN/代理服务端要单独走en0?
因为电脑必须先通过普通网络连上 VPN/代理服务端。如果连 VPN 服务端自己的流量也被送进 VPN 隧道,就会变成逻辑打结。
所以你会看到类似:
111.63.65.36 192.168.3.1 UGHS en0可以翻译成:
连接这个代理/VPN 服务端时,不要走隧道,直接走本地路由器。为什么路由表看不出“这是 Codex”还是“这是 Claude”?
因为路由表只认识 IP 和网段,不认识应用名。
它只能表达:
访问 104.18.x.x 走 utun4
访问 172.31.x.x 走 utun4
访问其他没有特殊规则的地址走 default它不会表达:
这条是 Codex 的规则
这条是 Claude 的规则要进一步确认来源,通常要看:
- 代理/VPN 客户端配置
- macOS 系统设置里的 VPN、代理、网络过滤器
- 软件自己的日志
scutil --proxy看系统代理配置ifconfig utun4看隧道接口细节route get 目标IP看某个目标实际走哪条路由
小白以后怎么自己读?
以后看到 netstat -nr -f inet,按这个顺序看:
第一步:先看默认路由
找:
default如果是:
default 192.168.3.1 ... en0说明普通流量默认走本地 Wi-Fi 和本地路由器。
第二步:看有没有 utunX
找:
utun0
utun1
utun2
utun4如果很多公司内网段都走 utunX,基本说明有 VPN/代理隧道在工作。
第三步:看内网段走哪里
重点看:
10
172.16/12
192.168/16
100.64/10如果它们走 utunX,就是内网流量走隧道。
第四步:看有没有公网 IP 单独走 en0
例如:
111.63.65.36 192.168.3.1 UGHS en0这类经常是 VPN/代理服务端地址,必须走本地网络。
第五步:前后对比
不要只看一份输出,要对比:
Gateway有没有变Netif有没有变- 新增/删除了哪些
Destination default有没有变utunX对应的地址有没有变
如果这些都变了,就说明网络策略或代理/VPN 连接发生了变化。
最常用的辅助命令
看某个目标到底走哪条路由
route get 10.21.155.22重点看输出里的:
gateway
interface看当前有哪些网络接口
ifconfig如果只想看 utun4:
ifconfig utun4看系统代理配置
scutil --proxy它能看到系统 HTTP/HTTPS/SOCKS 代理有没有打开。
看 DNS 配置
scutil --dns有时访问不通不是路由问题,而是 DNS 解析问题。
这次输出怎么一句话记住?
你这次可以这样记:
没开 AI 代理时:
普通外网走 en0,本地网关 192.168.3.1
内网流量走 utun4,隧道侧地址是 192.168.219.0
开了 Codex/Claude 代理后:
普通外网还是走 en0,本地网关还是 192.168.3.1
内网和部分额外公网网段走 utun4,隧道侧地址变成 172.31.147.0
代理/VPN 服务端公网 IP 也换了所以它不是“全局代理把所有流量都接管”,更像是:
本地默认网络 + VPN/代理分流规则相关笔记
- Codex config 配置说明
- 为什么要给 AI 配命令行工具
- Claude Code Plugin 完全指南