访问别的机房私有IP

从家中访问公司私有 IP,本质上是指通过技术手段,在公共互联网(The Internet)上建立一条安全、加密的虚拟通道,将你家里的电脑 “ 接入 “ 到公司的内部私有网络中。这使得你的电脑虽然物理上在家里,但从网络层面看,就如同在公司办公室一样,可以访问那些不对外开放的内部服务器、数据库等资源。

我们以最常见的 VPN (Virtual Private Network) 技术为例来讲解其工作原理。

关键组成:

  1. VPN 客户端 (Client):安装在你家用电脑上的软件。
  2. VPN 网关 (Gateway):部署在公司网络边界的一台专用服务器或设备,是内外网的 “ 看门人 “。
  3. 加密隧道 (Encrypted Tunnel):客户端和网关之间建立的虚拟连接。

工作步骤:

  1. 发起连接:你在家里的电脑上打开 VPN 客户端,输入公司提供的地址、你的用户名和密码。
  2. 身份验证:VPN 网关验证你的身份。通常除了密码,还会要求你提供一个动态验证码(MFA - Multi-Factor Authentication),确保是你本人在操作。
  3. 建立隧道:验证通过后,你的客户端和公司网关之间会协商加密算法,并建立一个加密的 “ 隧道 “。
  4. 数据封装:当你访问一个公司内网 IP(例如 10.0.1.50),你的电脑会把发送给这个 IP 的数据包(这叫 “ 内部数据包 “)进行加密,并把它 “ 装 “ 进一个发往公司 VPN 网关公网 IP 的新数据包里。这个过程叫封装 (Encapsulation)。
  5. 公网传输:这个封装后的数据包在公共互联网上传输。由于外部被加密,中间的任何人(比如你的网络运营商)都无法知道你传输的真实内容和真实目的地。
  6. 解封装与转发:VPN 网关收到数据包后,用密钥解密,取出 “ 内部数据包 “,然后根据其目标地址(10.0.1.50),将其转发到公司内网的正确服务器上。
  7. 返回流量:内部服务器的响应会沿着相反的路径,由 VPN 网关加密后,通过隧道传回你的电脑。

1. Trojan-Go 和 Mihomo

当我们将它们用于 “ 连接机房内网 “ 时,我们实际上是在利用 Mihomo (Clash Meta 内核)强大的 TUN 模式,将一个应用层代理(Trojan)” 伪装 “ 成一个网络层隧道(类似 VPN)来使用。这是一种 “ 降维打击 “ 的应用方式,功能强大,但与专业的网络层解决方案有本质区别。

  • 专业 DCI 技术 (如 IPsec/WireGuard):这相当于在两个园区(机房)之间修建了一座私有的、坚固的 “ 跨海大桥 “。桥梁本身就是网络基础设施的一部分,任何车辆(IP 数据包)都可以按照交通规则(路由协议)直接、自由地从一端开到另一端的任意地址。
  • Trojan-Go + Mihomo (TUN 模式):这更像是在一个园区门口设立了一个能力超强的 “ 全能代办服务站(Mihomo)”,并与另一个园区里的 “ 秘密联络点(Trojan-Go)” 有一条加密专线。任何车辆想去对面,都必须先开到这个服务站,由服务站的工作人员检查你的目的地,然后通过他们的专线联系对面的联络点,让联络点代你去访问最终地址,再把结果带回来。

你看,一个是 “ 直接通行 “,一个是 “ 代理中转 “,这是最核心的区别。

1.1 不合适之处

  • 单点故障: Trojan-Go 服务器是单点。它如果宕机,整条链路就断了。虽然可以做高可用,但远不如基于路由协议的 VPN 方案来得灵活和标准。
  • 性能瓶颈与 TCP-in-TCP 问题: Trojan 协议本身是基于 TCP 的。如果你用它来传输另一个 TCP 连接(例如访问网页),就会形成 “TCP 套 TCP” 的结构。当外部 TCP 连接发生丢包重传时,会引起内部 TCP 连接不必要的超时和降速,导致性能急剧下降。
