我有一个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 回答
如果你觉得你可以提供更多关于你的解决方案的女巫组件的信息是不行的(可能提供一些日志)编辑问题,我可以帮助更多调试,现在只是肤浅的 .
顺便说一下,我建议您通过官方Google文档描述如何使用网关实例作为Squid代理服务器来查看this small step to step guide . 也许您可以注意到,您只是忘记了Squid代理配置中的规则或运行它 .
但是,我会按照这些经典步骤进行调试:
首先,我会尝试安装tcpdump,如果你还没有这样做,检查它是配置问题还是网络问题 . 过滤所有数据包以仅突出显示具有您期望的源IP,协议和端口的数据包 .
如果您没有收到任何数据包,则可能是丢失数据包的防火墙问题或未发出任何请求的客户端配置错误 .
在项目中添加规则,允许来自每个协议和端口的传入流量,然后使用tcpdump重试
如果防火墙不是问题,请尝试从Squid代理的不同终端disabling the authentication连接代理 .
如果您注意到您的Squid代理正常工作,那么请完成客户端的调试,以了解没有发送请求的原因 .
如果流量没有问题,请尝试禁用身份验证并设置Squid的调试模式以了解发生的情况 . 那么你确定你搞砸了HTTP和HTTPS请求吗?
尝试使用代理而不是外部API检索简单网页,以减少可以隐藏错误的区域 .