Linux

Linux 路由 - 從 LAN 訪問外部 IP

  • July 21, 2013

我在路由器上使用 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,但相對困難且脆弱。

引用自:https://serverfault.com/questions/525079