Atom
將外網網址指向內網環境

將外網網址指向內網環境

臨時在內網需要連到外網的網站,所以需要設定指向。

環境是內網沒法直接到外網。


本次環境設定:

  • 需要連線網站:https://www.example.com

  • 實際伺服器IP:10.10.10.5

而該 IP 只有在內網能存取。
若直接連線外部 DNS,會解析到正式站的公網 IP;若直接掃 IP,產出的工具報告會顯示「10.10.10.5」,不符原本的掃描URL需求。
雖然可以偷吃步直接修改工具報告上的名稱,不過這邊我們還是乖乖進行設定吧

在掃描端(Client 端)設定導向

  1. 修改 hosts(最簡單)

這是最常用、最穩定的方法。
在 Windows、macOS 或 Linux 都可透過 hosts 檔案指定網域解析到內部 IP。

  • Windows:以系統管理員開啟記事本
    編輯:C:\Windows\System32\drivers\etc\hosts
    最後加上:
    1
    10.10.10.5   www.example.com
    儲存後執行Terminal
    1
    ipconfig /flushdns

  • Linux / macOS:
    1
    sudo nano /etc/hosts
    加入:
    1
    10.10.10.5   www.example.com
    然後:
    1
    2
    sudo systemd-resolve --flush-caches  # Linux
    sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder # macOS
  1. 在掃描工具內設定 DNS Override

部分工具(如 Acunetix, Burp Suite, OWASP ZAP)支援自訂 DNS 對應或 HTTP Header。

以 Acunetix 為例:

Target → Advanced → Custom Headers加入:

1
Host: www.example.com

將掃描目標設為:

1
https://10.10.10.5/

這樣請求的實際 IP 為 10.10.10.5,但送出的 Host Header 仍是 www.example.com
報告上就會保留網域名稱。

Burp 或 ZAP 也有類似設定,在Hostname ResolutionDNS override處輸入:

1
www.example.com → 10.10.10.5
  1. 臨時測試用 curl

用 curl 可以直接模擬:

1
curl -vk https://10.10.10.5 -H "Host: www.example.com"

這樣能確認伺服器是否正確回應,或是否有 redirect / cookie 問題。
若要避免被重導太多次,可加:

1
--max-redirs 0

伺服器端的設定建議

若你是伺服器管理者,並希望外網域名能「臨時導向」到內部測試站,有以下幾種方式可做:

  1. 反向代理Reverse Proxy

使用一台中介伺服器(例如 Nginx、Apache、或 IIS),設定反向代理:

1
2
3
4
5
6
7
8
9
10
11
12
13
server {
listen 443 ssl;
server_name www.example.com;

ssl_certificate /etc/ssl/example.crt;
ssl_certificate_key /etc/ssl/example.key;

location / {
proxy_pass https://10.10.10.5;
proxy_set_header Host www.example.com;
proxy_set_header X-Forwarded-For $remote_addr;
}
}

這樣外部使用者打 https://www.example.com 時,其實由代理伺服器轉送到內部 10.10.10.5

  1. 內部 DNS(若公司內部有 AD / Bind / Dnsmasq)

可建立一筆內部 DNS A 記錄:

1
www.example.com → 10.10.10.5

這樣所有連上內部網域的用戶(含掃描器)都會解析成內部 IP。

  1. hosts 維護(開發或測試環境用)

若伺服器是多台測試機,可以讓內部使用者在共用登入腳本中,自動修改 /etc/hosts

1
echo "10.10.10.5   www.example.com" | sudo tee -a /etc/hosts

這適合臨時開發測試用,但不建議放正式環境。

常見錯誤與排查

問題 可能原因 解法
ping 得到 IP,但開網頁連不上 HTTPS 憑證 mismatch、redirect 錯誤 用 curl -v 查看回應 header
ERR_TOO_MANY_REDIRECTS 網站內設定重導循環(www / 非 www、HTTP↔HTTPS) 清除 cookie、或請伺服器端修正 rewrite 規則
掃描器報告 IP 而非 URL 未使用 hosts 或 Host header 未設定 改成 URL + hosts 對應
掃描超時 防火牆或 proxy 攔截 請客戶確認內部白名單


小結

  1. 在客戶端(測試端):
    改 hosts 或掃描器內設定 DNS override,保留網址名稱、導向內部 IP。

  2. 在伺服器端:
    可用反向代理內部 DNS,使同一網址可在內外網指向不同伺服器。

  3. 在測試過程中:
    使用 curl -v 檢查 redirect、Header、SSL 狀態,是最直觀的診斷方法。

本文作者:Atom
本文鏈接:https://d0ngd.github.io/2025/10/30/將外網網址指向內網環境/
版權聲明:本文採用 CC BY-NC-SA 3.0 CN 協議進行許可