一個很常見的需求:公司有 A、B 兩個據點,用 IPsec 站對站 VPN 連起來。員工在外面用 SSL VPN 連進 B,想存取 A 的主機。

隧道狀態顯示「連線中」,就是連不到。

跨站轉運要改三個地方

讓 B 站當「轉運站」,前提是 A、B 之間已經有站對站 VPN。接著要改:

  1. B 站的防火牆政策:允許「SSL VPN 使用者網段 → A 站網段」。
  2. A↔B 的 IPsec Phase 2 選擇器:要把 SSL VPN 使用者的網段加進去。
  3. A 站的回程路由:要知道 SSL VPN 網段的封包,要送回 B 站。

最常漏掉的是第 2 項。 隧道是 UP 的,但 Phase 2 只認原本設定的兩個辦公室網段,SSL VPN 使用者的網段不在裡面,封包就直接被丟掉。我遇過的「隧道通了卻不通」,九成是這裡。

VPN 連上了,但內網連不到:先分清楚是哪一種

  • 路由問題:沒有回程路由,或分割通道(split tunnel)沒有把內網網段推給用戶端。順帶一提,Mac 內建的 L2TP 預設不吃伺服器推送的路由,要手動加。
  • 政策問題:防火牆沒有放行 VPN 網段。

先用 traceroute 看封包走到哪一站,就能分出是哪一種。

其他幾個實用筆記

  • L2TP 要搭配 IPsec:純 L2TP 現在的用戶端已經不接受了。
  • 同一條線路有多個公網 IP:以 Zyxel USG FLEX 為例,在 WAN 介面的「次要 IP」(Secondary IP Address)加入,這些 IP 必須在同一個子網路。其他廠牌的做法不一定相同,有的是直接用虛擬 IP 或 IP 池對應,設定前先查該廠牌的手冊。
  • 內網連網站會被踢回首頁、改用手機熱點就正常:常見原因是 WAF 或反向代理改寫了 Cookie 或 Session,不是網站本身的問題。
  • 防止使用者自建 VPN 繞過管制:可以用登錄檔停用 Windows 內建的 VPN 連線功能,並替正式的 VPN 加上雙因素驗證。

資料來源

  • 本人防火牆與 VPN 維運筆記(2024-12~2026-03)

封面圖由 AI 生成。