LINUX.ORG.RU
ФорумAdmin

Как работает проброс портов ssh

 ,


0

1

Допустим, есть некий сервис (например ssh), который слушает порт на машине Б с серым адресом. Я хочу достучаться до него с машины А, имея в распоряжении сервер с белым адресом.

Находясь на машине Б, выполняю команду: ssh -NR 13020:localhost:22 пользователь@ip_сервера. Теперь все запросы на 13020-й порт сервера должны попадать на 22-й порт машины Б, так? Кажется, так всё и происходит: находясь на сервере, я могу ввести ssh пользователь@localhost -p 13020, и попадаю на машину Б. Но если находясь на машине А ввести ssh пользователь@ip_сервера -p 13020 — ничего не получается, пишет Connection refused. Почему так?

Но всё работает, если сделать проброс локального порта машины А на сервер: ssh -NL 15020:localhost:13020 пользователь@ip_сервера (находясь на машине А). Теперь можно коннектиться ssh пользователь@localhost -p 15020.

Ответ на: комментарий от fingolfin

Я не специалист, но вот что вижу в мануале, man ssh:

-R [bind_address:]port:host:hostport

By default, TCP listening sockets on the server will be bound to the loop‐back interface only. This may be overridden by specifying a bind_address. An empty bind_address, or the address ‘*’, indicates that the remote socket should listen on all interfaces. Specifying a remote bind_address will only succeed if the server’s GatewayPorts option is enabled (see sshd_config(5)).

corona ()