Cloudflare เปิดบริการ Cloudflare Tunnel ให้ผู้ใช้ทั่วไป ทำให้สามารถตั้งเซิร์ฟเวอร์เว็บออกสู่อินเทอร์เน็ตได้โดยไม่ต้องมี public IP แต่อาศัย โปรแกรม cloudflared เปิดการเชื่อมต่อจากในเครื่องออกไปยังเซิร์ฟเวอร์ของ Cloudflare
ก่อนหน้านี้เว็บต่างๆ แม้จะอยู่หลัง CDN ที่ให้บริการทั้งแคชข้อมูลและทำหน้าที่ไฟร์วอลล์ป้องกันการโจมตี ตัวเว็บเองก็จำเป็นต้องมี public IP ที่เข้าถึงจากอินเทอร์เน็ตได้อยู่ดี และหากจะไม่ให้ผู้ใช้ทั่วไปเข้าไปยัง public IP โดยตรงก็ต้องคอนฟิก IP ที่อนุญาตให้เชื่อมต่อเข้ามา การใช้ cloudflared เชื่อมต่อออกอย่างเดียว ทำให้เซิร์ฟเวอร์อยู่หลัง CDN ตลอดเวลา แฮกเกอร์ไม่สามารถเชื่อมต่อเข้าไปยังเซิร์ฟเวอร์โดยไม่ผ่าน CDN และไฟร์วอลล์ได้
บริการ Cloudflare Tunnel เคยเป็นส่วนหนึ่งของ Argo Smart Routing ที่คิดค่าบริการแยก และเปิดบริการมาตั้งแต่ปี 2018 หลังจากเปิดบริการฟรีแล้วผู้ใช้สามารถซื้อ Argo Smart Routing ได้เช่นเดิม
ที่มา - Cloudflare
Comments
ทำงานยังไงน้า
ที่อ่านคร่าวๆ คอมพิวเตอร์ต้นทางจะเปิดช่องทางเชื่อมต่อขาออกไปหา CF คาไว้ แล้วเวลาที่ใครเรียกหาคอมเรา ก็จะผ่าน firewall ของ CF ผ่านช่องที่เปิดไว้มาที่คอมเราอีกทีหนึ่งน่ะครับ
คิดว่า ngrok น่าจะใกล้เคียงสุดละ
บล็อกส่วนตัวที่อัพเดตตามอารมณ์และความขยัน :P
หาข้อมูลด้านเทคนิคไม่เจอเหมือนกันครับ แบบ ให้คอมฝั่งเรายิง polling ไปเรื่อยๆ หรือทำ long polling หรือมีกระบวนการรักษาท่อยังไง orz
แบบเดียวกับ เวลาเราไปเช่าเครื่อง CDN จากพวก DigitalOcean แล้ว ssh ย้อนเข้าไป
ssh -R 80:localhost:8000 cdnuser@cdn
แล้วใช้ nginx บน DigitOcean เป็น reverse proxy ยิงเข้า localhost:8000 ครับ
ตัว ssh เองมี interval สำหรับรักษาท่ออยู่แล้ว หรือถ้ากลัวหลุดจะใช้ autossh ก็ได้ แต่อย่าง cloudflare คงใช้โปรโตคอลอื่น
lewcpe.com, @wasonliw
ขอบคุณครับ
reverse tunnel/vpn ครับ
ขอบคุณครับ
เหมือนเอา CF มาเป็นหน้าด่านไว้ relay อารมณ์ประมาณ reverse proxy หรือ Tor relay
จริงๆ คืออยากรู้กลไกตัวท่อน่ะครับ
พึ่งมาเห็นที่สงสัยของ tunnel ตัวนี้ผมยังไม่ทราบหลักการจริงของมัน แต่เท่าที่ผมเคยผ่านประสบการณ์เกี่ยวกับเน็ตเวิร์กระดับ data-link layer มันไม่ค่อยสำคัญเท่าไรว่าเราจะ tunnel ยังไง เพราะถ้าไม่ป้องกันกันที่ physical layer ยังไงแฮกเกอร์ก็เข้าถึงเราได้อยู่ดี ที่เหลือขึ้นอยู่กับว่าเราจะยอมคุยกันไหม ซึ่ง firewall/router จะเข้ามามีบทบาท ถ้ายอมคุยกันแล้ว เราจะคุยกันรู้เรื่องไหม ซึ่งตรงนี้พวก cert จะเข้ามามีบทบาท
ซึ่งหลักการของ Cloudflare ก็ไม่ได้ลงไปเกินระดับ data-link layer แค่คอนฟิก firewall ให้รับแพ็กเก็ตจา่ก Cloudflare เท่านั้น แล้วที่เหลือ Cloudflare จะจัดการ spoof ตัวเองเป็นตัวแทน client มาหาเราเอง ซึ่งทางเดียวที่จะโจมตีได้คือแฮกเกอร์ต้อง spoof ตัวเองให้เหมือน Cloudflare ให้ได้แค่นั้น แต่ทางเทคนิคแล้วมันทำยากมาก
ขอบคุณครับ มีอีกเรื่องนึงที่ผมไม่ค่อยแน่ใจคือถ้า tunnel เปิดได้แล้วเราจะสามารถส่งข้อมูลย้อนทางกลับมาได้เต็มความเร็ว (หรือใกล้เคียง) มั๊ย สามารถส่งเมื่อไหร่ก็ได้ไหมต้องมี keep-alive รึเปล่าน่ะครับ
เหมือน ngrok, Serveo, localhost.run
จริงๆ ก็อยากรู้เทคนิคของแต่ละตัวที่ว่ามาด้วยแหละครับว่าตัวไหนเลือกท่าไหนกันบ้าง ?
ลองดูท่าน
https://github.com/cloudflare/cloudflared
ตอนนี้ผมใช้ cloudflared แค่ทำ dns proxy DoH ยังไม่เคยลอง proxy local web นะ
ใครลองแล้วรีวิวหน่อย
ขอบคุณครับ
ดูจากคำตอบด้านบนแล้ว การทำงานก็ซับซ้อนอยู่เหมือนกัน นึกว่าใช้ส่งข้อมูลผ่าน Layer 2 กับอ้างอิงต้นทางและปลายทางด้วย MAC Address ไม่ผ่าน IP เสียอีก
ความล้มเหลว คือจุดเริ่มต้นสู่ความหายนะ มีผลกระทบมากกว่าแค่เสียเงิน เวลา อนาคต และทรัพยากรที่เสียไป - จงอย่าล้มเหลว
อันนี้เราต้องผูก domain กับ cloudflare ก่อนถึงจะใช้ได้ใช่ไหมอ่าเนี่ย
หรือมี random domain เหมือน ngrok หรอ
ผมไปลองเล่นมาแล้ว เหมือน ngrok generate domain ให้
รองรับ 1,000 concurrent
ลง cloudflared ก่อน https://developers.cloudflare.com/argo-tunnel/downloads/
สั่งรัน (8080 by default)
แบบระบุ port
จะได้ url ประมาณนี้ https://random-name.trycloudflare.com
โอ้ เจ๋ง นึกว่าต้องซื้อโดเมนไปวางใหม่เอง
lewcpe.com, @wasonliw