แก้ปัญหา SSH ไม่ได้ หลังต่อ VPN
วันนี้พยายามทำ lab ขึ้นมา แล้วทีนี้ปกติผมจะเข้าไปใช้งานได้ผ่าน ssh แต่เมื่อเครื่องนั้นต่อ VPN ไปแล้วจะกลายเป็นว่าทำให้ ssh เข้าไปในเครื่องผ่าน channel เดิมไม่ได้ซะงั้น ก็เป็นเป็นปัญหาตามมา ก็เลยตรวจสอบดูพบว่า routing มันเปลี่ยนหลังจากต่อ VPN กลายเป็นว่า packet มันไม่ได้กลับทาง public IP gateway เดิมไปวิ่งเส้น VPN แทนซะงั้น นั่นคือเหตุผลที่ทำให้ไม่สามารถเข้าใช้งาน ssh ผ่าน public IP ได้เหมือนเดิมนั่นเอง โดยวิธีแก้คือ เราก็ให้ไอ้ทางเก่าที่เป็นการเชื่อมต่อมายัง public IP เดิมนั้นไปวิ่งเส้น IP gateway แทนก็จบ โดยใช้เป็น
1 2 3 |
ip rule add from x.x.x.x table 128 ip route add table 128 to y.y.y.y/y dev ethX ip route add table 128 default via z.z.z.z |
จากคำสั่ง x.x.x.x จะเป็น public IP ของเรา, y.y.y.y/y เป็น subnet ของ public IP address ของเครื่องเรา, ส่วน ethX ก็เป็น interface เดิมของเรา ซึ่งในที่นี้อาจจะเป็นได้ทั้ง eth0, ens3, etc. ส่วน z.z.z.z เป็น default gateway ขา internet ของเรานั่นเอง
ตัวอย่าง
1 2 3 |
ip rule add from 172.16.9.132 table 128 ip route add table 128 to 172.16.9.0/24 dev eth0 ip route add table 128 default via 172.16.9.1 |
เท่านี้ขา public IP ก็จะวิ่งไปเส้นเดิมคือ 172.16.9.1 แล้วครับ