Я пытаюсь настроить частный прокси-сервер на небольшом сервере. Я хочу использовать его во время конференции для туннелирования моего доступа в Интернет через ssh-туннель к прокси-серверу.
Итак, я создал виртуальный хост внутри apache-2.2, на котором запущены прокси, proxy_http и модуль proxy_connect. Я использую такую конфигурацию:
<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 я создаю туннель от клиента к серверу:
#> ssh -L8080:localhost:8080 <server address>
и попробуйте получить доступ к Интернету через этот туннель:
#> links -http-proxy localhost:8080 http://www.linux.org
Ожидаю увидеть запрошенную страницу. Вместо этого появляется ошибка «В соединении отказано». В оболочке, открывающей туннель ssh, я получаю следующее:
канал 3: ошибка открытия: ошибка подключения: соединение отклонено
Кто-нибудь понял, почему это соединение отклонено?
Я согласен с CanOfSpam3, что использование -D8080 - лучший вариант, чем настройка прокси с помощью Apache. Однако, отвечая на ваш вопрос, я полагаю, вы пропустили Listen
строка в Apache для прослушивания порта 8080 в дополнение к обычным. <VirtualHost>
сам по себе не заставляет Apache прослушивать IP: упомянутый порт, вам также необходимо попросить Apache прослушать это с Listen
. Вот ссылка от Apache
Ответ Raymonds, скорее всего, (без просмотра остальной части вашей конфигурации) - проблема, с которой вы столкнулись с частью apache.
Вы смотрели на использование туннеля SSH Socks? Вместо -L8080: localhost: 8080 вы можете -D8080, который с помощью socks позволяет туннелировать все, что совместимо с socks. Итак, для вашего примера вы должны уметь ssh -D8080 <server address>
затем links -socks-proxy localhost:8080 http://www.linux.org
который вырежет сервер Apache из беспорядка, и вы все равно выскочите из <server address>
.