16.04 版上的 Slack 桌面客户端位于代理服务器后面

16.04 版上的 Slack 桌面客户端位于代理服务器后面

我正在尝试在 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 环境的代理。

相关内容