Ya, Anda harus menentukan IP dan port tujuan saat menggunakan penerusan lokal. Dari 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.
Jelas, hanya alamat bind yang opsional.
Tidak, Anda tidak dapat menentukan host tujuan atau port saat menggunakan penerusan dinamis. Dalam penerusan dinamis, SSH bertindak sebagai proxy SOCKS. Lagi dari halaman manual (penekanan milikku):
-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.
Dengan -L
, SSH tidak berusaha memahami lalu lintas. Itu hanya mengirim semua yang diterimanya di port lokal ke port target - Anda menentukan port target pada saat koneksi dibuat. Dengan -D
, SSH bertindak sebagai server proxy, dan karenanya dapat menangani koneksi dari beberapa port (misalnya, browser yang dikonfigurasi untuk menggunakannya sebagai proxy SOCKS kemudian dapat mengakses HTTP, HTTPS, FTP, dll. Melalui koneksi yang sama). Dan seperti dengan server proxy lainnya, ia akan menggunakan lalu lintas untuk menentukan tujuan.