我正在尝试在 Websense Content Gateway (WCG) 代理后面使用适用于 Ubuntu 16.04 的 Slack 桌面客户端。它无法连接。注意:
- Windows 工作站通过 WCG 代理与 Windows 版 Slack 客户端协同工作。
- 基于浏览器的客户端在 Ubuntu 16.04 上运行,包括测试站点(https://slack.com/help/test),使用 Firefox
- SSL 解密(有目的的 MitM)在 WCG 上启用,但在所有 slack 站点上禁用。(*.slack.com *.slack-msgs.com *slack-files.com *slack-imgs.com *slack-edge.com *slack-core.com *slack-redir.net)
- 所有 Slack 站点(上面列出)均在 WCG 中列入白名单,并在 WCG 控制台/日志中显示允许。
- 在 Unity 网络设置中启用代理,设置配置文件(例如 https_proxy),并在 Firefox 浏览器配置中启用。
- netstat -a 显示所有前往代理服务器的出站连接,没有直接尝试(尽管网络防火墙没有阻止 https)。
Slack 日志中值得注意的错误是:
warn: WebSocket connection to 'wss://mpmulti-s3to.slack-msgs.com/?lots_of_redacted_parameters' failed: WebSocket is closed before the connection is established.
答案1
在网络设置面板中设置代理配置时,请将 socks 代理留空。一旦输入 socks 代理,websockets(例如 wss://...)将使用 socks 而不是 http/s... 进行代理,然后失败。
我不确定这是 websockets 的根本问题还是 Ubuntu 代理设置实现的问题。如果您在 Firefox 中手动配置代理服务器(而不是“使用系统设置”),则 websockets 可以正常工作。Windows/IE 也没有这个问题。所以这让我认为 Ubuntu 的代理设置实现要么不正确,要么不太宽容。
答案2
最新的 Slack(Fedora 31 上的 Slack 4.4.3)使用来自 NetworkManager 的代理设置。
首先在网络设置 - 网络代理(在连接列表中)中检查您的代理设置。
根据我的经验,Slack 忽略来自 http_proxy/https_proxy 环境的代理。