连接拒绝在SSH隧道到Apache转发代理设置

我正在尝试在小型服务器中设置一个私人转发代理。 我的意思是在会议期间使用它来通过ssh隧道将我的互联网访问隧道到代理服务器。

所以我在apache-2.2内部创build了一个虚拟主机,运行代理,proxy_http和proxy_connect模块。 我使用这个configuration:

<VirtualHost localhost:8080> ServerAdmin xxxxxxxxxxxxxxxxxxxx ServerName yyyyyyyyyyyyyyyyyyyy ErrorLog /var/log/apache2/proxy-error_log CustomLog /var/log/apache2/proxy-access_log combined <IfModule mod_proxy.c> ProxyRequests On <Proxy *> # deny access to all IP addresses except localhost Order deny,allow Deny from all Allow from 127.0.0.1 </Proxy> # The following is my preference. Your mileage may vary. ProxyVia Block ## allow SSL proxy AllowCONNECT 443 </IfModule> </VirtualHost> 

重新启动Apache后,我创build一个从客户端到服务器的隧道:

 #> ssh -L8080:localhost:8080 <server address> 

并尝试通过该隧道访问互联网:

 #> links -http-proxy localhost:8080 http://www.linux.org 

我希望看到所请求的页面。 相反,得到一个“连接拒绝”的错误。 在shell中打开ssh隧道,我得到这个:

通道3:打开失败:连接失败:连接被拒绝

任何人都知道为什么这个连接被拒绝?

我同意CanOfSpam3使用-D8080是一个更好的select,然后与Apachebuild立一个代理。 但是,为了回答你的问题,我想你已经错过了Apache的Listen线路,除了通常的端口外,还要听8080端口。 单独使用<VirtualHost>并不会使Apache听到提到的IP:Port,还需要让Apache通过Listen 。 以下是Apache的参考资料

Raymonds的答案是最有可能的(没有看到你的configuration的其余部分)你的问题与Apache的部分。

你看过使用SSH Socks隧道吗? 而不是-L8080:本地主机:8080你可以-D8080,这将使用袜子让你隧道任何袜子兼容。 所以对于你的例子,你应该能够ssh -D8080 <server address>然后links -socks-proxy localhost:8080 http://www.linux.org这将切断apache服务器的混乱,仍然有你stream行在<server address>