Tunnel
การสร้างและจัดการ HTTP และ TCP Tunnel
Tunnel
Tunnel เป็นคุณสมบัติหลักของ TH-Tunnel ที่ช่วยให้คุณเปิดเผยบริการในเครื่องสู่อินเทอร์เน็ต
ประเภท Tunnel
HTTP Tunnel
สำหรับเว็บแอปพลิเคชัน, API และ Webhooks:
tunnel http 3000
คุณสมบัติ:
- เปิดใช้ HTTPS โดยอัตโนมัติ
- Subdomain ที่กำหนดเอง
- ตรวจสอบ Request (ด้วย
--inspect) - กรอง IP
TCP Tunnel
สำหรับการเชื่อมต่อ TCP (ฐานข้อมูล, SSH, เกมเซิร์ฟเวอร์):
tunnel tcp 3306
คุณสมบัติ:
- ส่งต่อ TCP โดยตรง
- กำหนด Port ระยะไกล
- รองรับทุกโปรโตคอล
การสร้าง Tunnel
ผ่าน CLI
# HTTP Tunnel พื้นฐาน
tunnel http 3000
# ด้วย Subdomain ที่กำหนดเอง
tunnel http 3000 --subdomain myapp
# ด้วย Web Inspector
tunnel http 3000 --inspect
# TCP Tunnel
tunnel tcp 22
ผ่านแดชบอร์ด
- ไปที่แดชบอร์ด
- คลิก Create Tunnel (ถ้ามีผ่าน API)
- เลือกประเภท, Subdomain และ Port
การสร้าง Tunnel ส่วนใหญ่ทำผ่าน CLI แดชบอร์ดแสดง Tunnel ที่มีอยู่
ตัวเลือก Tunnel
| ตัวเลือก | คำอธิบาย | ตัวอย่าง |
|---|---|---|
--subdomain | Subdomain ที่กำหนดเอง | --subdomain myapp |
--inspect | เปิด Web Inspector | --inspect |
--allow-ip | อนุญาตเฉพาะ IP ที่ระบุ | --allow-ip 1.2.3.4 |
--deny-ip | บล็อก IP ที่ระบุ | --deny-ip 5.6.7.8 |
--log | บันทึก Request ลงไฟล์ | --log ./requests.log |
การกรอง IP
จำกัดการเข้าถึง Tunnel เฉพาะ IP ที่ระบุ:
# อนุญาตเฉพาะ IP ที่ระบุ
tunnel http 3000 --allow-ip 192.168.1.0/24 --allow-ip 10.0.0.1
# บล็อก IP ที่ระบุ
tunnel http 3000 --deny-ip 5.6.7.8
เมื่อใช้ --allow-ip เฉพาะ IP ที่ระบุเท่านั้นที่สามารถเข้าถึงได้ IP อื่นจะถูกบล็อก
วงจรชีวิต Tunnel
- สร้างแล้ว: Tunnel ลงทะเบียนด้วย Subdomain
- ใช้งาน: CLI เชื่อมต่อ, Traffic ไหล
- ไม่ใช้งาน: CLI ตัดการเชื่อมต่อ, Subdomain ถูกสงวน
- ลบแล้ว: Tunnel ถูกลบ, Subdomain ปลดปล่อย
กฎ Subdomain
Subdomain ต้อง:
- มี 1-63 ตัวอักษร
- ประกอบด้วยตัวอักษรพิมพ์เล็ก, ตัวเลข และเครื่องหมายยัติภังค์เท่านั้น
- เริ่มต้นและลงท้ายด้วยตัวอักษรหรือตัวเลข
Subdomain ที่สงวนไว้ (เช่น www, api, admin) ถูกบล็อก
Subdomain ที่มีคำหยาบหรือเนื้อหาที่ไม่เหมาะสมจะถูกบล็อกโดยอัตโนมัติ
การเชื่อมต่อใหม่
หาก CLI ตัดการเชื่อมต่อ (ปัญหาเครือข่าย ฯลฯ) จะพยายามเชื่อมต่อใหม่โดยอัตโนมัติด้วย Exponential Backoff:
- ครั้งที่ 1: 1 วินาที
- ครั้งที่ 2: 2 วินาที
- ครั้งที่ 3: 4 วินาที
- ...จนถึงการหน่วงเวลาสูงสุด
Subdomain ของคุณยังคงถูกสงวนระหว่างความพยายามเชื่อมต่อใหม่
Rate Limits
Tunnel มีขีดจำกัด Rate Limit:
| ขีดจำกัด | ค่าเริ่มต้น |
|---|---|
| Request ต่อนาทีต่อ Tunnel | 500 |
| Request ต่อนาทีต่อ IP | 1000 |
| ขีดจำกัด Request รายวัน | 20,000 |
| ขีดจำกัด Bandwidth รายวัน | 5 GB |
การเกินขีดจำกัดส่งผลให้ได้รับ HTTP 429
การลบ Tunnel
จากแดชบอร์ด:
- ไปที่ Tunnels
- คลิกแถว Tunnel
- คลิก Delete
เมื่อ Tunnel ถูกลบ CLI ที่เชื่อมต่ออยู่จะได้รับแจ้งและถูกตัดการเชื่อมต่อ
แนวทางปฏิบัติที่ดี
เลือก Subdomain ที่ระบุโปรเจกต์: myapp-dev, api-testing, client-demo
ลบ Tunnel ที่คุณไม่ใช้แล้วเพื่อให้แดชบอร์ดเป็นระเบียบ
ตั้งค่าการแจ้งเตือน Telegram หรือ Discord เพื่อรู้เมื่อ Tunnel เชื่อมต่อ/ตัดการเชื่อมต่อ