You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置局域网工作站使用服务器端dnsmasq解析OpenShift本地路由域名

如何配置局域网工作站使用服务器端dnsmasq解析OpenShift本地路由域名

我来一步步帮你搞定这个问题,刚好之前折腾OpenShift本地路由的时候也碰到过类似需求,分两部分给你说清楚:

A) 把服务器上的dnsmasq暴露给局域网

dnsmasq默认只监听本地回环地址(127.0.0.1),所以得先调整配置让它能响应局域网的DNS请求:

  1. 编辑dnsmasq的主配置文件(一般是/etc/dnsmasq.conf),找到listen-address这一行,去掉注释后加上服务器的局域网IP,比如:

    listen-address=127.0.0.1,192.168.1.100
    

    (把192.168.1.100换成你服务器实际的LAN IP,用ip addr可以查看)

  2. 为了更安全,指定dnsmasq只在局域网网卡上监听,找到interface配置,加上你的网卡名(比如eth0、ens33,同样用ip link查看):

    interface=eth0
    
  3. 开放防火墙的DNS端口,DNS同时使用TCP和UDP的53端口:

    • 如果是RedHat/CentOS这类用firewalld的系统:
      firewall-cmd --add-service=dns --permanent
      firewall-cmd --reload
      
    • 如果是Ubuntu/Debian这类用ufw的系统:
      ufw allow 53/tcp
      ufw allow 53/udp
      ufw reload
      
  4. 重启dnsmasq服务让配置生效:

    systemctl restart dnsmasq
    
  5. 验证配置是否成功,查看dnsmasq的监听状态:

    ss -tulpn | grep dnsmasq
    

    输出里如果能看到类似udp LISTEN 0 511 192.168.1.100:53的内容,就说明dnsmasq已经在局域网IP上监听了。

B) 配置工作站使用这个DNS解析OpenShift路由域名

这里有两种方案,你可以根据需求选:一种是全局所有DNS请求都走服务器的dnsmasq,另一种是只针对OpenShift的子域名(比如*.apps.my-cluster.local)用这个DNS,后者更推荐,不会影响其他域名的正常解析。

方案1:全局使用服务器DNS(简单直接)

适合整个局域网都需要解析OpenShift路由的场景:

  • Linux工作站:
    编辑/etc/resolv.conf,替换原有的nameserver为服务器的LAN IP:

    nameserver 192.168.1.100
    

    注意如果是使用systemd-resolved的系统(比如Ubuntu 18.04+),建议通过netplan配置持久化DNS:
    编辑netplan配置文件(比如/etc/netplan/00-installer-config.yaml,文件名可能不同):

    network:
      ethernets:
        eth0:
          addresses: [192.168.1.101/24]
          gateway4: 192.168.1.1
          nameservers:
            addresses: [192.168.1.100]
      version: 2
    

    执行sudo netplan apply生效。

  • Windows工作站:

    1. 打开「设置」→「网络和Internet」→「以太网」(或当前WiFi连接)
    2. 点击「更改适配器选项」,右键当前连接选择「属性」
    3. 找到「Internet协议版本4 (TCP/IPv4)」,双击打开
    4. 选择「使用下面的DNS服务器地址」,填入服务器的LAN IP,点击确定。
  • macOS工作站:

    1. 打开「系统设置」→「网络」,选中当前局域网连接
    2. 点击「高级」→「DNS」,点击「+」号添加服务器的LAN IP,拖到列表最顶部。

方案2:仅针对OpenShift域名使用服务器DNS(更灵活)

只让*.apps.my-cluster.local这类OpenShift路由域名走服务器的dnsmasq,其他域名继续用原来的DNS,不影响日常上网:

  • Linux工作站(systemd-resolved):

    1. 创建自定义配置目录和文件:
      sudo mkdir -p /etc/systemd/resolved.conf.d/
      sudo nano /etc/systemd/resolved.conf.d/openshift-dns.conf
      
    2. 写入以下内容:
      [Resolve]
      Domains=~apps.my-cluster.local
      DNS=192.168.1.100
      
      (~表示仅对这个域使用指定的DNS服务器)
    3. 重启systemd-resolved服务:
      sudo systemctl restart systemd-resolved
      
    4. 验证效果:
      resolvectl query console-openshift-console.apps.my-cluster.local
      
      如果返回服务器的IP,说明配置成功。
  • Windows工作站:

    1. 打开「控制面板」→「管理工具」→「DNS」
    2. 右键你的计算机名,选择「新建条件转发器」
    3. 输入域apps.my-cluster.local,添加服务器的LAN IP,点击确定即可。
  • macOS工作站:
    通过系统自带的resolver配置实现条件解析:

    1. 创建resolver目录(如果不存在):
      sudo mkdir -p /etc/resolver
      
    2. 创建对应域名的配置文件:
      sudo nano /etc/resolver/apps.my-cluster.local
      
    3. 写入:
      nameserver 192.168.1.100
      

    保存退出后,macOS会自动识别这个配置,解析该域下的域名时会自动请求服务器的dnsmasq。

备注:内容来源于stack exchange,提问作者the_endian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 14:44:39