無法透過 LAN 解析主機名

無法透過 LAN 解析主機名

有時我們的 LAN 會停止解析主機名稱。我們不知道為什麼會發生這種情況。我們如何診斷這些問題?

我們有兩個路由器。其中一個連接到互聯網(透過光纖數據機)。另一個設定為無線開關。即它透過第一個路由器提供網路服務,但它位於不同的房間,並用於與該房間中的電腦的乙太網路連接。

這個問題似乎源自於第一個路由器(或其他路由器)。我懷疑它是交換器路由器,或者網路配置有任何問題。這是因為我們通常鍵入http://home以獲取連接互聯網的路由器的路由器配置,但這不起作用。但是,我們可以輸入 IP 位址並進入設定頁面。無論我們連接到原始路由器還是交換器路由器,都會發生這種情況。

類似地,我們在 LAN 上有一個 Web 伺服器,我們通常使用電腦的主機名稱來存取它,但我們無法透過網路進行存取(儘管 IP 位址仍然有效)。

同樣,可以 ping 網路上的 IP 位址,但主機名稱則不行。

我不知道我們如何解決這個問題(如果有的話)。我們通常會重新啟動路由器等,然後它們就會回來。但這次他們沒有,所以我正在尋找更多關於為什麼會發生這種情況的見解。

答案1

根據您提供的信息,您應該先確定路由器的DNS服務是否正常運作。您應該能夠透過查看路由器的配置來確定服務是否啟動,但如果沒有指示器可以幫助您,您可以訴諸連接埠掃描。


如果您的路由器告訴您 DNS 已啟用,請跳過此部分:

使用諸如地圖。您可以為您的 Linux 伺服器快速下載它,因為它包含在標準 Linux 發行版(Debian、Ubuntu、CentOS、Mint、Fedora、Redhat 等)的大多數預設軟體包儲存庫中。根據您執行的是基於 Debian 還是基於 RPM 的發行版,您的命令語法可能會有所不同。

  • 對於 Debian:

    • 要搜尋nmapsudo apt-cache search nmap
    • 安裝nmapsudo 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是Google1
  • 8.8.4.4是Google2
  • 208.67.220.220是 OpenDNS 1
  • 208.67.222.222是 OpenDNS 2

完成後,下一步應該是查看是否可以透過在 TCP/IPv4 網路設定中手動設定 Windows 系統來解析路由器上的 DNS。

  1. 右鍵單擊任務欄右下部分的網路圖標,然後轉到Networking and Sharing Center.
  2. 按一下您的網路介面(應為ethernet 1或類似)並前往properties
  3. 點擊並 再次Internet Protocol Version 4 (TCP/IPv4)點擊,properties
  4. 點選User the following DNS server addresses徑向按鈕,
  5. 輸入路由器/DNS伺服器的IP作為首選DNS,
  6. 輸入8.8.8.8(google 的公共 DNS)作為備用 DNS,以進行後備
  7. Validate Settings退出時檢查
  8. 點擊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的伺服器。

相關內容