题 如何测试我的apache服务器是否为开放代理?


是否有curl命令将验证服务器是否充当开放代理?

我试过了

curl --proxy http://<my server>:80 http://yahoo.com

但是apache的反应是:

Description: Could not process this "GET" request.

10
2018-04-15 17:45




应该这样做。无论如何,这个响应意味着它不会在该端口上充当代理。如果你应该收到雅虎的页面(或代理身份验证,或其他一些代理响应)。 - squillman
您还应尝试代理到https站点,http / https的实现方式不同。我使用的apache代理不像这个btw那样工作,远程(代理)服务器在某个地方的配置中指定。这就像你想要一个随机服务器的页面出现在你的主站点上的东西。 - Some Linux Nerd
curl --proxy http:// <yourserver>:80 https://mail.google.com#<--- https - Some Linux Nerd
除了上面建议的测试,您只需检查您的配置。要将Apache配置为转发代理,需要“ProxyRequests On”(默认为关闭)。它只能在全局(服务器)或虚拟主机级别启用,因此您无需搜索htaccess文件。 - Unbeliever


答案:


您可以使用Telnet验证它:

telnet yoursite.example.com 80
GET http://www.yahoo.com/ HTTP/1.1
Host: www.yahoo.com

资源: https://wiki.apache.org/httpd/ProxyAbuse


1
2017-07-16 11:23





如果你有,那么简单的答案就是这个 ProxyRequests On (默认为关闭)在您的配置中的某个地方,然后您可能正在运行一个开放代理,如果不这样,那么您不是,至少从Apache配置方面。

如果你还在 200 OK 对于看起来像正向代理请求的请求,访问日志中的条目可能是因为您对映射进行了大量重写 任何 无论它看起来如何,都要求控制器。如果你担心,你可以添加条件来防止这种情况发生。


1
2017-10-09 09:37