เคยไหมที่ทำงานค้างที่บ้าน แล้วจะออกไปข้างนอกทำงานต่อ แต่ SSH กล้ับเข้าเครื่องตัวเองไม่ได้ขี้เกียจทำ NAT ขี้เกียจทำ dyndns แต่อยากได้ remote ssh กลับมาวันนี้
ใครใช้ SSH จะรู้ว่ามันมีความสามารถในการทำ tunneling อยู่ โดยเราสามารถ map port ที่เครื่องของเราให้วิ่งผ่าน ssh server แล้วไปยังเครื่องปลายทางได้ นั่นคือ SSH -L [พอร์ตที่เครื่องเรา]:[เครื่องปลายทาง]:[พอร์ตปลายทาง]
แต่จริงๆ SSH ยังมี SSH -R ที่ใช้ต่อกลับมาที่เครื่องเราเองได้อีกด้วย ในรูปแบบของ ssh -R [พอร์ตที่เครื่อง server]:[เครื่องปลายทาง]:[พอร์ตปลายทาง]
เวลาที่เราจะ remote กลับเครื่องตัวเองจากข้างนอก ก็สั่ง
ssh [user ของ ssh server]@[ssh server] -R [พอร์ตที่เครื่อง ssh server]:localhost:22
เช่น ssh wason@garnet.ku.ac.th -R 5555:localhost:22
รันทิ้งไว้เช่นนี้ พออยู่ข้างนอก ก็..
[wason@notebook] $ ssh wason@garnet.cpe.ku.ac.th
[wason@garnet] $ ssh wason@localhost -p 5555
[wason@home_pc] $
เท่านี้ก็จะกลับมาที่เครื่องได้ ไม่ต้องทำเรื่องขอเปิด port ให้ยุ่งยาก
ผมเคยทำเมื่อสองสามปีก่อน สักพักหลังแอดมินจับได้เขาก็แก้โดยกำหนดเวลาของ session ไว้ พอเวลาอยู่ข้างนอกแล้วจะใช้จริงๆมันก็ไม่เหลือตอแล้ว
@ABZee รวมพลังซักกับ การตั้งค่า tcp_keepalive http://lewcpe.com/blog/archives/1102/true-3g/ ก็ได้สมบูรณ์แบบพอดี
ใน manual จะระบุว่า -R มาจาก remote นะ ล้อกันกับ -L ที่เป็น local
เคยเจอ admin ดักทางเช่นเดียวกัน
ผมแก้ลำด้วย autossh แบบว่าถ้า
session ตายให้ restart session ใหม่อีกที
เปิดกันข้ามอาทิตย์หลุดมันก็ต่อให้ใหม่
ยกเว้นไฟดับ