【问题标题】:Cannot connect to proxy on Google Compute Engine无法连接到 Google Compute Engine 上的代理
【发布时间】:2017-12-11 23:02:43
【问题描述】:

我有一个 Java Google App Engine webapp,我正在尝试连接到一个运行 Squid proxy 的 Google Compute Engine 实例。但是,连接似乎根本不起作用。谁能给点建议?

我做了什么:

  • 设置安装了 Squid 的 GCE f1 微型实例
  • 为 Squid 添加了用户名和密码验证
  • 设置 Google Cloud 防火墙规则以允许来自端口 3128(默认 Squid 端口)的请求
  • 在我的 GAE webapp 中添加了以下内容:

      System.setProperty("http.proxyHost", address);
      System.setProperty("http.proxyPort", port);
      System.setProperty("http.proxyUser", user);
      System.setProperty("http.proxyPassword", password);
    

【问题讨论】:

标签: java google-app-engine google-cloud-platform google-compute-engine squid


【解决方案1】:

如果您觉得可以提供有关解决方案的女巫组件不起作用(可能提供一些日志)的更多信息,请编辑问题,我可以帮助您进行更多的调试,目前只是表面的。

顺便说一句,首先我建议您阅读 Google 官方文档中的 this small step to step guide,该文档描述了如何将网关实例用作 Squid 代理服务器。也许您会注意到您只是忘记了配置 Squid Proxy 或运行它的规则。

但是,我会按照这些经典步骤进行调试:

首先,如果您还没有安装tcpdump,我会尝试安装它以检查它是配置问题还是网络问题。过滤所有数据包以仅突出显示具有您期望的源 IP、协议和端口的数据包。

  1. 如果您没有收到任何数据包,则可能是防火墙问题丢弃了您的数据包或客户端配置错误而没有发出任何请求。

    • 在您的项目中添加一条规则,允许来自每个协议和端口的传入流量,然后使用 tcpdump 重试

    • 如果防火墙不是问题,请尝试从 Squid Proxy 的不同终端 disabling the authentication 连接代理。

    • 如果您注意到您的 Squid 代理工作正常,请检查您的客户端以了解为什么没有发送请求。

  2. 如果流量没有问题,请尝试禁用身份验证并设置 Squid 的调试模式以了解发生了什么。 顺便问一下,你确定你在处理 HTTP 和 HTTPS 请求吗?

  3. 尝试使用代理而不是外部 API 检索简单网页,以减少可以隐藏错误的区域。

【讨论】:

    猜你喜欢
    • 2020-09-25
    • 2017-06-29
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多