На моей работе два компьютера: один с общедоступным IP-адресом, а другой компьютер с сервером Apache, на котором запущено приложение на основе браузера на порту 80. Порт 80 компьютера с общедоступным IP-адресом принимает трафик с общедоступным DNS. domain.edu. Порт 80 компьютера с сервером Apache не является публичным, но к нему можно получить доступ в локальной сети через private.domain.edu.
Я хочу создать локальный SSH-туннель от порта 80 общедоступного компьютера к компьютеру с реализованным сервером Apache. Пока что я пробовал эту команду с компьютера с публичным IP-адресом:
sudo ssh admin1@private.domain.edu -L 80:private.domain.edu:80
Когда я запускаю эту конкретную команду, я могу получить доступ к веб-приложению на private.domain.edu, запустив браузер на public.domain.edu и набрав «localhost» в адресной строке. Однако, когда я ввожу IP-адрес public.domain.edu в адресную строку, он не туннелирует в приложение private.domain.edu, а вместо этого сообщает, что URL-адрес не может быть найден. Более того, когда я набираю поиск DNS для public.domain.edu в адресной строке, он все равно не работает.
Как мне исправить туннель SSH, чтобы при вводе public.domain.edu (или его IP-адреса) в адресной строке я получал доступ к веб-приложению private.domain.edu?
Пытаться sudo ssh admin1@private.domain.edu -g -L 80:private.domain.edu:80
. Как отмечается на странице руководства:
-g Разрешает удаленным хостам подключаться к локальным перенаправленным портам.
Однако учтите, что это, вероятно, не лучший способ выполнить то, что вы пытаетесь сделать. Если вы хотите разрешить доступ к внутреннему веб-приложению извне, но только для себя, какой-то VPN будет менее подвержен злоупотреблениям; Если вы хотите включить его для всех, поговорите с администратором локальной сети и пробейте порт через брандмауэр.