1

У меня есть наемный сервер, который не позволяет мне получить доступ к URL. Могу ли я получить доступ к этому URL с сервера, используя мой домашний компьютер в качестве моста с туннелем SSH? На сервере у меня есть только доступ к командной строке.

Я могу получить доступ к некоторым URL-адресам, но этого нет в белом списке. Это то, что я получаю.

wget https://jenkins-ci.org/debian/jenkins-ci.org.key
--2015-03-30 13:21:20--  https://jenkins-ci.org/debian/jenkins-ci.org.key
Resolving jenkins-ci.org... 199.193.196.24
Connecting to jenkins-ci.org|199.193.196.24|:443... failed: Connection timed out.
Retrying.

Я хочу использовать SSH-туннель или что-то вроде загрузки файла ключа и пакетов на сервер.

3 ответа3

2

Чтобы перефразировать ваш вопрос, основываясь на одном из ваших последующих комментариев, вы хотите

получить доступ к [веб-сайту] с сервера, который не имеет доступа к этому URL, используя персональный компьютер без открытых портов в качестве туннеля - Helio

На первый взгляд, то, что вы просите, кажется невозможным. При ближайшем рассмотрении вам понадобится очень продвинутая сетевая вуду. В частности:

  • VPN-сервер, работающий на вашем персональном компьютере (назовем его herpyderp)
  • SSH-сервер, работающий на удаленном сервере (назовите его .... мегатрон. Почему бы и нет?)
  • VPN-клиент на мегатроне.

Настройте VPN-сервер

Процесс настройки VPN-сервера ... довольно сложный и выходит за рамки этого ответа. Я поставлю несколько ссылок на ресурсы в конце для вас.

В любом случае, настройте его на прослушивание 127.0.0.1 и отключите проталкивание маршрута по умолчанию. (Вам также может понадобиться настроить его на использование tcp; я не уверен, как udp будет реагировать в этой ... странной ситуации.)

Переадресация порта через SSH

Для простоты я собираюсь предположить, что у вас есть сервер OpenVPN на herpyderp, правильно настроенный и прослушивающий 127.0.0.1:1194 . Подключитесь к мегатрону и перенаправьте соответствующий порт обратно в herpyderp (на localhost хосте):

ssh -R 8088:localhost:1194 awesomeuser@megatron

Подключи VPN

Опять же, для простоты, я предполагаю, что у вас есть файл конфигурации для клиента OpenVPN на megatron . Убедитесь, что он настроен не для установки маршрута по умолчанию, и для подключения к серверу по адресу 127.0.0.1:8088 .

Обратите внимание, что если у megatron что-то уже прослушивается на 8088, вам нужно будет использовать другой номер порта.

Добавить маршруты

Наконец, вам нужно будет направлять запросы на заблокированный IP через VPN с помощью команды ip route add . Используйте ifconfig чтобы получить IP-адрес адаптера VPN и его адрес назначения. Используйте ping или nslookup чтобы получить IP-адрес рассматриваемого сайта. Затем, вооружившись этой информацией, добавьте маршрут:

ip route add <SITE_IP_ADDR> via <VPN_DEST_ADDR> dev <VPN_ADAPTER>

Если все идет как раз, вы должны быть в состоянии получить доступ к заблокированному IP от megatron через соединение herpyderp «s Интернет.

Но...

При этом, я вполне уверен, что любой сетевой администратор, который сделал это так далеко в ответе, либо плачет, либо шокирован. Там нет ничего ... правильно ... с этой настройкой. Я чувствую, что совершил грех, даже предложив его.

Кроме того, я не ожидаю какой-либо значительной пропускной способности. И просто ... астрономическая задержка.

Заключительный отказ от ответственности: я понятия не имею, будет ли это на самом деле работать. Должно быть, но из-за огромного количества работы, связанной с этой настройкой, я фактически не проверял это. Есть около миллиона вещей, которые могут пойти не так. Удачи, и Боже, скорость.

Ресурсы

РЕДАКТИРОВАТЬ: слово предостережения

Это абсолютно потенциально может сделать ваш сервер полностью недоступным по сети. Команды ip особенно; неправильный маршрут может заблокировать всю сетевую активность.

1

С вашей домашней машины запустите следующее:

curl https://jenkins-ci.org/debian/jenkins-ci.org.key|ssh <username>@<ssh server> 'cat > jenkins-ci.org.key'

Замените <username>@<ssh server> правильной информацией ssh.

Example: curl https://jenkins-ci.org/debian/jenkins-ci.org.key|ssh bob@myserver.com 'cat > jenkins-ci.org.key'

Это поместит файл в домашний каталог пользователей. Вы можете изменить это или просто переместить его после копирования.

Это предполагает, что ваша домашняя машина использует Linux. Если этого не произойдет, вы можете использовать дешевую / бесплатную облачную машину Linux, чтобы сделать то же самое (пример: c9.io).

1

Вы можете попробовать использовать туннель SSH:

ssh -f user@yourserver -L 2000:jenkins-ci.org:443 -N

Затем вы можете запросить localhost:2000 о том, что вы хотите:

wget https://localhost:2000/debian/jenkins-ci.org.key

Если у вас возникли проблемы с доменом, просто добавьте:

127.0.0.1 jenkins-ci.org

В файл /etc/hosts и запустите:

wget https://jenkins-ci.org:2000/debian/jenkins-ci.org.key

Это немного «хакерски», но я думаю, это то, что вы ищете.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .