一次 DNS 端口引发的代理网络和公司内网冲突问题

最近在工作中遇到了一个比较头疼的问题:

公司的 安全准入客户端 和本地开发常用的 网络代理工具 无法同时运行。

现象是这样的:

  • 只要 安全准入客户端 一启动,本地工具就会失效,一些开发常用资源网站无法访问;

  • 一旦关闭安全客户端,访问工具恢复正常,但公司内网系统又连接不上。

两者就像"水火不容",每天都要手动切换,开发效率非常低。


问题排查

经过排查,发现问题核心在于 DNS 端口冲突

安全准入客户端启动后会 占用系统的 53 端口(DNS 默认端口) ,而本地代理工具默认也会监听 53 端口用于 DNS 解析

因此两个程序会出现端口竞争:

复制代码
安全准入客户端:占用 53 端口
代理工具:默认监听 53 端口

结果就是 其中一个 DNS 服务无法正常工作

既然两个程序不能同时监听同一个端口,那么解决思路就很简单:

让代理工具改用其他端口监听 DNS。


解决思路

我的解决方案分为两个步骤:

1️⃣ 修改代理工具 DNS 监听端口

2️⃣ 使用虚拟网卡模式统一转发流量

这样既不会影响公司内网访问,也不会影响日常开发资源访问。


第一步:修改代理工具 DNS 监听端口

找到代理工具的配置文件(通常是 config.yaml)。

dns 配置部分进行修改。

💡 建议在修改之前 备份原始配置文件

复制代码
dns:
  enable: true
  listen: '127.0.0.1:1053'       # 修改 DNS 监听端口,避开 53
  ipv6: false                    # 建议关闭 IPv6
  enhanced-mode: fake-ip         # 提升解析兼容性
  
  nameserver:
    - 'https://example-dns1/dns-query'
    - 'https://example-dns2/dns-query'
    
  fallback:
    - 'https://example-dns3/dns-query'
    - 'https://example-dns4/dns-query'
    - 'tls://8.8.8.8:853'
    - 'tls://1.1.1.1:853'
    
  fallback-filter:
    geoip: true
    geoip-code: CN
    ipcidr:
      - '240.0.0.0/4'
      
  nameserver-policy:
    '+.example.com': 'https://example-dns/dns-query'

关键修改点只有一个:

复制代码
listen: '127.0.0.1:1053'

也就是:

将 DNS 监听端口从 53 改为 1053。

这样就不会再与安全客户端产生端口冲突。


YAML 配置注意事项

如果你不熟悉 YAML,需要特别注意:

1️⃣ 缩进必须使用空格,不能使用 Tab

2️⃣ 列表建议使用标准块结构

3️⃣ 修改前一定要 备份配置文件


第二步:开启虚拟网卡模式

修改配置后,需要重新加载配置文件。

启动成功后一般会看到类似日志:

复制代码
DNS server started on 127.0.0.1:1053

接下来开启 虚拟网卡模式(TUN Mode)

该模式会创建一个 虚拟网络接口,用于统一转发系统流量到代理内核进行处理。

这样:

  • 内网流量 → 走安全客户端

  • 外网开发资源 → 走代理工具

二者可以同时工作。

同时建议:

关闭 IPv6

可以减少部分企业网络环境中的路由异常。


第三步:验证

最后进行验证:

1️⃣ 同时启动 安全准入客户端代理工具

2️⃣ 访问公司 内网系统

3️⃣ 访问常用 开发资源网站

如果两者都可以正常访问,说明问题已经解决。


总结

这次问题本质其实很简单:

DNS 端口冲突(53 端口)

解决思路就是:

避免端口冲突+ 使用虚拟网卡统一流量

通过修改代理工具 DNS 监听端口并开启虚拟网卡模式,就可以让两种网络环境同时正常工作。


最后提醒

如果你对 YAML 或网络配置不熟悉:

修改前一定要备份原始配置文件。

虽然在我的环境中测试没有问题,但任何底层网络配置修改都存在一定风险。

相关推荐
咖啡八杯2 小时前
GoF设计模式——解释器模式
java·后端·spring·设计模式
GuWenyue2 小时前
Cursor黑盒拆解!1套LangChain.js手写Mini编程Agent,自动生成React项目,效率提升60%
前端·数据库·人工智能
优橙教育2 小时前
5G网优培训 vs Java开发:转行选哪个?
java·开发语言·5g
糖果店的幽灵2 小时前
【DeepAgents 从入门到精通】Context Management 上下文管理
java·人工智能·后端·spring·中间件·langgraph·deepagents
腻害兔3 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:字典、短信、邮件、通知——后台系统的“基础设施四件套“!
java·前端·vue.js·产品经理·ai编程
Miao121314 小时前
某海外住宿平台如何在大规模场景下实现指标一致性:Minerva 指标平台实践
大数据·数据库·人工智能
CodexDave4 小时前
MySQL事务隔离级别与MVCC机制解析
前端·数据库·mysql·nginx·性能优化·负载均衡
碎光拾影4 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
曾阿伦4 小时前
MongoDB 查询语句备忘手册
数据库·mongodb
一叶龙洲4 小时前
wslg打开Ubuntu24.04默认打开图形界面
linux·服务器·数据库·ubuntu