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

ผ่านแดชบอร์ด

  1. ไปที่แดชบอร์ด
  2. คลิก Create Tunnel (ถ้ามีผ่าน API)
  3. เลือกประเภท, Subdomain และ Port
ข้อมูล

การสร้าง Tunnel ส่วนใหญ่ทำผ่าน CLI แดชบอร์ดแสดง Tunnel ที่มีอยู่

ตัวเลือก Tunnel

ตัวเลือกคำอธิบายตัวอย่าง
--subdomainSubdomain ที่กำหนดเอง--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

  1. สร้างแล้ว: Tunnel ลงทะเบียนด้วย Subdomain
  2. ใช้งาน: CLI เชื่อมต่อ, Traffic ไหล
  3. ไม่ใช้งาน: CLI ตัดการเชื่อมต่อ, Subdomain ถูกสงวน
  4. ลบแล้ว: 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 ต่อนาทีต่อ Tunnel500
Request ต่อนาทีต่อ IP1000
ขีดจำกัด Request รายวัน20,000
ขีดจำกัด Bandwidth รายวัน5 GB

การเกินขีดจำกัดส่งผลให้ได้รับ HTTP 429

การลบ Tunnel

จากแดชบอร์ด:

  1. ไปที่ Tunnels
  2. คลิกแถว Tunnel
  3. คลิก Delete

เมื่อ Tunnel ถูกลบ CLI ที่เชื่อมต่ออยู่จะได้รับแจ้งและถูกตัดการเชื่อมต่อ

แนวทางปฏิบัติที่ดี

เคล็ดลับ

เลือก Subdomain ที่ระบุโปรเจกต์: myapp-dev, api-testing, client-demo

เคล็ดลับ

ลบ Tunnel ที่คุณไม่ใช้แล้วเพื่อให้แดชบอร์ดเป็นระเบียบ

เคล็ดลับ

ตั้งค่าการแจ้งเตือน Telegram หรือ Discord เพื่อรู้เมื่อ Tunnel เชื่อมต่อ/ตัดการเชื่อมต่อ