Server โดยปกติมักจะมีบริการมาตรฐานอยู่สองสามอย่างที่หลุดพ้น Firewall ออกมา เช่น 80, 443, 22 เมื่อต้องการเข้าไปใช้บริการอื่นที่เปิด port พิเศษก็ต้องใช้วิธีพิเศษกันหน่อย โดยการขุดอุโมงผ่าน port มาตรฐานเข้าไป เครื่องมือที่ต้องใช้ก็มีอยู่แค่อย่างเดียว ssh
- ให้ sshd ยอมให้ต่ออุโมงโดยกำหนดในไฟล์ sshd_config ถ้าเป็น FreeBSD, Linux หาได้ที่ /etc/ssh/sshd_config แต่ OSX ดันวางไว้ต่างจากที่อื่นหน่อย /etc/sshd_config เลย
PermitTunnel yes
- จากนั้นก็ขุดอุโมงด้วยคำสั่ง
#ssh [user]@[target_host] -p [port] -g -L [local_port]:[target_host]:[target_port]
Option ต่างๆ ที่ใช้ด้านบนคือ
- -p [port] สำหรับบอกว่าจะต่อไปที่เครื่องเป้าหมายที่ port ไหน ไม่จำเป็นต้องใส่ default คือ 22
- -g สำหรับให้เครื่องอื่นต่อผ่านเข้าไปได้ด้วย ถ้าไม่ใส่ ssh จะ bind เข้า ip 127.0.0.1 ทำให้เข้าจากเครื่องอื่นไม่ได้
- -L [local_port]:[target_host]:[target_port] สำหรับ bind target_port จากเครื่องเป้าหมาย target_host มาที่เครื่องตัวเองที่ local_port
ตัวอย่าง
ssh user@localhost -g -L 10000:localhost:80
จากนั้นเมื่อเข้าเว็บผ่าน http://localhost:10000 ก็เหมือนเข้าเว็บ http://localhost