
有時我們的 LAN 會停止解析主機名稱。我們不知道為什麼會發生這種情況。我們如何診斷這些問題?
我們有兩個路由器。其中一個連接到互聯網(透過光纖數據機)。另一個設定為無線開關。即它透過第一個路由器提供網路服務,但它位於不同的房間,並用於與該房間中的電腦的乙太網路連接。
這個問題似乎源自於第一個路由器(或其他路由器)。我懷疑它是交換器路由器,或者網路配置有任何問題。這是因為我們通常鍵入http://home
以獲取連接互聯網的路由器的路由器配置,但這不起作用。但是,我們可以輸入 IP 位址並進入設定頁面。無論我們連接到原始路由器還是交換器路由器,都會發生這種情況。
類似地,我們在 LAN 上有一個 Web 伺服器,我們通常使用電腦的主機名稱來存取它,但我們無法透過網路進行存取(儘管 IP 位址仍然有效)。
同樣,可以 ping 網路上的 IP 位址,但主機名稱則不行。
我不知道我們如何解決這個問題(如果有的話)。我們通常會重新啟動路由器等,然後它們就會回來。但這次他們沒有,所以我正在尋找更多關於為什麼會發生這種情況的見解。
答案1
根據您提供的信息,您應該先確定路由器的DNS服務是否正常運作。您應該能夠透過查看路由器的配置來確定服務是否啟動,但如果沒有指示器可以幫助您,您可以訴諸連接埠掃描。
如果您的路由器告訴您 DNS 已啟用,請跳過此部分:
使用諸如地圖。您可以為您的 Linux 伺服器快速下載它,因為它包含在標準 Linux 發行版(Debian、Ubuntu、CentOS、Mint、Fedora、Redhat 等)的大多數預設軟體包儲存庫中。根據您執行的是基於 Debian 還是基於 RPM 的發行版,您的命令語法可能會有所不同。
對於 Debian:
- 要搜尋
nmap
:sudo apt-cache search nmap
- 安裝
nmap
:sudo apt-get install nmap
- 要搜尋
對於 RPM(Fedora、Centos、RedHat 及類似版本):
dnf search nmap
dnf install nmap
(之前的舊版本
dnf
:)yum search nmap
yum install nmap
掃描 DNS
假設您的路由器的 IP 是,您希望在連接埠 53 ( ) 上192.168.1.1
執行服務 UDP 掃描 ( ) ,並採用主動解析 ( ) 來確定它是否正常運作:-sU
-p53
-A
nmap -sU -p53 -A 192.168.1.1
只要服務回來開放|未過濾,那你就是黃金了。如果它顯示為關閉然後再仔細研究配置,看看是否有選項可以讓您重新配置 DNS,或者只是重新啟動路由器,希望它能恢復正常。如果所有其他方法都無效,請致電製造商並大量投訴。這有時有效:)
配置Windows主機:
回到手邊的任務:只要您確定 DNS 正在路由器上運行並正常工作,您就會想要嘗試讓 Windows 用戶端工作,因為它更簡單一些,並且您有一個可以信賴的 GUI。我建議在您的路由器上設定後備 DNS,以便在一台 DNS 伺服器發生故障時可以查詢多個 DNS 伺服器。
我個人最喜歡的:
8.8.8.8
是Google18.8.4.4
是Google2208.67.220.220
是 OpenDNS 1208.67.222.222
是 OpenDNS 2
完成後,下一步應該是查看是否可以透過在 TCP/IPv4 網路設定中手動設定 Windows 系統來解析路由器上的 DNS。
- 右鍵單擊任務欄右下部分的網路圖標,然後轉到
Networking and Sharing Center
. - 按一下您的網路介面(應為
ethernet 1
或類似)並前往properties
。 - 點擊並 再次
Internet Protocol Version 4 (TCP/IPv4)
點擊,properties
- 點選
User the following DNS server addresses
徑向按鈕, - 輸入路由器/DNS伺服器的IP作為首選DNS,
- 輸入
8.8.8.8
(google 的公共 DNS)作為備用 DNS,以進行後備 Validate Settings
退出時檢查- 點擊
OK
應用並等待網路介面進行故障排除/重新啟動
此時您應該能夠在 Windows 系統上解析 DNS 主機名稱。如果是的話,那麼您就會知道,無論出於何種原因,您的路由器的DHCP 服務都沒有廣播正確的設置,您可能需要讓製造商參與其中,或者您可能會自行修補,希望它能讓您到達某個地方。請始終參考文件。
另一方面,如果它不起作用,我會懷疑電纜本身或路由器硬體。此時除了開始更換實體設備之外,沒有什麼可做的了。
配置Linux伺服器:
(如果您看到任何權限錯誤,您可能需要從root
/使用者執行這些命令。)sudo
如果您沒有太多 Linux 經驗,這對您來說可能是一次新的冒險,但不用擔心。
首先使用以下命令檢查/etc/resolv.conf
檔案:
cat /etc/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
nameserver 127.0.0.1
有兩種可能性,取決於您的設定。一是您安裝了 dnsmasq,並且您收到警告橫幅,告訴您不要更改 resolv.conf。在這種情況下,它將具有環回(127.0.0.1 或 127.0.1.1),就像您在我的配置中看到的那樣,表明它透過 dnsmasq 運行自己的 DNS 服務。如果您看到此內容,請執行以下命令:
/etc/init.d/dnsmasq status
如果您看到No such file or directory
則表示 dnsmasq 未安裝,這不是問題。您可以不使用它繼續,或者我們可以使用
apt-get install dnsmasq
(或dnf install dnsmasq
) 快速安裝它。
如果您選擇不安裝/重新啟動 dnsmasq,您可以簡單地/etc/resolv.conf
使用您最喜歡的文字編輯器(我更喜歡nano
)編輯文件以包含以下行:
nameserver 192.168.1.1 8.8.8.8 8.8.4.4 # That's your router and two fallback DNS servers
如果您看到 dnsmasq 狀態為“活動/正在運行”,則表示它已安裝並正確運行。如果 dnsmasq 處於非活動/死亡狀態,那麼您應該使用以下命令啟動它:
/etc/init.d/dnsmasq start
dnsmasq 通常會透過動態變更檔案來處理 DNS 解析/etc/resolv.conf
。如果您的解析器未正確處理要求,或者 dnsmasq 未正確配置,我強烈建議您通讀它可愛的文檔。
但實際上您只需要確保兩個設定就位/etc/dnsmasq.conf
:
server=/yourlocaldomain/192.168.1.1
local=/yourlocaldomain/
這些將伺服器設定為您的本機網域名稱和 DNS 伺服器的 IP,並且local=/yourlocaldomain/
當在您嘗試解析的主機的 FQDN 中找到您的網域時,會阻止 dnsmasq 嘗試解析上游名稱伺服器。
例如,如果您沒有設置此設置,並且您嘗試解析
emailserver.localdomain
,dnsmasq將詢問Google公共DNS在哪裡emailserver.localdomain
......它當然會回答“我不知道!”
設定此項將使 dnsmasq 運行:“ emailserver.**localdomain**
…我應該問192.168.1.1
這是哪裡。” - 並且192.168.1.1
,您的路由器可以透過正確的 DNS 回應和 的 IP 做出適當的回應emailserver.localdomain
。
我希望這個解釋和冗長的解決方案對您有所幫助。我嘗試考慮我能想到的每種情況,但如果我錯過了任何內容或某些內容不起作用,請告訴我。
答案2
如果 LAN 沒有太多計算機,和/或不依賴內部 DNS 路由,請將 pv4 配置中的 DNS 參數設為:
8.8.8.8
和
8.8.4.4
這會將 DNS 解析工作交給Google的伺服器。