涉及代理时Hybrid Connection无法连接问题排查请求
Hybrid Connection Manager (HCM) 代理环境连接问题排查与解决方案
一、Test-Netconnection 与 Invoke-WebRequest 的代理行为差异
Test-Netconnection:基于底层TCP/IP协议直接发起连接,默认不读取系统代理设置,会直接尝试和目标端点建立TCP连接。你的VM流量强制走代理,这个命令绕开代理直接请求,自然失败。Invoke-WebRequest:基于HTTP/HTTPS协议,默认会读取系统IE/WinHTTP的代理配置,通过代理转发请求,所以能正常运行。
二、HCM连接异常的原因
HCM的两个核心行为逻辑:
- 状态同步:通过HTTPS请求Azure管理平面获取连接状态,这部分会使用系统代理,所以你在个人设备成功连接时,VM上的HCM能同步到“已连接”状态。
- Hybrid Connection数据流建立:依赖TCP直接连接Azure Relay的端口(默认443、5671),这部分HCM默认不会走代理,导致VM无法通过代理建立实际的数据流连接。
三、可行解决方案
1. 手动配置HCM代理
- 找到HCM配置文件
Microsoft.HybridConnectionManager.conf,默认路径:C:\Program Files\Microsoft Hybrid Connection Manager - 在文件中添加代理相关配置:
ProxyAddress=http://proxy-server:port # 若代理需要身份验证,添加下面一行 ProxyCredentials=domain\username:password - 重启Hybrid Connection Manager服务(服务名称:
HybridConnectionManager)
2. 确保代理允许Azure Relay的流量
- 确认代理放行Azure Relay的域名(
*.servicebus.windows.net)以及端口443(HTTPS)、5671(AMQP)的出站流量,避免代理拦截这些请求。
3. 配置WinHTTP系统代理
- 如果VM使用WinHTTP代理,执行以下命令设置全局WinHTTP代理,HCM会读取该配置:
netsh winhttp set proxy proxy-server:port - 若代理需要排除某些地址,可添加例外:
netsh winhttp set proxy proxy-server:port bypass-list="*.internal-domain.com"
四、结论
HCM支持代理环境,但默认不会自动将TCP数据流转发到代理,必须手动配置代理参数才能让HCM通过代理建立Hybrid Connection。
内容的提问来源于stack exchange,提问作者Johannes
相关产品推荐
相关产品推荐

