公司防火牆連外不開或只開有限IP時的疑難雜症
結論
C:\Program Files\Microsoft\HybridConnectionManager 0.7\Microsoft.HybridConnectionManager.Listener.exe.config
<configuration>
<!-- 保留原本設定並增加以下區段來設定 Proxy -->
<system.net>
<defaultProxy>
<proxy
usesystemdefault="True"
proxyaddress="http://192.168.1.10:3128"
bypassonlocal="True" />
</defaultProxy>
</system.net>
</configuration>
備註
設好 Proxy 之後,如果原本有混合式連線有設定限制 IP,則記得將 proxy server public IP 加上去白名單
參照
Azure App Service 混合式連線 (HCM) | Jakeuj - 點部落 (dotblogs.com.tw)
<defaultProxy> 項目 (網路設定) - .NET Framework | Microsoft Docs
Hybrid Connection behind Proxy Server (microsoft.com)
What IP addresses do I need to add to allowlist? (FAQ) | Microsoft Docs
Windows 環境 PowerShell 設定 proxy 方法 - I'm Ryan. (mvpdw06.github.io)
概要
- HCM 需要 outbound Port 443
- HCM 需要 outbound 包含但不限於動態IP區段
- 52.187.0.0/17
- HCM 需要 outbound 包含但不限於 Domain
- https://sea-bus.servicebus.windows.net
- g*-prod-sg3-001-sb.servicebus.windows.net
- HCM 可以設定 Proxy 連線
情境
公司將對外全鎖,並只開放可以連到指定 IP
按照 Azure 文件大概只會找到需要開放 Endpoint 與 Gateway
但實際上只開放對這些目標進行 443 連線
會在 HCM 上顯示已連接但實際上 App Service 卻連不到 Db 的情況
在與 Azure Support 聯繫之後表示目前尚無切確文件指出 HCM 需要連那些目標
所以只能使用 HCM 觀察他嘗試連到哪一些 IP 來逐步開放
開放後會發現當下測試連線可以正常,但過一陣子或是其他混合連線還是會失敗
初步研判是 HCM 會往 52.187.0.0/17 這個動態 IP 區段產生連線
所以得出以下可能的解決方案
- 開放此網段供 HCM 連出去
- 採用透過 Proxy Server 的方式來連外
Log port
參照