无法连接到Google Compute Engine上的代理

时间:2017-12-11 23:02:44

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

我有一个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);
    

1 个答案:

答案 0 :(得分:0)

如果你觉得你可以提供更多关于你的解决方案的女巫组件的信息是不行的(可能提供一些日志)编辑问题,我可以帮助更多调试,现在只是肤浅。

首先,我建议您通过官方Google文档中的this small step to step guide来描述如何将网关实例用作Squid代理服务器。也许您可以注意到您只是忘记了Squid代理配置中的规则或运行它。

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

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

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

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

    • 如果防火墙不是问题,请尝试从Squid代理的不同终端enter image description here连接代理。

    • 如果您注意到您的Squid代理正常工作,请完成客户端的调试,以了解没有发送请求的原因。

  2. 如果流量没有问题,请尝试禁用身份验证并设置Squid的调试模式以了解正在发生的情况。 那么你确定你搞砸了HTTP和HTTPS请求吗?

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