
在我們的本地網路中,我們有一個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。