特性Mihomo (TUN 模式)传统 VPN (如 WireGuard/IPsec)
实现层面用户空间 (User Space) 应用。操作系统将数据包交给应用处理。内核空间 (Kernel Space)。作为操作系统网络栈的一部分,效率更高。
本质代理客户端 + 网络层模拟。虚拟网络接口。在操作系统看来与真实网卡无异。
性能效率较低。数据包需要在内核和用户空间之间多次拷贝,且易受 TCP-in-TCP 影响。极高。数据包处理完全在内核中完成,路径最短。
协议普适性受限。原生不支持路由协议等非 TCP/UDP 的报文。ICMP 需要特殊处理。完美。可透明传输任何 IP 协议(TCP, UDP, ICMP, GRE, …)。
配置管理基于 YAML 文件和规则引擎,灵活但分散,不适合大规模部署。基于网络设备标准配置(或简单配置文件),易于标准化和自动化。
目标场景个人隐私保护、绕过审查、灵活分流。企业站点互联、远程访问、构建安全网络。

推荐技术:

  • Tailscale (或 ZeroTier)
  • 原生 WireGuard

1.2 注意事项

  1. 混淆代理与 VPN: 最大的陷阱就是认为 “ 既然都能让我的 IP 变到别处,那它们就是一回事 “。通过上面的讲解,你应该明白,一个是 “ 找人代办 “,一个是 “ 亲自开车过桥 “,实现机制和可靠性完全不同。
  2. ping 不通就懵了: 在非 TUN 模式下,ping(ICMP 协议)根本不会被代理程序处理,所以肯定不通。即使在 TUN 模式下,也可能因为 Trojan-Go 服务器所在机器的防火墙规则,导致 ping 失败。
  3. sing-box 是一个比 Clash/Mihomo 内核更强大的后起之秀,它支持更多的协议,并且其路由和底层能力更为激进,进一步模糊了代理和隧道的界限。但其本质和复杂度决定了它依然是 “ 发烧友 “ 和 “ 个人用户 “ 的工具,而非企业级标准

2. Mihomo

2.1 Mihomo 的 TUN 模式

  1. TUN 模式的魔力:
    • Mihomo 启动 TUN 模式后,会在你的操作系统中创建一个虚拟网卡(TUN device)。
    • 同时,它会修改系统的路由表,将所有(或指定的)网络流量都指向这个虚拟网卡。
    • 当你的服务器(例如 10.1.1.10)发起一个访问 10.2.2.20 的请求时,这个 IP 数据包实际上被操作系统发送给了 Mihomo 创建的虚拟网卡。
  2. Mihomo 的处理:
    • Mihomo 作为一个应用程序,从这个虚拟网卡接收到完整的 IP 数据包。
    • 它分析这个 IP 包,发现目标是 10.2.2.20
    • 根据你配置的规则(rules),Mihomo 决定将这个请求通过 PROXY 策略组,发送到你预设的 Trojan-Go 服务器。
  3. Trojan 协议的封装与传输:
    • Mihomo 于是作为客户端,与远端机房 B 的 Trojan-Go 服务器建立一个 TCP 连接。这个连接被伪装成标准的 TLS (HTTPS) 流量。
    • Mihomo 将原始的请求目标(10.2.2.20)和其他信息,按照 Trojan 协议的格式打包,通过这个伪装的 TLS 连接发送出去。
  4. Trojan-Go 服务器的处理:
    • 机房 B 的 Trojan-Go 服务器接收到流量,解密后发现这是一个代理请求,目标是它自己所在内网的 10.2.2.20
    • 于是,Trojan-Go 服务器在机房 B 内部,发起一个新的连接去访问 10.2.2.20
    • 服务器 10.2.2.20 响应的流量会先返回给 Trojan-Go 服务器,然后由 Trojan-Go 服务器通过加密隧道传回给 Mihomo,最后 Mihomo 再交还给最初发起请求的应用程序。

