Linux
Linux 路由 - 從 LAN 訪問外部 IP
我在路由器上使用 OpenWRT(基於 Linux)。路由器有一個本地IP和一個公共IP。我有一個分配給公共 IP 的 dyndns 名稱。路由器將幾個埠(例如 ssh 和 https)轉發到我的本地伺服器。
目標: 使用相同的 URL 訪問伺服器,無論客戶端是在我的本地網路內部還是外部。
從外部: 當我向公共 IP 發送請求時。請求被轉發到我的內部伺服器。一切安好
從內部: 當我向公共 IP 發送請求時,它最終到達路由器的內部介面。因此埠轉發不起作用。
當使用 nmap 從內部掃描路由器的本地 IP 時,我得到的結果與內部的公共 IP 相同。所以似乎當我從內部訪問公共 IP 時,流量仍然以本地 IP 結束。
如何在本地網路內外使用相同的 url 訪問伺服器?
編輯:
- 名稱解析工作正常。
最簡單的做法是設置一個內部 DNS 伺服器,將站點的主機名解析為內部 IP 地址。
或者,您可以在客戶端電腦上輸入 /etc/hosts 條目(或等效條目)並獲得相同的結果。
您需要名稱解析以不同於網路內部和外部的工作方式。您的 dyndns 條目將路由到外部 IP。防火牆路由有內部路由和外部路由之分。
將帶有伺服器 IP 地址的 dyndns 名稱添加到 OpenWrt 上的本地主機文件中,並且 dnsmasq DNS 服務應該覆蓋來自 Internet 的條目。如果您的配置正確,您的名稱應該從網路內部解析為伺服器的 IP 地址,從網路外部解析為您的外部 IP 地址。
可以配置髮夾式NAT,但相對困難且脆弱。