我最近不得不将我的路由器子网从 192.168.1.1 更改为使用 192.168.2.1,这样它就不会与上游路由器冲突。
我有一些使用静态 IP 连接到路由器的服务器,我还需要更新这些服务器才能使用新的子网。例如:旧IP是192.168.1.2,所以我想我只需要将其更改为192.168.2.2。
所以我编辑自/etc/network/interfaces
:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
address 192.168.1.2
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
到:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
address 192.168.2.2
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.2.255
gateway 192.168.2.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
我知道最新的 Ubuntu 发行版使用 netplan,但这是我升级后的旧服务器,仍在使用/etc/network/interfaces
.
重启后使用新IP,但无法解析域名。它似乎能够直接 ping 外部 IP,但无法解析域本身。例如,服务器无法 ping 通 google.com,但可以 ping 通 8.8.8.8。
我的路由器有 WiFi,如果我用笔记本电脑连接到 WiFi,我可以很好地 ping 通域名。
为什么是这样?是我的网络配置错误,还是这更像是我的路由器的问题?
编辑:我的/etc/resolv.conf
样子:
nameserver 127.0.0.53
domain home
search home
nameserver 192.168.1.1
nameserver 71.242.0.12
所以看起来它仍在尝试使用旧的路由器 IP 作为名称服务器,但它无法再访问。我该如何纠正这个问题?或者我应该像我一样对常见的公共名称服务器进行硬编码interfaces
?
dns 名称服务器 8.8.8.8 8.8.4.4
答案1
您的/etc/resolv.conf
DNS 服务器地址可能在某个时间点完全自动生成,但看起来旧值已“冻结”,因为没有任何内容向配置机制提供任何新的 DNS 服务器地址。
事实上,它现在nameserver 127.0.0.53
作为第一个名称服务器表明您的系统可能使用systemd-resolved
并且应该使用该resolvectl
命令检查真实的 DNS 设置。可能还有一些相关的设置/etc/systemd/resolved.conf
。
添加dns-nameservers
包含您选择的 DNS 服务器的行可能/etc/network/interfaces
会起作用。
如果它不起作用,请/etc/resolv.conf
使用以下命令检查文件的修改时间戳ls -l /etc/resolv.conf
:如果它早于您上次重新启动系统的时间,则当前配置显然实际上并未发生自动生成,您可以只编辑/etc/resolv.conf
.
答案2
您只更改了address
和gateways
条目,/etc/network/interfaces
那么您还需要更改该network
条目。
iface br0 inet static
address 192.168.2.2
network 192.168.2.0
netmask 255.255.255.0
broadcast 192.168.2.255
gateway 192.168.2.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0