ssh reverse tunnel
Или как получить доступ к домашнему серверу если провайдер не выдает внешний статический или внешний динамический ip
Проще всего изобразить "проблему" на картинке
Возникает вопрос как попасть на Home PC, не имея возможности сделать проброс портов через провайдера?
Нам нужно:
- Внешний сервер, сейчас полно внешних vds за несколько сотен рублей. Для примера есть даже за 55р, вот тут.
- Поднять обратный ssh тунель на клиенте за NAT
P.S. обе машины должны быть на OS Linux
На клиенте за NAT:
Поднимаем обратный ssh тунель вот так.
1 |
ssh -tt -M -S myssh -R 1111:localhost:22 root@zzz.backnet.ru -p2222 |
- ключ -tt в дальнейшем поможет нам поднимать тунель через cron.
- параметр myssh так-же поможет отслеживать состояние туннеля и переподнимать его
- порт 1111, внешний порт на внешнем сервере, при подключении на который мы попадем на локальный порт 22, сервера за nat
- root@zzz.backnet.ru сервер с внешним белым ip на котором поднимается туннель
- -p2222 порт ssh внешнего сервера (опционально, если порт отличается от 22)
На сервере с белым внешним IP:
Изменить параметр в файле и перезагрузить ssh сервер
1 2 |
nano /etc/ssh/sshd_conf GatewayPorts yes |
Теперь, при обращении на zzz.backnet.ru по порту 2222, мы попадем на 22 порт домашнего сервера.
В следующей статье напишу как по крону проверять работу туннеля и переподнимать его.
Categories: Без рубрики
Свежие комментарии