一次 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 或网络配置不熟悉:

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

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

相关推荐
睡不醒男孩0308231 小时前
第二篇:深入探索开源数据库高可用:构建基于CLup的PostgreSQL生产级高可用与读写分离架构
数据库·postgresql·开源·clup
方便面不加香菜2 小时前
Linux--基础IO(一)
linux·运维·服务器
xieliyu.3 小时前
Java算法精讲:双指针(三)
java·开发语言·算法
明夜之约3 小时前
Spring Boot 自动装配源码
java·spring boot·后端
Leaton Lee3 小时前
Spring Boot分层架构详解:从Controller到Service再到Mapper的完整流程
java·spring boot·后端·架构
Micro麦可乐3 小时前
Spring Boot 实战:从零设计一个短链系统(含完整代码与数据库设计)
数据库·spring boot·后端·哈希算法·雪花算法·短链系统
Jinkxs3 小时前
Resilience4j- 与 Spring Boot 快速集成:自动配置与基础注解使用
java·spring boot·后端
辣机小司3 小时前
【踩坑记录:Spring Boot 配置文件读取值不一致?警惕 YAML 的“八进制陷阱”与 SnakeYAML 版本之谜】
java·spring boot·后端·yaml·踩坑记录
码农阿豪3 小时前
从零到一:Spring Boot快速接入金仓数据库实战
数据库·spring boot·后端
鼎讯信通4 小时前
风电光缆运维提质增效:G-4000A 光缆故障追踪仪破解风场巡检难题
运维·网络·数据库