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 (всего исправлений: 1)

нет никакой магии, сервером может выступать в данном случае только А но не Б, от этого и пляши.

anonymous
()
Ответ на: комментарий от anonymous

Но сервер слушает порт именно на машине Б. А мне нужно к нему подключиться.

fingolfin
() автор топика

С VNC всё получилось. Не работало из-за невнимательности (голова уже пошла кругом от этих пробросов). Поэтому отредактировал тему, теперь остаётся единственный вопрос

Почему так?

fingolfin
() автор топика
Ответ на: комментарий от 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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.