lief-tunnel — คู่มือใช้งาน

Admin

lief-tunnel เปิด service ที่รันอยู่บน localhost ของเครื่องคุณ ให้คนภายนอกเข้าถึงได้ผ่าน https://<ชื่อ>.tunnel.liefcapital.com — เหมือน ngrok แต่เป็นของบริษัทเอง ใช้เทสเว็บกับมือถือ, ให้ลูกค้าดู demo หรือรับ webhook (LINE, Stripe ฯลฯ)

1. ขอ token

ติดต่อแอดมินเพื่อขอ token ส่วนตัว (ขึ้นต้นด้วย lt_) — token จะแสดงให้แอดมินเห็นเพียงครั้งเดียว ห้ามแชร์ token กับคนอื่น ถ้าหลุดให้แจ้งแอดมินยกเลิกทันที

2. ติดตั้ง

macOS / Linux — คำสั่งเดียว ติดตั้งและ login ให้เลย:

curl -sSL https://tunnel.liefcapital.com/install.sh | sh -s -- lt_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

หรือติดตั้งอย่างเดียว (login ทีหลัง):

curl -sSL https://tunnel.liefcapital.com/install.sh | sh

สคริปต์ตรวจ checksum ก่อนติดตั้ง ไฟล์อยู่ที่ /usr/local/bin/lief-tunnel (หรือ ~/.local/bin ถ้าไม่มีสิทธิ์)

Windows — ดาวน์โหลด https://tunnel.liefcapital.com/download/windows-amd64.exe เปลี่ยนชื่อเป็น lief-tunnel.exe แล้ววางในโฟลเดอร์ที่อยู่ใน PATH

ตรวจว่าติดตั้งแล้ว: lief-tunnel version

3. Login

lief-tunnel login lt_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

token ถูกเก็บที่ ~/.config/lief-tunnel/config.json (สิทธิ์ 600) — ใน CI ใช้ env LIEF_TUNNEL_TOKEN หรือ --token แทนได้

4. เปิด tunnel

lief-tunnel http 3000 --name myapp

จะได้ URL https://myapp.tunnel.liefcapital.com ส่งต่อไปที่ http://127.0.0.1:3000 — กด Ctrl+C เพื่อปิด

ตัวอย่างความหมาย
lief-tunnel http 3000สุ่มชื่อให้ เช่น brave-otter-k3f9x2
lief-tunnel http localhost:8080 --name apiระบุ host:port เอง
lief-tunnel http 192.168.1.10:80 --name nasส่งต่อไปเครื่องอื่นในวง LAN ก็ได้

ชื่อใช้ได้: a-z, 0-9, - ยาวไม่เกิน 63 ตัว ห้ามขึ้นต้น/ลงท้ายด้วย -

ถ้าเน็ตหลุด client จะต่อใหม่เองและได้ชื่อเดิม ทุก request จะแสดงในหน้าจอ เช่น 10:15:02 GET /api/users → 200 12ms

5. Static subdomain (ชื่อถาวร)

ชื่อทั่วไปเป็นแบบ "ใครมาก่อนได้ก่อน" ถ้าต้องการชื่อที่เป็นของคุณถาวร (เช่น URL webhook ที่ไปตั้งไว้กับ LINE/Stripe) ให้ขอแอดมินจองให้ — ค่าเริ่มต้นสูงสุด 3 ชื่อต่อคน คนอื่นจะใช้ชื่อนั้นไม่ได้แม้คุณออฟไลน์

ถ้าเปิดชื่อ static เดียวกันจากอีกเครื่อง tunnel เก่าจะถูกปิด (client เก่าแจ้งว่า "opened from another session")

6. ข้อจำกัด

7. Header ที่แอป local ได้รับ

Headerค่า
Hostmyapp.tunnel.liefcapital.com (ชื่อจริงที่ผู้ใช้เรียก)
X-Forwarded-ForIP จริงของผู้เรียก
X-Real-IPIP จริงของผู้เรียก (ค่าเดียวกับ X-Forwarded-For)
X-Forwarded-Protohttps
X-Forwarded-Hostmyapp.tunnel.liefcapital.com

dev server บางตัวปฏิเสธ Host ที่ไม่รู้จัก — เช่น Vite ให้ตั้ง server.allowedHosts: ['.tunnel.liefcapital.com'], webpack-dev-server ตั้ง allowedHosts: 'all', Django เพิ่ม .tunnel.liefcapital.com ใน ALLOWED_HOSTS

8. ปัญหาที่พบบ่อย

อาการสาเหตุ / วิธีแก้
your token is invalid or has been revoked (run: lief-tunnel login <token>)token ผิดหรือถูกยกเลิก — ขอ token ใหม่จากแอดมินแล้วรัน lief-tunnel login <token> ใหม่
your token was revoked by an adminแอดมินยกเลิก token นี้แล้ว — ขอ token ใหม่จากแอดมิน
"myapp" is already in use
(name_taken)
"myapp" was just in use; try again in a minute
(name_taken)
มีคนใช้ชื่อนี้อยู่ หรือเพิ่งใช้ไปภายใน 60 วินาที — เปลี่ยนชื่อหรือ try again in a minute (รอสักครู่)
"admin" is reserved
(name_reserved)
"myapp" is reserved for another user
(name_reserved)
ชื่อนี้เป็นชื่อระบบ (www, api, admin ฯลฯ) หรือเป็น static ของคนอื่น — ใช้ชื่ออื่น
an admin reserved this subdomain for another userแอดมินจองชื่อนี้ให้คนอื่นแล้ว — ใช้ชื่ออื่น
a token may have at most 5 tunnels open
(limit_exceeded)
เปิด tunnel ครบตามจำนวนสูงสุดของ token (ค่าเริ่มต้น 5) — ปิดตัวที่ไม่ใช้ก่อน
names may contain a-z, 0-9 and '-' (max 63 chars)
(name_invalid)
ชื่อใช้ได้เฉพาะ a-z, 0-9, - ยาวไม่เกิน 63 ตัว และห้ามขึ้นต้นหรือลงท้ายด้วย -
this subdomain was opened from another sessionมีการเปิดชื่อ static เดียวกันจากเครื่องอื่น tunnel นี้จึงถูกปิด — ปิดเครื่องอื่นหรือเปลี่ยนชื่อ
เบราว์เซอร์ขึ้น Tunnel offline (404)ยังไม่ได้รัน lief-tunnel http หรือพิมพ์ชื่อผิด
เบราว์เซอร์ขึ้น Local service not responding (502)tunnel ต่ออยู่ แต่แอปบนเครื่องคุณไม่ได้รันที่ port นั้น — เช็คด้วย curl http://127.0.0.1:3000
Dev server ตอบ "Invalid Host header" / 403ดูหัวข้อ Header ที่แอปได้รับ
client ขึ้น "an admin disconnected this tunnel"แอดมินกดปิด tunnel — สอบถามแอดมิน

9. ถอนการติดตั้ง

sudo rm -f /usr/local/bin/lief-tunnel ~/.local/bin/lief-tunnel
rm -rf ~/.config/lief-tunnel