Pendahuluan

Ketika kita ingin mengakses sebuah layanan pada remote host yang hanya listen pada address 127.0.0.1 kita tidak bisa menggunakan fitur Dynamic Port Forwarding sebagai alternatif kita bisa menggunakan fitur Local Port Forwarding

Panduan

ssh -L [local_address_bind]:[local_port_bind]:[remote_address_bind]:[remote_port_bind] <remote_host>

Contoh

serverku menjalankan web server yang hanya listen pada address 127.0.0.1:80 lalu saya ingin mencoba mengakses web server tersebut dari laptopku pada address 192.168.10.10:8080

  1. Jalankan web server menggunakan python pada serverku
# Perintah python
[root@serverku ~]# python3 -m http.server --bind 127.0.0.1 80

# Periksa port 
[root@serverku ~]# ss -plunt 
Netid  State   Recv-Q  Send-Q           Local Address:Port    Peer Address:Port
tcp    LISTEN  0       5                    127.0.0.1:80           0.0.0.0:*     users:(("python3",pid=1999160,fd=3))

# curl port
[root@serverku ~]# curl 127.0.0.1:80
<h1>Hello from serverku</h1>
  1. Lakukan SSH dari laptopku ke serverku
laptopku :: ~ » ssh -L 192.168.10.10:8080:127.0.0.1:80 serverku
  1. Periksa port yang listen pada laptopku
laptopku :: ~ » ss -plunt
Netid   State    Recv-Q   Send-Q       Local Address:Port        Peer Address:Port   Process
tcp     LISTEN   0        128          192.168.10.10:8080             0.0.0.0:*       users:(("ssh",pid=8675,fd=4))
  1. Uji coba curl ke 192.168.10.10:8080
laptopku :: ~ » curl 172.21.149.107:8080
<h1>Hello from serverku</h1>