Skip to content

Clash 在 Enhanced Mode 中使用 Hosts 列表定义的 IP 映射返回 DNS 解析

标签
开源/软件/Clash
网络/VPN/Clash
网络/代理/Clash
软件/ClashX
网络/路由
网络/透明代理
开源/软件/Clash/增强模式
开发/标记语言/YAML
软件/Visual-Studio-Code
软件/Visual-Studio-Code/vscode
字数
600 字
阅读时间
3 分钟

文档兼容性

主体版本号文档地址(如果有)
ClashX ProVersion: 1.117.1.1 (1.117.1.1) BetaApp Center

说明

你可能会遇到需要在没有前置透明代理和前置 DNS 服务器的情况下通过手动配置比如 /etc/hosts 文件来映射域名到目标地址来开发或者访问临时 IP 下的服务的需求,这个时候我们往往需要同时打开 Clash 并且配置代理甚至是增强模式,而在增强模式的情况下,Clash 会接管我们的 DNS 请求(参见 fake-ip 模式),这个时候如果我们采用默认配置的话,那么将无法通过 curl ,浏览器,甚至是开发中的应用程序和 debugger 访问到我们希望访问的服务了,这个时候可以通过配置 Clash 来解决这个问题。

解决方案

我这里使用的是 ClashX Pro,可以通过 ClashX Pro 的菜单栏中的「配置」-「打开配置文件夹」来查看到配置文件列表,在列表中会存在一个 config.yaml 文件,这个时候我们可以通过在自己偏好的文件编辑器中打开该文件来进行编辑,补充我们需要的配置选项来支持 Hosts 定义 IP 的需求。此处我使用 code(Visutal Studio Code 的命令行指令)打开:

shell
code '/Users/neko/.config/clash/config.yaml'

我们需要在配置文件中添加下面的行就可以解决:

yaml
#---------------------------------------------------#
## 配置文件需要放置在 $HOME/.config/clash/*.yaml

## 这份文件是clashX的基础配置文件,请尽量新建配置文件进行修改。
## !!!只有这份文件的端口设置会随ClashX启动生效

## 如果您不知道如何操作,请参阅 官方Github文档 https://github.com/Dreamacro/clash/blob/dev/README.md
#---------------------------------------------------#

# (HTTP and SOCKS5 in one port)
mixed-port: 7890
# RESTful API for clash
external-controller: 127.0.0.1:9090
allow-lan: false
mode: rule
log-level: warning

proxies:

proxy-groups:

dns: 
  use-hosts: true

hosts: 
  # --- 项目域名 ---- #
  'service.test.com': '127.0.0.1'
  # ---------------- #

rules:
  - DOMAIN-SUFFIX,google.com,DIRECT
  - DOMAIN-KEYWORD,google,DIRECT
  - DOMAIN,google.com,DIRECT
  - DOMAIN-SUFFIX,ad.com,REJECT
  - GEOIP,CN,DIRECT
  - MATCH,DIRECT

延伸阅读

clash for windows 的 rule 模式没法连接公司内网怎么破 - V2EX

贡献者

页面历史

撰写

布局切换

调整 VitePress 的布局样式,以适配不同的阅读习惯和屏幕环境。

全部展开
使侧边栏和内容区域占据整个屏幕的全部宽度。
全部展开,但侧边栏宽度可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
全部展开,且侧边栏和内容区域宽度均可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
原始宽度
原始的 VitePress 默认布局宽度

页面最大宽度

调整 VitePress 布局中页面的宽度,以适配不同的阅读习惯和屏幕环境。

调整页面最大宽度
一个可调整的滑块,用于选择和自定义页面最大宽度。

内容最大宽度

调整 VitePress 布局中内容区域的宽度,以适配不同的阅读习惯和屏幕环境。

调整内容最大宽度
一个可调整的滑块,用于选择和自定义内容最大宽度。

聚光灯

支持在正文中高亮当前鼠标悬停的行和元素,以优化阅读和专注困难的用户的阅读体验。

ON开启
开启聚光灯。
OFF关闭
关闭聚光灯。

聚光灯样式

调整聚光灯的样式。

置于底部
在当前鼠标悬停的元素下方添加一个纯色背景以突出显示当前鼠标悬停的位置。
置于侧边
在当前鼠标悬停的元素旁边添加一条固定的纯色线以突出显示当前鼠标悬停的位置。