TCP Tunnel
การสร้าง Tunnel สำหรับการเชื่อมต่อ TCP
TCP Tunnel
TCP Tunnel เปิดเผยบริการ TCP ในเครื่อง (ฐานข้อมูล, SSH, เกมเซิร์ฟเวอร์) สู่อินเทอร์เน็ต
การใช้งานพื้นฐาน
tunnel tcp 3306
ระบบจะกำหนด Port ระยะไกล บริการในเครื่องของคุณสามารถเข้าถึงได้ที่ edge.domain.com:REMOTE_PORT
กรณีการใช้งาน
การเข้าถึงฐานข้อมูล
เปิดเผยฐานข้อมูลในเครื่องชั่วคราว:
# MySQL ในเครื่อง
tunnel tcp 3306
# PostgreSQL ในเครื่อง
tunnel tcp 5432
# Redis ในเครื่อง
tunnel tcp 6379
เปิดเผยฐานข้อมูลเฉพาะชั่วคราวสำหรับ Debugging อย่าเปิด Tunnel ฐานข้อมูลทิ้งไว้ใน Production
การเข้าถึง SSH
เปิดเผย SSH ในเครื่องสำหรับการเข้าถึงระยะไกล:
tunnel tcp 22
เชื่อมต่อจากที่ไหนก็ได้:
ssh user@edge.domain.com -p REMOTE_PORT
เกมเซิร์ฟเวอร์
เปิดเผยเกมเซิร์ฟเวอร์ในเครื่อง:
tunnel tcp 25565 # Minecraft
tunnel tcp 7777 # เกมที่กำหนดเอง
โปรโตคอลที่กำหนดเอง
โปรโตคอลที่ใช้ TCP ทำงานได้:
tunnel tcp 1883 # MQTT
tunnel tcp 9000 # บริการที่กำหนดเอง
การกำหนด Port
แตกต่างจาก HTTP Tunnel ที่คุณเลือก Subdomain, TCP Tunnel ได้รับ Port ระยะไกลที่กำหนด:
Forwarding: edge.domain.com:54320 -> localhost:3306
Port ระยะไกลเป็นแบบสุ่มและเปลี่ยนในแต่ละการเชื่อมต่อ
ข้อจำกัด
TCP Tunnel มีความแตกต่างจาก HTTP:
| คุณสมบัติ | HTTP | TCP |
|---|---|---|
| Subdomain ที่กำหนดเอง | ใช่ | ไม่ (กำหนด Port) |
| HTTPS/SSL | อัตโนมัติ | แอปพลิเคชันจัดการ |
| Web Inspector | ใช่ | ไม่ |
| การบันทึก Request | ใช่ | พื้นฐาน |
ข้อควรพิจารณาด้านความปลอดภัย
อย่าเปิดเผยฐานข้อมูล Production ผ่าน Tunnel ใช้เฉพาะสำหรับ Development/Debugging
ถ้าเปิดเผย SSH ตรวจสอบให้แน่ใจว่ามีการยืนยันตัวตนที่แข็งแรง (Key-based, fail2ban ฯลฯ)
ใช้ --allow-ip เสมอเมื่อเปิดเผยบริการ TCP ที่ละเอียดอ่อน
ตัวอย่าง
Debug ปัญหาฐานข้อมูลระยะไกล
# นักพัฒนาต้องการเข้าถึง Staging DB ชั่วคราว
tunnel tcp 5432
# เชื่อมต่อด้วย psql จากที่ไหนก็ได้
psql -h edge.domain.com -p 54320 -U dbuser -d mydb
การพัฒนาแอปมือถือ
เปิดเผย WebSocket Server ในเครื่องสำหรับทดสอบแอปมือถือ:
# WebSocket Server ที่ 8080
tunnel tcp 8080
# แอปมือถือเชื่อมต่อไปที่ edge.domain.com:XXXXX