設定可解析的本機網路主機名稱?

設定可解析的本機網路主機名稱?

我有這樣的情況:

raspi3-netw-02

Raspberry Pi 3 設定為 WiFi 接入點(依照https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/)和網路伺服器。我想給它一個主機名,比如說,它可以在本地網路上從任何客戶端解析 - 無論它們是有線還是無線連接 - 這樣當我在任何瀏覽器(Firefox,Chrome)中myrpi輸入網址時http://myrpi

我首先發現這個:

所以,我就跟著去了。現在我在 RPi 上有:

  • /etc/hosts->127.0.1.1 myrpi
  • /etc/hostname->myrpi

然後我sudo apt-get install avahi-daemon在 RPi 上執行此操作並重新啟動。

然後我在 Ubuntu PC 上嘗試從命令列(作為 WiFi 客戶端連接到 RPi):

$ ping myrpi.local
PING myrpi.local (172.24.1.1) 56(84) bytes of data.
64 bytes from 172.24.1.1: icmp_seq=1 ttl=64 time=1.54 ms
...
$ wget -O- myrpi.local
Resolving myrpi.local (myrpi.local)... 172.24.1.1
Connecting to myrpi.local (myrpi.local)|172.24.1.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
...
<p>This is the default web page for this server.</p>
...

所以,到目前為止,這看起來不錯 - 但如果我http://myrpi.local/在 Ubuntu PC 上的 Firefox 或 Chromium 中輸入 Web 位址,則會收到「找不到伺服器」。

這可能和Ubuntu上Avahi的狀態有關係:

[已解決] 無法存取公司 LAN 上 .local 網域中的伺服器

這些在 Ubuntu 中不起作用。這是因為 Ubuntu 預設安裝 AVAHI Zeroconf mD​​NS 系統,將其配置為「擁有」.local 網域,並在主機名解析順序中將其優先於常規 DNS。

所以,我想,我並不真正關心是否.local附加到域名 - 我只是認為事情應該是這樣完成的。所以我嘗試直接從 Ubuntu PC 呼叫主機名稱:

$ ping myrpi
PING myrpi (127.0.1.1) 56(84) bytes of data.
64 bytes from myUbuntuLaptop (127.0.1.1): icmp_seq=1 ttl=64 time=0.022 ms
...
$ wget -O- http://myrpi/
--2017-01-26 13:38:56--  http://myrpi/
Resolving myrpi (myrpi)... 127.0.1.1
Connecting to myrpi (myrpi)|127.0.1.1|:80... failed: Connection refused.

這裡甚至不起作用wget(顯然,Firefox 或 Chromium 瀏覽器也不起作用),儘管原因很清楚 - 這裡myrpi解析為 127.0.1.1,這是 RPi 中逐字寫入的內容/etc/hosts- 但一旦在Ubuntu 筆記本電腦上,相同的位址意味著“這台筆記型電腦”,因為它是一個環回筆記型電腦,而且由於我的 Ubuntu 筆記型電腦上沒有運行網路伺服器,所以整個過程失敗。

現在 - 有趣的是:在這個設定中,Windows PC(我認為是 Windows 7)myrpi.local解析為192.168.0.51- 並且網頁http://myrpi.local/在 Windows 上的 Firefox 和 Chrome 中都可以正常工作?

作為最後的措施,我嘗試/etc/nsswitch.conf對 RPi 進行更改:

# hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4 # original
hosts:          files dns mdns4 mdns4_minimal

....然後重新啟動 - 然而,Ubuntu 上的瀏覽器仍然無法存取http://myrpi/http://myrpi.local/.我的/etc/resolv.confRPi上仍然沒有變化。

那麼,我如何.local為 Raspberry Pi 提供一個在本機網路上可解析的名稱(或不可解析),以便同一本機網路上的任何其他 PC 都可以從 Raspberry Pi 檢索網頁伺服器內容,無論運行什麼作業系統和瀏覽器在那台電腦上?

相關內容