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:

คุณสมบัติHTTPTCP
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