mac clash verge 配置自有 vmless 节点、tun 模式配置策略内网无法访问问题
Clash Verge Rev (Mac) 内网 DNS 与 VLESS 配置指南
文档说明:本文档记录了如何在 Mac 版 Clash Verge Rev (Mihomo 内核) 中配置 VLESS 节点,并解决开启 Tun 模式后公司内网域名无法解析的问题。
最后更新时间
1. 环境与目标
- 软件:Clash Verge Rev (Mihomo/Meta 内核)
- 协议:VLESS + Reality + Vision
- 模式:Tun 模式 (接管系统所有流量)
- 痛点解决:修复 Tun 模式下,内网域名报
dns resolve failed的问题。
2. 核心步骤一:获取物理 DNS
必须步骤:在配置脚本前,需要知道公司网络分配的真实 DNS IP。
- 关闭 Clash Verge 的 Tun 模式。
- 确保 Mac 连接了公司 Wi-Fi 或网线。
- 打开 系统设置 → 网络 → Wi-Fi (或以太网) → 详细信息 → DNS。
- 记下列表中的 IP 地址(例如
10.58.1.10)。
3. 核心步骤二:全局扩展脚本 (Script)
此脚本是解决问题的关键,它强制指定特定域名走物理 DNS,绕过 Tun 模式的干扰。
- 操作:在 Clash Verge Rev → 脚本 (Script) → 新建 → 编辑代码。
- 设置:右键点击该脚本 → 选择 “全局扩展” (Global Extension) → 启用。
// Merge Script - Tun 模式内网 DNS 修复终极版 function main(config) {
// ======================================================= // [配置区] 请根据实际网络环境修改以下变量 // ======================================================= // 1. 公司内网真实的 DNS 服务器 IP (步骤一中获取的) // 务必替换成你实际看到的 IP const companyDNS = ["10.**.**.**"];
// 2. 需要直连且必须走内网 DNS 的域名列表 const directDomains = [
"local",
"localhost",
"*.internal.corp" // 示例:如有其他内网域名在此添加
];
// ======================================================= // [逻辑区] 以下代码无需修改 // ======================================================= // 1. 初始化 DNS 配置 (防止简易 Profile 缺失 DNS 模块) if (!config.dns) config.dns = {};
config.dns.enable = true;
config.dns.ipv6 = false; // 建议关闭 IPv6 DNS 防止内网干扰
config.dns.listen = "0.0.0.0:1053";
config.dns['enhanced-mode'] = "fake-ip";
config.dns['fake-ip-range'] = "198.18.0.1/16";
// 设置默认公网 DNS (用于解析外网,如 Google) if (!config.dns.nameserver) {
config.dns.nameserver = ["223.5.5.5", "8.8.8.8"];
}
// 2. 注入 DNS 分流策略 if (!config.dns['nameserver-policy']) config.dns['nameserver-policy'] = {};
if (!config.dns['fake-ip-filter']) config.dns['fake-ip-filter'] = [];
directDomains.forEach(domain => {
// 【核心修复】强制这些域名去问 companyDNS,而不走系统默认或 Google
config.dns['nameserver-policy'][`+.${domain}`] = companyDNS;
// 【重要】加入 Fake-IP 白名单,防止返回假 IP 导致连接失败
config.dns['fake-ip-filter'].push(`+.${domain}`);
});
// 常见的局域网反查也走公司 DNS
config.dns['nameserver-policy']['geosite:private'] = companyDNS;
// 3. 注入直连规则 (Rules) // 插入到规则列表最前面,确保优先级最高 const myRules = [
"DOMAIN-SUFFIX,lenovo.com,DIRECT",
"DOMAIN-SUFFIX,lenovo.com.cn,DIRECT",
"DOMAIN-SUFFIX,local,DIRECT",
"IP-CIDR,192.168.0.0/16,DIRECT",
"IP-CIDR,10.0.0.0/8,DIRECT",
"IP-CIDR,172.16.0.0/12,DIRECT",
"GEOIP,CN,DIRECT"
];
if (!config.rules) config.rules = [];
config.rules.unshift(...myRules);
return config;
}
## 4. 核心步骤三:节点配置 (VLESS)
这是连接 VPS 的基础配置文件。由于脚本是全局扩展的,这里只需要关注节点本身的连接信息。
* **操作**:在 Clash Verge Rev -> **订阅 (Profiles)** -> 新建 -> 类型选 **Local** -> 编辑文件。
* **注意**:请将下方的 `*` 号部分替换为你真实的服务器信息。
```yaml
# Local Configuration for My VPS
# 基础监听端口设置
mixed-port: 7890
allow-lan: true
bind-address: '*'
mode: rule
log-level: info
ipv6: true
external-controller: 127.0.0.1:9090
proxies:
- name: "My VPS Node"
type: vless
server: 144.**.**.** # 替换:你的 VPS IP 地址
port: 1444 # 替换:你的端口号
uuid: ********-****-****-****-************ # 替换:你的 UUID
network: tcp
tls: true
udp: true
flow: xtls-rprx-vision # 流控模式
servername: **** # 替换:你的伪装域名 (SNI)
client-fingerprint: chrome
reality-opts: # Reality 安全配置
public-key: ******************************************* # 替换:你的 Public Key
short-id: "" # 替换:如有 ShortId 则填入
proxy-groups:
- name: Proxy
type: select
proxies:
- "My VPS Node"
rules:
# 这里留空或只写兜底规则即可
# 上面的全局脚本会自动处理内网和直连规则
- MATCH,Proxy