В туннеле ssh отказано в соединении с настройкой прямого прокси-сервера apache

Я пытаюсь настроить частный прямой прокси на небольшом сервере. Я имею в виду использовать его во время конференции для туннелирования моего доступа в Интернет через туннель 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

Я ожидаю увидеть запрашиваемую страницу. Вместо этого возникает ошибка "Отказано в соединении". В shell, держащем открытый ssh ​​туннель, я получаю это:

канал 3: открытие не удалось: подключение не удалось: подключение отказано

Кто-нибудь понял, почему отказано в этой связи?

2 ответа

Решение

Я согласен с CanOfSpam3, что использование -D8080 является лучшим вариантом, чем настройка прокси с помощью Apache. Однако, чтобы ответить на ваш вопрос, я думаю, вы пропустили Listen Линия в Apache для прослушивания порта 8080 в дополнение к обычным. <VirtualHost> Одно только не заставляет Apache слушать IP: упомянутый порт, вы также должны попросить Apache прослушивать это с Listen, Вот ссылка от Apache

Ответ Raymonds, скорее всего, (не видя остальной части вашего конфига) является проблемой, с которой вы сталкиваетесь с частью apache.

Вы смотрели на использование SSH Socks туннеля? Вместо -L8080:localhost:8080 вы могли бы -D8080, который с помощью носков позволил бы вам туннелировать все, что совместимо с носками. Так что для вашего примера вы должны быть в состоянии ssh -D8080 <server address> затем links -socks-proxy localhost:8080 http://www.linux.org что бы вытащить сервер apache из беспорядка и все же вы выскочить из <server address>,

Другие вопросы по тегам