2.2 TUN 模式原理

  • 常规代理模式(System Proxy):这就像在城市的某些特定路口(比如浏览器、微信)设置了保安。只有从这些路口出发的汽车,才会被保安引导到一条特殊的加密通道。而其他路口(比如终端里的 ping 命令、某些游戏)出发的汽车,保安根本管不着,它们还是走普通的老路。
  • TUN 模式(Enhanced Mode):这完全不同!它相当于在整个城市的唯一出口修建了一个巨大的、超级智能的 “ 中央交通指挥中心 “。操作系统被告知:” 所有要出城的汽车,无论从哪个路口来的,都必须先开到这个指挥中心接受调度!”

这个 “ 中央交通指挥中心 “ 就是 TUN 模式。

技术上的实现原理

  1. 创建虚拟网卡 (TUN Device):当 Mihomo/Clash 开启 TUN 模式时,它会在你的操作系统(macOS, Windows, Linux)里创建一个虚拟的网络接口(就像多了一张看不见的网卡)。
  2. 接管系统路由 (Take Over Routing):接着,它会修改你电脑的系统路由表,把默认网关或者指定的 IP 段指向这个刚刚创建的虚拟网卡。这一个操作就是 “ 强制所有流量先来我这里报到 “ 的关键。
  3. 处理 IP 数据包:现在,任何应用程序发出的网络请求(IP 数据包),都会被操作系统根据新的路由规则,发送到这个虚拟网卡。Mihomo 内核作为一个应用程序,就能从这个虚拟网卡中读到最原始的 IP 数据包。
  4. 智能分流:Mihomo 内核拿到数据包后,会分析它的目标地址、端口等信息,然后根据你配置的 rules(规则)来决定:
    • 这个包是直连(DIRECT)?
    • 还是需要走代理(PROXY)?
    • 或者直接拒绝(REJECT)?
  5. 转发流量:做出决定后,Mihomo 内核会代替你的应用程序,完成后续的连接。
    总结一句话:TUN 模式通过创建一个虚拟网卡并修改系统路由,从网络层(IP 层)截获并管理你电脑上几乎所有的网络流量。

Clash 系客户端主要还有以下几种模式:

模式名称工作原理优点缺点
TUN / 增强模式
(Enhanced Mode)
网络层代理。
创建虚拟网卡,接管系统所有 IP 流量。
功能最强:能代理任何应用,包括命令行工具、不遵循系统代理的应用、游戏等。
支持 ICMP:你可以 ping 通一个被代理的地址。
兼容性/性能:需要管理员权限来修改网络设置。在某些系统上可能不稳定。性能略低于普通模式(数据包需在内核与应用间拷贝)。
系统代理
(System Proxy)
应用层代理。
将自己设置为系统的 HTTP/SOCKS5 代理。
兼容性最好,最稳定。几乎所有系统都原生支持。功能受限:只对遵循系统代理设置的应用生效(如浏览器)。对很多命令行工具、游戏、顽固软件无效。
全局模式
(Global)
只是规则配置的一种状态。
强制所有被接管的流量都走同一个代理节点。
简单粗暴,适合临时需要所有流量都走代理的场景。不够智能,可能会让国内流量也绕一圈,影响速度。
规则模式
(Rule)
只是规则配置的一种状态。
根据你设定的规则列表,智能判断流量是走代理、直连还是拒绝。
最常用、最智能的模式。可以实现精细化分流,国内外网站两不误。需要维护一套高质量的规则。
直连模式
(Direct)
只是规则配置的一种状态。
强制所有被接管的流量都不走代理。
在需要关闭代理时很方便,无需退出整个程序。

关键点:全局规则直连 这三种其实是策略模式,它们决定了流量如何被分配。而 TUN 和 系统代理 是接管模式,它们决定了流量如何被捕获。你可以用 TUN 模式 + 规则策略,也可以用系统代理模式 + 规则策略。

答案很简单:ClashX Pro 的「增强模式」就是它对 TUN 模式的 UI 实现和命名。