
我對如何解決這個問題甚至它是如何形成的感到困惑。 90% 的時間我透過家庭路由器連接到互聯網,而 comcast 根本沒有在設定中列出。它有自己的 DNS,一切都很好,直到更新到 Ubuntu 18,現在當我進行 nslookup 時,我的本機電腦都無法解析(全部找不到)。
nslookup data1
Server: 127.0.0.53
Address: 127.0.0.53#53
** server can't find data1: SERVFAIL
nslookup data1 192.168.1.1
Server: 192.168.1.1
Address: 192.168.1.1#53
Name: data1
Address: 192.168.1.113
這是 ifconfig 的結果,顯示我的最後一個介面是我的 wifi 並且已連接到正確的網路:
enp2s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 28:f1:0e:4a:a4:b2 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 220635 bytes 104082409 (104.0 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 220635 bytes 104082409 (104.0 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.101 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::686f:cec4:768c:d810 prefixlen 64 scopeid 0x20<link>
ether b0:c0:90:50:8e:20 txqueuelen 1000 (Ethernet)
RX packets 9169680 bytes 6584220987 (6.5 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 10685113 bytes 13298441288 (13.2 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
這是我的 resolv.conf 檔案的內容:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 127.0.0.53
search wp.comcast.net
以下是 systemd-resolve --status 的輸出,顯示 GLOBAL 部分中存在大量垃圾,並顯示位於 192.168.1.1 的路由器上的 DNS,但根據上面顯示的查找,這似乎被忽略了。
Global
DNS Domain: wp.comcast.net
DNSSEC NTA: 10.in-addr.arpa
16.172.in-addr.arpa
168.192.in-addr.arpa
17.172.in-addr.arpa
18.172.in-addr.arpa
19.172.in-addr.arpa
20.172.in-addr.arpa
21.172.in-addr.arpa
22.172.in-addr.arpa
23.172.in-addr.arpa
24.172.in-addr.arpa
25.172.in-addr.arpa
26.172.in-addr.arpa
27.172.in-addr.arpa
28.172.in-addr.arpa
29.172.in-addr.arpa
30.172.in-addr.arpa
31.172.in-addr.arpa
corp
d.f.ip6.arpa
home
internal
intranet
lan
local
private
test
Link 3 (wlp3s0)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 192.168.1.1
Link 2 (enp2s0)
Current Scopes: none
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
有人知道如何讓我的 nslookups 開始使用此處指定的 DNS 嗎?那些康卡斯特的東西到底是怎麼進去的,我怎麼能把它拿出來呢?
答案1
我對此有一些經驗,但我絕不是專家...
您可能有幾個問題...
- 您的路由器可能未設定為使用您想要的 DNS 伺服器
- 您的 18.04 計算機上的 dnsmasq 和 systemd-resolved 可能有問題
- 您可能需要編輯 /etc/hosts 文件
- 您手動編輯了 /etc/resolv.conf (不要這樣做)
1.調整路由器的設定...
登入路由器的管理頁面,檢查 DNS 伺服器設定。將它們設定為您所需的 DNS 伺服器,然後儲存設定。
2. 調整你的 dnsmasq 和 systemd-resolvd 設定...
dnsmasq 和 systemd-resolved 往往會互相踩對方的腳趾。儘管您可以同時運行兩者,但這可能會導致問題。 dnsmasq 是以前系統遺留下來的,在 18.04 升級後仍然保留。
在航廈...
ps auxc | grep -i dnsmasq # to see if dnsmasq is running
ps auxc | grep -i resolv # this should be running in 18.04
修復路由器的設定後,卸載 dnsmasq,重新啟動,然後查看問題是否已解決。如果您發現需要 dnsmasq,請重新安裝它,並且您可能需要調整 systemd 解析的設定。
cd /etc/systemd
sudo pico resolved.conf
改變:
#DNSStubListener=yes
到:
DNSStubListener=no
重新啟動並查看您的問題是否已解決。
3. 編輯 /etc/hosts 以包含您的 .local 名稱
這是我的 /etc/hosts 檔案的一部分。顯然,您需要更改配置的系統和節點名稱。這僅是一個示例。
127.0.0.1 Satellite-E55.local Satellite-E55 localhost
127.0.1.1 Satellite-E55
#
# static IP's (systemic network hardware)
#
192.168.0.1 caspurr.local caspurr # Netgear router
192.168.0.2 wdacbridge#1.local wdacbridge#1 # WD AC bridge #1
192.168.0.3 ex6100.local ex6100 # Netgear EX6100
192.168.0.4 repeater.local repeater # Netgear WN2500RP
192.168.0.5 av-bridge.local av-bridge # Cisco E2000
#
#192.168.0.6 meow-nas.local meow-nas # NAS
#192.168.0.7 zonet-nas.local zonet-nas # NAS
#192.168.0.8 woof-nas.local woof-nas # NAS
#
# static DHCP's
#
192.168.0.100 ubuntu-eth0.local ubuntu-eth0 # Toshiba laptop
192.168.0.101 obitalk2.local obitalk2 # Obitalk VOIP
192.168.0.102 vonage.local vonage # Vonage VOIP
192.168.0.103 laserjet.local laserjet # HP P1102W printer
#
192.168.0.201 hdhomerun.local hdhomerun # Silicon Dust DUAL
192.168.0.202 hdhomerun2.local hdhomerun2 # Silicon Dust PRIME
192.168.0.203 hdhomerun3.local hdhomerun3 # Silicon Dust CONNECT
#
# DHCP
#
192.168.0.253 slingbox.local slingbox # Slingbox
#
# cable modem
#
192.168.100.1 cablemodem.local cablemodem # Mediacom cable modem
#
# DNS
#
208.67.222.222 resolver1.opendns.com dns1
208.67.220.220 resolver2.opendns.com dns2
答案2
如果您的 WiFi 連線的 IP 位址是由路由器透過 DHCP 協定指派的,則路由器可能會設定為公佈它從您的 ISP 處獲知的 DNS 伺服器(如果連接使用 PPPoE,則很常見)。
resolvconf
IIRC 如果安裝了該軟體包,則會自動完成此操作。
作為為什麼您看不到列出的實際 DNS 伺服器127.0.0.53
,但這是因為 Ubuntu 預設使用 DNS 代理解析器。
作為快速修復,您可以嘗試正在卸載 resolvconf
/etc/resolv.conf
並使用您喜歡的 DNS 伺服器建立一個新 檔案。
例如
$> cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
$>
免責聲明
我總是resolvconf
在我的機器上卸載,一切正常,但我不知道如果卸載它,系統上的哪些(或哪些軟體包)會被破壞。