Назад | Перейти на главную страницу

SSH-туннель работает через localhost, но не по IP-адресу или поиску в DNS.

На моей работе два компьютера: один с общедоступным 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 будет менее подвержен злоупотреблениям; Если вы хотите включить его для всех, поговорите с администратором локальной сети и пробейте порт через брандмауэр.