ประเดิม dev.to ด้วยเรื่องนี้ก่อนเลย
ที่มา - ข้ามไปได้
มี Pain Point หนึ่งเมื่อต้อง Support ลูกค้าจำนวนมากๆ โดยต้อง SSH เข้าไปยัง Server ปลายทาง ที่ลูกค้าไม่อยากให้เราเข้าถึง IP ตรงๆ และรู้ Username/Password (ผมก็ไม่อยากรู้ให้เดือดร้อนในภายหลัง)
วิธีที่คิดออกไวๆ คือ Anydesk (หรือ Team Viewer) เข้าไปยังเครื่องของลูกค้า ที่ลูกค้า SSH ต่อไปยัง Server ปลายทางให้เรียบร้อย มันก็ดี แต่มีปัญหาเรื่อง Bandwidth ที่ใช้พอตัวอยู่ แถมขนาดหน้าจอก็เล็กอีกต่างหาก หาวิธีตั้งนานจนในที่สุดได้พบเจอกับ Tmate
ความดีงามคือ ลงง่าย ใช้ง่าย (ยิ่งใช้ Tmux มาอยู่แล้วยิ่งง่าย) ไม่กี่คำสั่ง และการ Copy URL ให้ปลายทาง ก็เป็นอันเรียบร้อย
Tmate
Tmate เป็น Opensource ตัวหนึ่งพัฒนาต่อมาจาก Tmux เพื่อให้สามารถแชร์ Session ข้ามเครือข่ายได้ (HTTP, SSH) โดยอาศัย Server ตัวกลางอีกทอดหนึ่ง (ตอนนี้ยังฟรี) มีบนหลาย OS มากๆ ยกเว้น Windows วิธีการติดตั้งก็จะคล้ายกับการติดตั้ง Software ทั่วไป (มีบน repo official ของหลาย OS แล้ว) เช่น
ใน Ubuntu
apt-get update && apt-get install -y tmate
หรือใน MacOS ก็ลงผ่าน Home Brew ได้เลย
brew install tmate
(ควรอัพเดจเป็น version 2.4 ขึ้นไปเพื่อ feature ที่มากขึ้น แต่อาจจะต้อง compile เอง)
วิธีใช้
สั่งผ่านคำสั่ง tmate
บน Terminal Session ของ User ที่ต้องการ
จะปรากฏ information สำหรับการเชื่อมต่อ มีทั้งการเชื่อมต่อแบบ Read-only และการเชื่อมต่อแบบที่ผู้เข้าร่วมสามารถพิมพ์ Command ได้ด้วย ก็ Copy information นี้ส่งให้คนที่อยากเข้าร่วมครับ เมื่อพร้อมก็กด q
หรือ Ctrl + c
เพื่อออกจากหน้านี้แล้วเริ่ม Session ครับ
Session ID จะถูก Random ใหม่ทุกครั้ง และมีการเข้าร่วม 2 รูปแบบคือแบบ SSH และแบบ HTTP
หากดูข้อความไม่ทันสามารถใช้คำสั่ง tmux show-message
เพื่อขอดู information การ connect อีกครั้งครับ
ข้อควรระวัง
- การ Detach (Ctrl + b, d) แบบ tmux ทำให้ออกจาก tmate ได้แต่ Session จะไม่ตัด และจะไม่สามารถ Attach กลับมาได้ (พยายามลองแล้วไม่มี) หากไม่สามารถกลับเข้าไปได้แล้วอยากจะปิด session ก็ลอง kill จาก pid โดยใช้คำสั่ง
ps aux | grep tmate
- จะหยุด Session ได้ก็ต่อเมื่อ
exit
จนหมด ทุกคนที่เชื่อมต่ออยู่ก็จะหลุดทุกคนอัตโนมัติ แต่อย่าลืม
Top comments (0)