Для проведения работ у одного из клиентов понадобилось войти на сервер, который доступ к интернету имеет, но находится за NAT’ом, а значит напрямую до него не достучаться. В этом случае, на помощь приходит трюк с backconnect’ом по SSH.
На машине, которая находится за NAT’ом, ставим openssh сервер, запускаем его и соединяемся со своим сервером вот такой командой:
1 |
# ssh -R 8222:localhost:22 admin@1.2.3.4 -p |
Вводим пароль для доступа по SSH и оставляем висеть сессию открытой. Если сессию оставлять открытой не хочется, можно увести процесс в фон добавив перед -R ключи -f -N.
Затем на сервере проверяем соединения, например с помощью netstat, и видим там следующее:
1 |
tcp 0 0 127.0.0.1:8222 0.0.0.0:* LISTEN 7589/sshd: root@pts |
Нам остаётся просто соединиться по SSH на 127.0.0.1:8222 и мы, через поднятый туннель, попадём на машину за NAT’ом:
1 2 3 4 |
[root@vps451870 ~]# ssh root@127.0.0.1 -p8222 root@127.0.0.1's password: Last login: Mon Jul 10 08:29:04 2017 [root@localhost ~]# |
Я этот способ так же очень часто использую, когда будучи в поездке нужно попасть на домашний ПК и забрать с него что-то.
Ваш комментарий будет первым