網域名稱在本地網路上不可用,但在外部網路上可用!

網域名稱在本地網路上不可用,但在外部網路上可用!

在我們的本地網路中,我們有一個Ubuntu Server 20.4,它託管一個 Web 應用程式。我配置了路由器和網域的 DNS,安裝了Lets'Encrypt證書,並且成功地https://mydomain.com顯示了我的 Web 應用程式。

我的問題是,當我嘗試從本地網路內部查看網域時https://mydomain.com,瀏覽器會回應「無法存取此站點,但當我在網站外部連線時,該網站可見」。

我必須在 Ubuntu 伺服器中應用新設置,還是這是路由器的配置問題?

一種解決方案...

hosts在我的電腦(C:\Windows\System32\Drivers\etc\hosts)中編輯了文件,新增了一筆記錄

192.168.0.100 mydomain.com

該網站現在可見,但我想知道如何將設定應用於 Ubuntu 伺服器。

編輯1 如果我nslookup mydomain.com從 Windows 命令列運行,我會得到:

Server:  one.one.one.one
Address:  1.1.1.1

Non-authoritative answer:
Name:    mydomain.con
Address:  My_External_IP

兩者Ubuntu Server和我的電腦都在同一子網路中。我向路由器添加了一些連接埠轉送(80、443),以便公開伺服器。

答案1

那麼「問題」就是您的 Windows 電腦(以及網路上的其他電腦)將網域名稱解析為公有IP位址,與 192.168.0.100 不同...因此路由不同。當您嘗試存取 192.168.0.100 時,流量保留在您的 LAN 內。如果您使用公用 IP 位址,那麼您的流量將在網路上傳輸並透過路由器傳回給您。

因此,您確實應該在路由器上設定連接埠轉發,以便將連接埠 80 和 443 的傳入請求轉發到伺服器的本地位址,即範例中的 192.168.0.100。

如果您的 LAN 中有自己的 DNS 解析器,那麼您只需在本機配置該網域(「區域」)即可傳回私人 IP 位址,僅適用於本機使用者。請參閱水平分割 DNS。

如果您沒有很多客戶端需要維護,則編輯主機檔案對於測試和短期使用可能是可以接受的。否則,我的建議是為您的 LAN 設定本機 DNS 解析器(和轉發器)。範例:dnsmasq。

相關內容