關於 /etc/hosts 和我的 DHCP 分配位址的問題

關於 /etc/hosts 和我的 DHCP 分配位址的問題

在閱讀有關 Linux 的內容時,我得到了:

您只需鍵入不含參數的主機名稱即可查看系統的主機名稱。

anupam@JAZZ:~$ hostname
JAZZ

然後我發現了這個:

特殊字元hostname localhost與 IP 位址相關聯127.0.0.1,並描述您目前所在的電腦(通常具有其他與網路相關的 IP 位址)。

我嘗試過:

anupam@JAZZ:~$ cat /etc/hosts
127.0.0.1   localhost
127.0.1.1   JAZZ

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

我 在這裡感到困惑hostnameJAZZ但與之關聯的 IP不是JAZZ127.0.1.1127.0.0.1

另一個查詢:我可以使用我的動態 IP(由我的 wifi 連線中的 DHCP 設定)作為本機主機來託管我的 html 或 php 檔案嗎?

我猜localhostandhostname在這裡表示相同的意思。localhostloopback address

答案1

你問了兩個問題,所以我必須把它們分開。


首先,關於你的前兩行/etc/hosts

這裡我們必須考慮幾個部分。首先,localhostJAZZ都位於本地環回地址上。127.0.0.1127.0.1.1分別。

IP 位址的「環回」範圍是127.0.0.0 - 127.255.255.255。所有這些都被視為“本地環回”,並且這些地址中的任何一個在技術上都被視為“本地”。然而,放置localhost127.0.0.1 及其$HOSTNAME自己的127.0.1.1或該名稱空間內的其他地址也沒有什麼壞處。

考慮到這127.0.0.1 - 127.255.255.255一切都被認為是本地環回,當引用您自己的主機名稱時,在該命名空間內本地分配哪個位址並不重要。 (話雖如此,您習慣上/etc/hosts使用localhostas 127.0.0.1,因為這通常是系統處理它的方式。理論上,您可以將它放在任何東西上,但它127.0.0.1是預設值,通常是它所在的位置。)

此外,您的消息來源引用了以下內容:

特殊主機名稱localhost與 IP 位址 127.0.0.1 相關聯,並描述您目前所在的電腦(通常具有其他與網路相關的 IP 位址)。

它特別指localhost,而不是您電腦的主機名稱。


第二個是關於你的動態IP。

這應該是它自己的問題,但我認為我們需要重新定義你所問的內容。你問這個:

另一個查詢:我可以使用我的動態 IP(由我的 wifi 連線中的 DHCP 設定)作為本機主機來託管我的 html 或 php 檔案嗎?

讓我們改變這個來問這個:

我可以將無線路由器指派的動態 IP 與其他系統一起使用來託管我的 HTML 或 PHP 檔案嗎?

我這樣重新定義你的問題,因為你不能localhost在你的計算機之外使用。 127.0.0.1 - 127.255.255.255只能在那一台計算機上工作。如果您要求192.168.x.x為您的檔案使用動態(或 wifi 上配置的任何私人 IP 範圍)位址,則您將使用該 IP 來引用您的計算機,而不是網路上其他位置的本機主機。

為此,您的路由器需要能夠解析HOSTNAME來自其他系統的查詢並指向私人內部 DHCP 位址,或者每個其他系統需要hosts編輯其檔案以指向hostnameDHCP 位址。

現在,如果您想在網路外部託管文件,您將需要兩件事:(1) 來自某個動態 DNS 提供者的動態 DNS 位址。 (2) 從路由器到內部電腦位址的連接埠轉送。 (不過,執行此操作還有其他問題和答案,因此我不在這裡詳細介紹)

相關內容