4

Я студент в колледже. В моей школе у нас есть странное правило: после 12 часов ночи есть внутренний запрет на доступ к локальной сети. Это означает, что я могу подключиться к Интернету (внешнему трафику), сидя в своей комнате, но не могу получить доступ к большинству внутренних серверов (скажем, B) через локальную сеть, за исключением одного сервера (скажем, A). Я могу SSH к этой машине (A) и пинг других внутренних серверов (B) и даже SSH к ним.

В моем колледже есть собственные зеркала (B) для различных дистрибутивов (http://mirror.cse.iitk.ac.in). Я настроил менеджеры пакетов для использования этого зеркала, и в дневное время оно работает безупречно, и загрузка происходит с колоссальной скоростью 10+ МБ / с (его локальная сеть), но в ночное время, когда работает LAN Ban, я должен использовать другие индийские зеркала для загрузки / обновления пакетов, что является патетически медленным по сравнению с первым.

Я хочу написать скрипт для маршрутизации трафика с сервера A на мой локальный компьютер, поскольку A может получить доступ к зеркалу (B) даже в часы запрета локальной сети. Я погуглил это, но не получил то, что я хотел сделать. Короче говоря, я хочу настроить аналогичный обратному прокси-серверу, который позволит моей локальной машине получить доступ к зеркалу (B) путем маршрутизации трафика из A.

Является ли это возможным? Я все еще новичок и изучаю вещи. Любая помощь будет принята с благодарностью.

Заранее спасибо!

1 ответ1

4

Давайте рассмотрим все возможные основы.

Способ 1

Во-первых, для зеркала. mirror.cse.iitk.ac.in является внешним зеркалом и имеет внешний IP. Это означает, что вы можете получить к нему доступ с внешнего IP-адреса. На момент написания, это разрешается до 202.3.77.108 . Используйте это в своем файле конфигурации зеркала, и вы должны получить скорость, такую же, как в локальной сети (по моему опыту).

Способ 2

Теперь перейдем к серверу A (я предполагаю, что это webhome.cc.iitk.ac.in). Используйте ssh tunnel . Короче:

ssh -L8000:mirror.cse.iitk.ac.in:80 <username>@webhome.cc.iitk.ac.in

Оставьте вышеупомянутый ssh работающим (вы можете деамонизировать команду с помощью комбинации -N и -f). Теперь в вашем конфигурационном файле вместо

http://mirror.cse.iitk.ac.in/

использование

http://localhost:8000/

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

Комментарии

Следующее сомнение (из моего опыта) будет о том, чтобы сохранить ssh соединение в фоновом режиме (переподключиться, если отключиться). Посмотрите на добавление параметров KeepAlive, ServerAliveInterval в файл .ssh/config;)

редактировать

Я заметил, что в комментариях вы сказали, что о переадресации портов не может быть и речи, поскольку у вас нет корневого доступа на сервере. Приведенная выше команда не требует root-доступа на сервере по нескольким причинам.

  1. Порт отображается на вашем компьютере (не на сервере). т.е. вы наконец будете слушать на localhost:8000 .
  2. Прослушивание портов, количество которых превышает 1024 (в данном случае 8000), в любом случае не требует root-доступа.

Заметки

  1. Если бы это был https, вы бы перенаправили запросы на порт 443 mirror.cse.iitk.ac.in (вместо 80).

  2. Запрос выглядит так:

YOU --> localhost:8000 (your PC) --via-ssh-tunnel-> webhome (forwards it to mirror:80) --> mirror.cse.iitk.ac.in (and then the reverse)

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