Так, вам потрібно вказати IP-адресу та порт призначення при використанні локальної переадресації. Від man ssh
:
-L [bind_address:]port:host:hostport
Specifies that the given port on the local (client) host is to be
forwarded to the given host and port on the remote side.
Зрозуміло, що лише прив'язувати адресу необов'язково.
Ні, ви не можете вказати хост або порт призначення при використанні динамічного переадресації. У динамічному пересиланні SSH виступає як проксі-сервер SOCKS. Знову з сторінки сторінки (мій акцент):
-D [bind_address:]port
Specifies a local “dynamic” application-level port forwarding.
This works by allocating a socket to listen to port on the local
side, optionally bound to the specified bind_address. Whenever a
connection is made to this port, the connection is forwarded over
the secure channel, and the application protocol is then used to
determine where to connect to from the remote machine. Currently
the SOCKS4 and SOCKS5 protocols are supported, and ssh will act
as a SOCKS server.
З -L
, SSH не робить спроб зрозуміти трафік. Він просто надсилає все, що він отримує на локальному порту, до цільового порту - ви визначаєте цільовий порт під час встановлення з'єднання. З -D
, SSH діє як проксі-сервер, і тому може обробляти з'єднання з декількох портів (наприклад, браузер, налаштований на його використання як проксі-сервер SOCKS, може потім отримувати доступ до HTTP, HTTPS, FTP і т.д. через одне і те ж з'єднання). Як і в інших проксі-серверах, він використовує трафік для визначення місця призначення.