温馨提示×

ubuntu域名冲突怎么办

小樊
51
2026-09-25 13:14:53
栏目: 云计算

在 Ubuntu 里说的“域名冲突”,常见有几种场景,先对号入座,再给解决办法。


一、本地主机名 / 域名冲突(最常见)

现象

  • 启动时报错:hostname: Name or service not known
  • 日志中有:systemd-hostnamed 冲突
  • 多台机器 hostname 一样,在内网混乱

解决

  1. 修改主机名
sudo hostnamectl set-hostname new-name
  1. 检查 /etc/hosts
cat /etc/hosts

确保没有重复或错误的域名绑定,例如:

127.0.0.1   localhost
127.0.1.1   new-name

⚠️ 不要把一个 IP 绑多个不同主机名导致冲突。

  1. 重启或重新登录生效。

二、DNS 解析冲突(内网 vs 公网)

现象

  • 公司内网域名和公网域名重名
  • ping xxx.com 解析到错误 IP

解决

1. 查看当前 DNS

systemd-resolve --status
# 或
resolvectl status

2. 临时指定 DNS

sudo resolvectl dns eth0 8.8.8.8

3. 永久修改(Ubuntu 18.04+)

编辑:

sudo nano /etc/netplan/01-netcfg.yaml

示例:

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      addresses: [192.168.1.10/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]

应用:

sudo netplan apply

三、Nginx / Apache 虚拟主机域名冲突

现象

  • 访问域名总是跳到另一个站点
  • nginx: conflicting server name

解决

Nginx

sudo nginx -t

检查:

server_name example.com;

确保:

  • 没有两个 server 块用同一个 server_name
  • 默认 server 不要抢域名

修复后:

sudo systemctl reload nginx

四、Docker 容器域名冲突

现象

  • 容器名和宿主机服务冲突
  • --network 自定义 DNS 有问题

解决

  • 不要给容器起和主机一样的 hostname
docker run --hostname container1 ...
  • 使用自定义网络:
docker network create mynet

五、局域网 mDNS / .local 冲突

现象

  • xxx.local 解析不稳定
  • 多台 Ubuntu 使用相同 .local 名

解决

sudo apt remove avahi-daemon

或改名:

sudo hostnamectl set-hostname unique-name

六、快速排查命令合集

hostname
cat /etc/hosts
resolvectl status
ping example.com
nslookup example.com

如果你能补充:

  • 具体报错信息
  • 是 服务器 / 桌面 / Docker / 内网
  • 冲突的是 hostname / DNS / Web 服务

我可以直接给你精确修改方案。

0 踩