Tailscale serve กับ Funnel ต่างกันอย่างไร เลือกใช้อันไหน
เปรียบเทียบความแตกต่างระหว่าง Tailscale serve และ Funnel ในการเผยแพร่บริการผ่าน HTTPS โดย serve จำกัดเฉพาะในเครือข่าย tailnet ส่วน Funnel เปิดให้เข้าถึงผ่านอินเทอร์เน็ตสาธารณะได้
tailscale serve กับ funnel: ใครสามารถเข้าถึง URL ได้บ้าง
ความแตกต่างระหว่าง tailscale serve และ tailscale funnel อยู่ที่กลุ่มผู้ใช้งานเพียงอย่างเดียว serve จะสร้างส่วนหน้าแบบ HTTPS (hypertext transfer protocol secure) บนพอร์ตภายในเครื่องและเผยแพร่ไปยัง tailnet ของคุณเท่านั้น ส่วน funnel จะเผยแพร่พอร์ตภายในเครื่องเดียวกันนั้นออกสู่สาธารณะบนอินเทอร์เน็ตผ่านเซิร์ฟเวอร์ relay ที่ Tailscale ดูแลอยู่ ทั้งสองคำสั่งใช้ flag และเป้าหมายเดียวกัน เพียงแค่คำเดียวก็สร้างความแตกต่างระหว่างแดชบอร์ดส่วนตัวกับแดชบอร์ดที่ทุกคนทั่วโลกเข้าถึงได้
ทั้งสองคำสั่งจะมอบใบรับรองที่เบราว์เซอร์เชื่อถืออยู่แล้วให้คุณ โดยใช้ชื่อที่ลงท้ายด้วย ts.net และไม่จำเป็นต้องเปิดพอร์ตขาเข้าบนไฟร์วอลล์ VPS ของคุณ เนื่องจาก daemon tailscaled ของคุณมีการเชื่อมต่อออกไปยัง tailnet อยู่แล้ว ทราฟฟิกจึงเข้ามาผ่านช่องทางนั้นแทน การนำเซิร์ฟเวอร์เข้าสู่ tailnet เป็นงานหนึ่ง และการ รัน VPS เป็น Tailscale exit node หรือ การประกาศ subnet router สำหรับเครือข่ายส่วนตัว ก็ครอบคลุมในส่วนนั้น ส่วนการเผยแพร่บริการที่อยู่ใน tailnet อยู่แล้วคือสิ่งที่คำสั่งเหล่านี้ทำ
สิ่งที่จำเป็นต้องมีก่อนใช้คำสั่งใดๆ
- Tailscale เวอร์ชัน 1.38.3 หรือใหม่กว่าบน VPS ที่ล็อกอินเข้าสู่ tailnet ของคุณแล้ว ตรวจสอบได้ด้วย
tailscale versionและtailscale status - เปิดใช้งาน MagicDNS ซึ่งเป็นระบบ DNS (domain name system) ในตัวของ Tailscale ที่ช่วยให้เครื่องมีชื่อเรียก เช่น
blog-vps.your-tailnet.ts.netแทนที่จะมีเพียงที่อยู่100.xเท่านั้น - เปิดใช้งานใบรับรอง HTTPS สำหรับ tailnet ที่หน้า DNS ในคอนโซลผู้ดูแลระบบ หากไม่มีส่วนนี้ จะไม่มีใบรับรองสำหรับนำไปใช้หน้าพอร์ตของคุณ
- สำหรับ
funnelเท่านั้น จำเป็นต้องมีแอตทริบิวต์โหนดfunnelในไฟล์นโยบายของ tailnet ซึ่งเป็นจุดที่ผู้ใช้งานส่วนใหญ่มักติดขัดในการเริ่มต้นใช้งานครั้งแรก โดยจะมีรายละเอียดอธิบายไว้ด้านล่างนี้
คำสั่งทุกคำสั่งในที่นี้ต้องขึ้นต้นด้วย sudo เนื่องจาก CLI จะสื่อสารกับ tailscaled ผ่านซ็อกเก็ตที่อนุญาตให้เฉพาะ root เขียนข้อมูลได้เท่านั้น คุณสามารถกำหนดสิทธิ์ให้ผู้ใช้รายหนึ่งสามารถข้ามขั้นตอนดังกล่าวได้ดังนี้:
sudo tailscale set --operator=$USERเผยแพร่บริการสู่ tailnet ของคุณด้วย tailscale serve
ชี้ serve ไปยังพอร์ตภายในเครื่อง แล้วที่เหลือระบบจะจัดการให้เอง
sudo tailscale serve 3000Available within your tailnet:
https://amelie-workstation.pango-lin.ts.net
|-- / proxy http://127.0.0.1:3000
Press Ctrl+C to exit.การใช้ 3000 เปล่าๆ เป็นคำสั่งย่อของ http://127.0.0.1:3000 โดย Tailscale จะรอรับการเชื่อมต่อที่พอร์ต 443 ของที่อยู่ tailnet ของเครื่องนั้นๆ ทำการยุติ TLS (transport layer security) ด้วยใบรับรอง ts.net แล้วส่งต่อข้อมูล HTTP แบบปกติไปยังพอร์ตภายในเครื่องของคุณ แอปพลิเคชันของคุณไม่จำเป็นต้องรับรู้ถึงการมีอยู่ของใบรับรอง ซึ่งเป็นเหตุผลหลักที่ควรใช้สิ่งนี้หน้าแผงควบคุมผู้ดูแลระบบที่คุณอาจปล่อยให้ทำงานบน HTTP ปกติ
ตอนนี้ให้อ่านบรรทัดสุดท้าย: Press Ctrl+C to exit. คำสั่งนี้จะทำงานใน foreground และการแมปจะคงอยู่ภายในกระบวนการนั้น หากปิดเทอร์มินัล URL จะหยุดทำงานทันทีเนื่องจากไม่มีการเขียนข้อมูลลงดิสก์ ให้เพิ่ม --bg เพื่อบันทึกการแมปไว้ใน serve config ของโหนด ซึ่งจะคงอยู่ทั้งหลังจากปิดเทอร์มินัลและรีบูตเครื่อง
sudo tailscale serve --bg 3000คำสั่ง serve รองรับมากกว่าแค่หมายเลขพอร์ต --set-path จะทำการ mount บริการไว้ภายใต้ subpath ทำให้หลายแอปสามารถใช้ชื่อโฮสต์เดียวกันได้:
sudo tailscale serve --bg --set-path=/grafana 3000
sudo tailscale serve --bg --set-path=/metrics 9090เป้าหมายยังสามารถเป็นไดเรกทอรีของไฟล์แบบ static หรือ backend ที่สื่อสารด้วย TLS อยู่แล้วโดยที่คุณไม่ต้องการให้ตรวจสอบใบรับรอง:
sudo tailscale serve --bg /srv/reports
sudo tailscale serve --bg https+insecure://localhost:8443นอกจากนี้ยังไม่จำกัดอยู่แค่ HTTP เท่านั้น --tcp=<port> จะส่งต่อกระแสข้อมูล TCP (transmission control protocol) แบบดิบ และ --tls-terminated-tcp=<port> จะทำการยุติ TLS ที่โหนดของคุณแล้วส่งต่อข้อมูลแบบ plaintext ซึ่งเป็นการนำใบรับรองที่เชื่อถือได้ไปวางไว้หน้าบริการที่ไม่รองรับโปรโตคอล HTTP เลย
sudo tailscale serve --bg --tls-terminated-tcp=443 tcp://127.0.0.1:9899เหตุใด Funnel จึงแจ้งว่าไม่ได้ตั้งค่า node attribute
โดยค่าเริ่มต้น Funnel จะถูกปิดใช้งานสำหรับทั้ง tailnet การรันคำสั่งครั้งแรกจะแสดงข้อความนี้แล้วหยุดทำงาน:
Funnel not available; "funnel" node attribute not set. See https://tailscale.com/kb/1223/tailscale-funnel/.คำสั่งที่ใช้ถูกต้องแล้ว แต่เนื่องจากนโยบายของ tailnet ไม่อนุญาตให้โหนดนี้เผยแพร่บริการ ไคลเอนต์จึงปฏิเสธการทำงานก่อนที่จะติดต่อกับ relay ให้แก้ไขไฟล์นโยบายของ tailnet ใน admin console ภายใต้หัวข้อ Access Controls แล้วเพิ่ม attribute ดังนี้:
"nodeAttrs": [
{
"target": ["autogroup:member"],
"attr": ["funnel"],
},
],autogroup:member เป็นการอนุญาตให้สมาชิกทุกคนใน tailnet หากต้องการให้เครื่องเดียวเท่านั้นที่เผยแพร่บริการได้ ให้กำหนด tag ให้กับเครื่องนั้นแล้วระบุเป้าหมายเป็น tag แทน เช่น tag:public หลังจากบันทึกนโยบายแล้ว ให้รันคำสั่ง funnel อีกครั้ง
หากบัญชีของคุณเป็นผู้ดูแลระบบ tailnet ไคลเอนต์เวอร์ชันล่าสุดจะมีทางลัดให้ โดย CLI จะแสดง URL สำหรับยืนยันตัวตนบน login.tailscale.com ซึ่งการเข้าถึง URL ดังกล่าวจะเปิดใช้งานใบรับรอง HTTPS และเพิ่ม attribute ให้โดยอัตโนมัติ หากคุณไม่ใช่ผู้ดูแลระบบ URL นั้นจะไม่สามารถช่วยคุณได้ จำเป็นต้องให้ผู้ที่มีสิทธิ์จัดการนโยบายเป็นผู้ดำเนินการแก้ไขเท่านั้น
การเผยแพร่สู่สาธารณะด้วย Tailscale Funnel
เมื่อตั้งค่าแอตทริบิวต์เรียบร้อยแล้ว คำสั่งที่ใช้จะเป็นคำสั่งเดิมที่คุณคุ้นเคย เพียงแต่เปลี่ยนคำกริยาเท่านั้น
sudo tailscale funnel --bg 3000Available on the internet:
https://amelie-workstation.pango-lin.ts.net
|-- / proxy http://127.0.0.1:3000
Press Ctrl+C to exit.โปรดอ่านบรรทัดแรกนั้นทุกครั้ง Available within your tailnet และ Available on the internet คือความแตกต่างเพียงอย่างเดียวที่มองเห็นได้ระหว่างบริการส่วนตัวกับบริการสาธารณะ และคำสั่งที่ใช้สร้างทั้งสองอย่างนี้ต่างกันเพียงคำเดียว
ณ เดือนสิงหาคม 2026 Funnel จะรับฟังการเชื่อมต่อบนพอร์ต 443, 8443 หรือ 10000 เท่านั้น โดยค่าเริ่มต้นคือ 443 ส่วน --https=8443 หรือ --https=10000 เป็นทางเลือกอื่น ระบบจะปฏิเสธพอร์ตอื่นทั้งหมดเนื่องจาก Funnel relay ยอมรับการเชื่อมต่อเฉพาะพอร์ตที่กำหนดไว้เท่านั้น นี่คือเหตุผลที่ URL ของ Funnel จะเป็นชื่อโฮสต์เปล่าๆ หรือชื่อโฮสต์ที่ต่อท้ายด้วย :8443 เสมอ
ฉันจะตรวจสอบได้อย่างไรว่าขณะนี้มีการเผยแพร่บริการใดอยู่บ้าง
การคาดเดาเป็นสาเหตุที่ทำให้แดชบอร์ดถูกเปิดเป็นสาธารณะทิ้งไว้เป็นเดือน ให้สอบถามจากโหนดโดยตรงแทน
tailscale serve status
tailscale funnel status
tailscale serve status --jsonคำสั่งสถานะทั้งสองรูปแบบอ่านค่าจากคอนฟิกเดียวกัน ดังนั้นไม่ว่าจะใช้คำสั่งใดก็แสดงภาพรวมทั้งหมดได้ ให้ใช้รูปแบบ --json ภายในสคริปต์หรือการตรวจสอบตามกำหนดเวลา เนื่องจากผลลัพธ์แบบปกติถูกออกแบบมาให้อ่านโดยมนุษย์ หากไม่มีการตั้งค่าใดๆ คุณจะได้รับข้อความเพียงบรรทัดเดียว:
No serve configหากพบข้อความดังกล่าวหลังจากที่คุณตั้งค่าจนใช้งานได้แล้ว แสดงว่าการแมปถูกสร้างขึ้นในโหมด foreground และกระบวนการทำงานได้สิ้นสุดลงแล้ว ให้สร้างการแมปขึ้นใหม่ด้วย --bg
หากต้องการลบการแมปรายการใดรายการหนึ่ง ให้ใช้คำสั่งเดิมที่ใช้สร้างการแมปนั้นซ้ำอีกครั้งโดยเพิ่ม off ไว้ที่ท้ายคำสั่ง หากต้องการลบการแมป serve และ funnel ทั้งหมดบนโหนด ให้ใช้ reset
sudo tailscale funnel --https=443 3000 off
sudo tailscale serve resetให้รัน tailscale serve status อีกครั้งหลังจากดำเนินการอย่างใดอย่างหนึ่งข้างต้น แล้วตรวจสอบสิ่งที่เหลืออยู่ แทนที่จะคาดเดาว่าระบบได้ดำเนินการตามที่คุณต้องการแล้ว
สิ่งที่คุณจะได้รับและสิ่งที่คุณต้องแลก
ผลประโยชน์ที่ได้รับนั้นเป็นเรื่องจริง และเป็นเหตุผลที่ผู้คนเลือกวิธีนี้แทนการใช้ reverse proxy
- ใบรับรองที่เบราว์เซอร์เชื่อถือและได้รับการต่ออายุให้โดยอัตโนมัติ ไม่จำเป็นต้องติดตั้งไคลเอ็นต์ ACME (automatic certificate management environment) และไม่ต้องกังวลเรื่องการลืมต่ออายุ
- ไม่ต้องเปิดพอร์ตขาเข้าบน firewall ของ VPS เนื่องจาก
tailscaledจะทำการเชื่อมต่อออกไปข้างนอก ดังนั้น การตั้งค่า ufw firewall แบบ default-deny บน VPS ของคุณ จึงยังคงความปลอดภัยได้เท่าเดิม - ไม่ต้องซื้อ ชี้ หรือรอการอัปเดต DNS record
- ไม่ต้องทำ port forwarding ซึ่งเป็นหัวใจสำคัญสำหรับเครื่องที่อยู่หลัง NAT (network address translation) แทนที่จะเป็น VPS ที่มี public IP
ในขณะเดียวกันก็มีสิ่งที่ต้องแลกเปลี่ยน ซึ่ง funnel เป็นผู้รับผิดชอบทั้งหมด
- ชื่อโดเมนไม่ใช่ของคุณ ผู้เข้าชมทั่วไปจะเห็นเป็น
host.your-tailnet.ts.netโดยที่ funnel ไม่รองรับ custom domain คุณจึงไม่สามารถนำapp.example.comมาวางไว้ข้างหน้าได้ - เส้นทาง (path) ไม่ใช่ของคุณ ทราฟฟิกจะวิ่งไปที่ Tailscale relay ก่อน จากนั้น relay จะส่งต่อสตรีมไปยังโหนดของคุณผ่าน tailnet ทาง Tailscale ระบุว่าทราฟฟิกของ funnel จะถูกจำกัดแบนด์วิดท์โดยไม่มีการประกาศตัวเลขที่ชัดเจนและไม่สามารถปรับแต่งได้ ดังนั้นควรวัดปริมาณการรับส่งข้อมูลด้วยตนเองก่อนที่จะพึ่งพาตัวเลขดังกล่าว
- ขาดการควบคุมในส่วนต่างๆ reverse proxy ที่คุณดูแลเองจะช่วยให้คุณเข้าถึง access log, กำหนด rate limit, จำกัดขนาดของ request และเป็นจุดสำหรับทำ authentication ได้ แต่ funnel ให้เพียง URL เท่านั้น ส่วนที่เหลือทั้งหมดต้องจัดการภายในแอปพลิเคชันของคุณเอง
- รายการพอร์ตถูกกำหนดไว้ตายตัวตามที่ระบุไว้ข้างต้น
ฟีเจอร์ทั้งสองอย่างนี้ยังต้องพึ่งพาโครงสร้างพื้นฐานที่ Tailscale เป็นผู้ดำเนินการ ได้แก่ การออกใบรับรองสำหรับชื่อ ts.net และตัว funnel relay เอง หากคุณกำลังพิจารณา การใช้ Headscale control server ที่โฮสต์เอง อย่าเพิ่งทึกทักว่าฟีเจอร์ทั้งสองจะใช้งานได้ตามไปด้วย โปรดตรวจสอบบันทึกการเปลี่ยนแปลง (release notes) ของ Headscale เวอร์ชันที่คุณวางแผนจะใช้งาน
ควรเลือกใช้ตัวไหน?
กฎมีสั้นๆ ดังนี้
ใช้ serve สำหรับทุกอย่างที่เป็นภายใน เช่น หน้าจัดการระบบ (admin interface), แดชบอร์ด, UI สำหรับดูเมทริกซ์ที่คุณไม่ต้องการให้ถูกทำดัชนี (index) หรือสำเนา staging ของเว็บไซต์ การเป็นสมาชิกใน tailnet คือการควบคุมการเข้าถึง ซึ่งเป็นวิธีที่มีประสิทธิภาพ อุปกรณ์ที่ไม่ได้อยู่ใน tailnet จะไม่สามารถแม้แต่จะ resolve ชื่อโดเมนได้
ใช้ funnel สำหรับลิงก์เดโม, ตัวรับ webhook ที่บุคคลภายนอกต้องส่ง POST เข้ามา หรือการทำ OAuth callback ระหว่างการพัฒนา นี่เป็นเส้นทางที่เร็วที่สุดในการได้ URL แบบ HTTPS สาธารณะ และคำสั่ง off เพียงคำสั่งเดียวก็สามารถยกเลิกได้ อย่างไรก็ตาม สาธารณะก็คือสาธารณะ ชื่อโฮสต์ไม่ใช่ความลับ และการทำ funnel หน้าแอปที่ไม่มีระบบล็อกอินก็คือการเปิดบริการสู่สาธารณะ สิ่งที่อยู่เบื้องหลัง funnel นั้นต้องตรวจสอบสิทธิ์คำขอด้วยตัวเอง โดยต้องระมัดระวังเช่นเดียวกับ การเปิดใช้งาน Ollama API endpoint
ใช้ reverse proxy จริงสำหรับทุกอย่างที่คุณเรียกว่าเป็น production ใช้โดเมนของคุณ, certificate ของคุณ, log ของคุณ, การจำกัดอัตรา (rate limit) ของคุณ และไม่มีบุคคลอื่นอยู่ในเส้นทางของคำขอ การเปรียบเทียบ nginx, Caddy และ Traefik ในฐานะ reverse proxy จะช่วยแนะนำการเลือกใช้งาน
รูปแบบความล้มเหลวและข้อความที่คุณจะพบ
Funnel ไม่ยอมเริ่มทำงาน Funnel not available; "funnel" node attribute not set. เป็นปัญหาด้านนโยบาย ไม่ใช่ปัญหาที่ตัวคำสั่ง ให้เพิ่มแอตทริบิวต์ funnel ลงในไฟล์นโยบายของ tailnet บันทึกไฟล์ แล้วลองใหม่อีกครั้ง
ใช้งานได้แล้ว แต่ตอนนี้ tailscale serve status แจ้งว่า No serve config การแมปถูกสร้างขึ้นใน foreground และกระบวนการนั้นสิ้นสุดลงแล้ว ให้รันคำสั่งเดิมซ้ำด้วย --bg
ชื่อโดเมน resolve ได้แต่ไม่มีการตอบกลับ serve จะทำหน้าที่เป็น proxy ไปยังเป้าหมายที่คุณระบุ ดังนั้นหากไม่มีบริการใดรอรับการเชื่อมต่ออยู่ที่นั่น ก็จะไม่มีปลายทางให้ proxy ไปถึง ให้ยืนยันด้วย ss -ltnp | grep 3000 บนเครื่องเดียวกับที่รัน tailscaled สาเหตุที่พบบ่อยคือ container ประกาศพอร์ตบนที่อยู่ Docker bridge แทนที่จะเป็น 127.0.0.1 ซึ่งหมายความว่าเครื่อง host มองไม่เห็น listener ในจุดที่คุณคาดหวัง การทำงานของเครือข่ายใน Docker Compose จะแสดงให้เห็นว่าพอร์ตที่ประกาศไว้นั้นไปอยู่ที่ใด
ข้อผิดพลาดเกี่ยวกับใบรับรองบนชื่อ ts.net มีความเป็นไปได้สูงว่าใบรับรอง HTTPS ยังไม่ได้ถูกเปิดใช้งานสำหรับ tailnet ให้เปิดใช้งานใน admin console จากนั้นรันขั้นตอนการออกใบรับรองแยกต่างหาก เพื่อไม่ให้ข้อผิดพลาดปะปนกับผลลัพธ์ของ serve:
sudo tailscale cert your-host.your-tailnet.ts.netFunnel โหลดได้บนเครือข่ายมือถือ แต่ทำงานต่างจากบนแล็ปท็อปของคุณ แล็ปท็อปของคุณอยู่ใน tailnet ดังนั้น MagicDNS จึง resolve ชื่อไปยังที่อยู่ 100.x และคุณเข้าถึงบริการได้โดยตรงโดยไม่ผ่าน relay นี่คือพฤติกรรมที่ถูกต้อง และหมายความว่าแล็ปท็อปของคุณไม่สามารถทดสอบการเข้าถึงจากสาธารณะได้เลย ให้ใช้ curl จากเครื่องที่ไม่ได้อยู่ใน tailnet แทน
FAQ
tailscale serve กับ tailscale funnel แตกต่างกันอย่างไร
ความแตกต่างอยู่ที่ว่าใครสามารถเข้าถึงผลลัพธ์ได้ tailscale serve จะเผยแพร่พอร์ตในเครื่องผ่าน HTTPS URL ซึ่งมีเพียงอุปกรณ์ใน tailnet ของคุณเท่านั้นที่เข้าถึงได้ ส่วน tailscale funnel จะเผยแพร่พอร์ตเดียวกันผ่าน URL ที่ใครก็ตามบนอินเทอร์เน็ตสามารถเข้าถึงได้ โดยส่งผ่าน relay server ที่ Tailscale ดูแลอยู่ ทั้งสองคำสั่งใช้ flag และเป้าหมายร่วมกัน บรรทัดแรกของผลลัพธ์จะระบุว่าคุณกำลังใช้งานอะไรอยู่ ระหว่าง Available within your tailnet หรือ Available on the internet
ทำไม tailscale funnel ถึงแจ้งว่า node attribute ไม่ได้ถูกตั้งค่าไว้
เพราะฟังก์ชัน funnel จะถูกปิดใช้งานสำหรับ tailnet จนกว่าจะมีผู้ดูแลระบบเปิดใช้งาน ข้อความแจ้งเตือนคือ Funnel not available; "funnel" node attribute not set. ซึ่งแสดงผลจากไคลเอนต์ของคุณเองก่อนที่จะมีการติดต่อกับ relay ใดๆ ให้เพิ่มรายการ nodeAttrs โดยกำหนด attribute funnel ให้กับ autogroup:member หรือกำหนดให้กับ tag หากต้องการให้เครื่องใดเครื่องหนึ่งเป็นผู้เผยแพร่ โดยตั้งค่าในไฟล์นโยบายของ tailnet ภายใต้หัวข้อ Access Controls หรือผู้ดูแลระบบ tailnet สามารถเลือกทำตาม URL การยินยอมที่ CLI แสดงผลออกมาได้
Tailscale Funnel สามารถใช้พอร์ตใดได้บ้าง
ใช้ได้เฉพาะพอร์ต 443, 8443 และ 10000 เท่านั้น ค่าเริ่มต้นคือ 443 และคุณสามารถเลือกพอร์ตอื่นได้ด้วย --https=8443 หรือ --https=10000 ข้อจำกัดนี้มาจากตัว funnel relay ไม่ใช่จากเซิร์ฟเวอร์ของคุณ ดังนั้นการแก้ไข firewall หรือการตั้งค่าบน VPS จึงไม่สามารถปลดล็อกข้อจำกัดนี้ได้ ส่วน tailscale serve ไม่มีข้อจำกัดดังกล่าวเนื่องจากข้อมูลไม่เคยออกนอก tailnet ของคุณ
URL ที่สร้างจาก serve หรือ funnel จะยังคงอยู่หลังการรีบูตหรือไม่
จะคงอยู่ก็ต่อเมื่อคุณใช้ --bg หากไม่ใช้ คำสั่งจะทำงานใน foreground และแสดงผล Press Ctrl+C to exit. จากนั้นการแมปจะหายไปพร้อมกับกระบวนการทำงาน แต่ถ้าใช้ --bg การแมปจะถูกบันทึกลงใน serve config ของโหนดและจะกลับมาทำงานอีกครั้งด้วย tailscaled หลังจากรีบูต คุณสามารถตรวจสอบได้ด้วย tailscale serve status ซึ่งจะแสดงผล No serve config หากไม่มีการตั้งค่าใดๆ ไว้
การเปิด funnel ทิ้งไว้มีความปลอดภัยหรือไม่
มีความปลอดภัยในแง่ของการรับส่งข้อมูล: การเชื่อมต่อเป็น HTTPS และไม่มีการเปิดพอร์ตใดๆ บน firewall ของคุณ แต่ในแง่ที่คนทั่วไปเข้าใจนั้นไม่ถือว่าปลอดภัย เพราะ URL ดังกล่าวเป็นสาธารณะ แอปพลิเคชันที่อยู่เบื้องหลังจึงเป็นสาธารณะด้วย ควรเปิด funnel ทิ้งไว้เฉพาะหน้าบริการที่มีการตรวจสอบสิทธิ์ของตนเองเท่านั้น และควรปิดการใช้งานเมื่อการสาธิตหรือการทดสอบ webhook สิ้นสุดลง โดยใช้คำสั่งเดิมที่สร้างมันขึ้นมาพร้อมกับต่อท้ายด้วย off
แหล่งข้อมูลสำหรับพฤติกรรมของคำสั่งข้างต้น: เอกสารประกอบและข้อมูลอ้างอิง CLI ของ Tailscale Serve และ Funnel ที่ tailscale.com/docs