几个月来,我一直通过运行 ubuntu (16.04.3) 的机器通过静态 IP 成功连接到网络。我最近不得不重新安装操作系统,现在在同一台机器上,系统忽略了我的 DNS 设置。DNS 服务器没有改变,机器的静态 IP 地址也没有改变。此外,我可以从 ubuntu 设备毫无问题地 ping DNS IP 地址。再检查一下,我拥有的位于同一网络上的其他机器使用相同的地址时 DNS 没有任何问题。
为了本次讨论的目的,假设以下设置:
Hostname: host-o-rama-bama.com
Static IP: 10.20.30.40
Gateway: 10.20.30.1
Netmask: 255.255.255.0
DNS server: 100.110.120.130
DNS server: 100.110.120.140
使用 Ubuntu 网络管理器,我配置了这些设置如下:
General
* Automatically connect to this network when it is available: Yes
* All users may connect to this network: Yes
Ethernet
* Device: enp2s0f1
* Wake on LAN: Default
802.1x security
(None)
DCB
(None)
IPV4 Settings
* Method: Manual
* Address: 10.20.30.40
* Netmask: 255.255.255.0
* Gateway: 10.20.30.1
* DNS Servers: 100.110.120.130,100.110.120.140
* Search Domains: host-o-rama-bama.com
IPV6 Settings
* Method: Ignore
启动网络后...
# ifconfig
enp2s0f1 Link encap:Ethernet HWaddr 80:fa:5b:4c:02:07
inet addr:10.20.30.40 Bcast:10.20.30.255 Mask:255.255.255.0
inet6 addr: fe80::82fa:5bff:fe4c:207/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:63252 errors:0 dropped:0 overruns:0 frame:0
TX packets:40966 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:53814860 (53.8 MB) TX bytes:5441842 (5.4 MB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:7029 errors:0 dropped:0 overruns:0 frame:0
TX packets:7029 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:650606 (650.6 KB) TX bytes:650606 (650.6 KB)
此时,我可以通过 IP 地址 ping 一下我的每个 DNS 服务器。
此外,远程站点可以通过其静态 IP 地址和名称(host-o-rama-bama.com
已在 DNS 服务器上设置)ping 我的 ubuntu 主机。我甚至可以通过其 IP 地址和 DNS 名称 ssh 进入我的主机。
但是,我无法从 ubuntu 机器上看到任何域名,但是,只要我使用 IP 地址,我确实可以通过 ssh、telnet、http、ping 等方式访问网络上的任何地方。
在中/etc/resolvconf/resolv.conf.d/base
,我输入了以下内容,然后运行resolvconf -u
...
domain host-o-rama-bama.com
search host-o-rama-bama.com
nameserver 100.110.120.130
nameserver 100.110.120.140
但运行之后,DNS仍然不起作用。
我把以下内容放入/etc/network/interfaces
...
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto enp2s0f1
iface enp2s0f1 inet static
address 10.20.30.40
netmask 255.255.255.0
gateway 10.20.30.1
dns-nameserver 100.110.120.130
dns-nameserver 100.110.120.140
dns-search host-o-rama-bama.com
然后我做了以下事情:
# ifdown enp2s0f1
# ifup enp2s0f1
什么都没变。DNS 仍然不起作用。
然后我注释掉了/etc/network/interfaces
从该auto enp2s0f1
行到文件底部的所有内容,然后执行了此操作...
# ifdown -a
# ifup -a
仍然没有 DNS。
然后我尝试了这个......
# /etc/init.d/network-manager stop
# /etc/init.d/network-manager start
DNS 仍然无法正常工作。
然后我这样做了:
# service networking restart
...仍然没有 DNS。
我错过了什么?
先感谢您。
答案1
尝试安装完整的 dnsmasq 包(在 Ubuntu 上,默认情况下仅安装 dnsmasq-base):sudo apt-get install dnsmasq
然后编辑/etc/dnsmasq.conf(添加你的 DNS 服务器:服务器=8.8.8.8例如)。 重新启动 dnsmasq 和网络管理器服务(sudo service dnsmasq restart; sudo service network-manager restart
)。
希望这个能起作用。
答案2
我认为这个问题现在就可以得到解答了。这个dnsmasq
建议很有价值,但直到我完全从头开始重新安装 Ubuntu 16.04 后,情况才得到解决。我猜我在最初安装过程中做了一些事情(??? 不确定是什么)导致我的 DNS 无法正常工作。
我需要记住,对于这些看似棘手的问题,一个可能的解决方案是:“从头开始重新安装并再试一次。”:)
感谢Eraseth和chili555的所有帮助。
精益求精!(拉丁语,意为“不断进步、不断向上!”)