Tags:
Topics: 
Node Thumbnail

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

Get latest news from Blognone

Comments

By: hisoft
ContributorWindows PhoneWindows
on 18 April 2021 - 18:44 #1206048
hisoft's picture

ทำงานยังไงน้า

By: itpcc
ContributoriPhoneRed HatUbuntu
on 18 April 2021 - 19:51 #1206049 Reply to:1206048
itpcc's picture

ที่อ่านคร่าวๆ คอมพิวเตอร์ต้นทางจะเปิดช่องทางเชื่อมต่อขาออกไปหา CF คาไว้ แล้วเวลาที่ใครเรียกหาคอมเรา ก็จะผ่าน firewall ของ CF ผ่านช่องที่เปิดไว้มาที่คอมเราอีกทีหนึ่งน่ะครับ

คิดว่า ngrok น่าจะใกล้เคียงสุดละ


บล็อกส่วนตัวที่อัพเดตตามอารมณ์และความขยัน :P

By: hisoft
ContributorWindows PhoneWindows
on 18 April 2021 - 20:53 #1206062 Reply to:1206049
hisoft's picture

หาข้อมูลด้านเทคนิคไม่เจอเหมือนกันครับ แบบ ให้คอมฝั่งเรายิง polling ไปเรื่อยๆ หรือทำ long polling หรือมีกระบวนการรักษาท่อยังไง orz

By: lew
FounderJusci's WriterMEconomicsAndroid
on 18 April 2021 - 22:49 #1206072 Reply to:1206062
lew's picture

แบบเดียวกับ เวลาเราไปเช่าเครื่อง CDN จากพวก DigitalOcean แล้ว ssh ย้อนเข้าไป

ssh -R 80:localhost:8000 cdnuser@cdn

แล้วใช้ nginx บน DigitOcean เป็น reverse proxy ยิงเข้า localhost:8000 ครับ

ตัว ssh เองมี interval สำหรับรักษาท่ออยู่แล้ว หรือถ้ากลัวหลุดจะใช้ autossh ก็ได้ แต่อย่าง cloudflare คงใช้โปรโตคอลอื่น


lewcpe.com, @wasonliw

By: hisoft
ContributorWindows PhoneWindows
on 19 April 2021 - 10:14 #1206100 Reply to:1206072
hisoft's picture

ขอบคุณครับ

By: icez
ContributoriPhoneAndroidRed Hat
on 18 April 2021 - 23:28 #1206076 Reply to:1206062

reverse tunnel/vpn ครับ

By: hisoft
ContributorWindows PhoneWindows
on 19 April 2021 - 10:13 #1206099 Reply to:1206076
hisoft's picture

ขอบคุณครับ

By: big50000
AndroidSUSEUbuntu
on 18 April 2021 - 19:58 #1206050 Reply to:1206048
big50000's picture

เหมือนเอา CF มาเป็นหน้าด่านไว้ relay อารมณ์ประมาณ reverse proxy หรือ Tor relay

By: hisoft
ContributorWindows PhoneWindows
on 18 April 2021 - 20:54 #1206064 Reply to:1206050
hisoft's picture

จริงๆ คืออยากรู้กลไกตัวท่อน่ะครับ

By: big50000
AndroidSUSEUbuntu
on 18 April 2021 - 21:50 #1206065 Reply to:1206064
big50000's picture

พึ่งมาเห็นที่สงสัยของ tunnel ตัวนี้ผมยังไม่ทราบหลักการจริงของมัน แต่เท่าที่ผมเคยผ่านประสบการณ์เกี่ยวกับเน็ตเวิร์กระดับ data-link layer มันไม่ค่อยสำคัญเท่าไรว่าเราจะ tunnel ยังไง เพราะถ้าไม่ป้องกันกันที่ physical layer ยังไงแฮกเกอร์ก็เข้าถึงเราได้อยู่ดี ที่เหลือขึ้นอยู่กับว่าเราจะยอมคุยกันไหม ซึ่ง firewall/router จะเข้ามามีบทบาท ถ้ายอมคุยกันแล้ว เราจะคุยกันรู้เรื่องไหม ซึ่งตรงนี้พวก cert จะเข้ามามีบทบาท

ซึ่งหลักการของ Cloudflare ก็ไม่ได้ลงไปเกินระดับ data-link layer แค่คอนฟิก firewall ให้รับแพ็กเก็ตจา่ก Cloudflare เท่านั้น แล้วที่เหลือ Cloudflare จะจัดการ spoof ตัวเองเป็นตัวแทน client มาหาเราเอง ซึ่งทางเดียวที่จะโจมตีได้คือแฮกเกอร์ต้อง spoof ตัวเองให้เหมือน Cloudflare ให้ได้แค่นั้น แต่ทางเทคนิคแล้วมันทำยากมาก

By: hisoft
ContributorWindows PhoneWindows
on 18 April 2021 - 22:25 #1206069 Reply to:1206065
hisoft's picture

ขอบคุณครับ มีอีกเรื่องนึงที่ผมไม่ค่อยแน่ใจคือถ้า tunnel เปิดได้แล้วเราจะสามารถส่งข้อมูลย้อนทางกลับมาได้เต็มความเร็ว (หรือใกล้เคียง) มั๊ย สามารถส่งเมื่อไหร่ก็ได้ไหมต้องมี keep-alive รึเปล่าน่ะครับ

By: Noblesse
AndroidRed HatUbuntuWindows
on 18 April 2021 - 20:08 #1206053 Reply to:1206048
Noblesse's picture

เหมือน ngrok, Serveo, localhost.run

By: hisoft
ContributorWindows PhoneWindows
on 18 April 2021 - 20:53 #1206063 Reply to:1206053
hisoft's picture

จริงๆ ก็อยากรู้เทคนิคของแต่ละตัวที่ว่ามาด้วยแหละครับว่าตัวไหนเลือกท่าไหนกันบ้าง ?

By: deaw on 18 April 2021 - 23:13 #1206074 Reply to:1206048
deaw's picture

ลองดูท่าน
https://github.com/cloudflare/cloudflared

ตอนนี้ผมใช้ cloudflared แค่ทำ dns proxy DoH ยังไม่เคยลอง proxy local web นะ
ใครลองแล้วรีวิวหน่อย

By: hisoft
ContributorWindows PhoneWindows
on 19 April 2021 - 10:14 #1206101 Reply to:1206074
hisoft's picture

ขอบคุณครับ

By: IDCET
Contributor
on 19 April 2021 - 12:01 #1206123

ดูจากคำตอบด้านบนแล้ว การทำงานก็ซับซ้อนอยู่เหมือนกัน นึกว่าใช้ส่งข้อมูลผ่าน Layer 2 กับอ้างอิงต้นทางและปลายทางด้วย MAC Address ไม่ผ่าน IP เสียอีก


ความล้มเหลว คือจุดเริ่มต้นสู่ความหายนะ มีผลกระทบมากกว่าแค่เสียเงิน เวลา อนาคต และทรัพยากรที่เสียไป - จงอย่าล้มเหลว

By: boyphongsakorn on 19 April 2021 - 13:48 #1206136
boyphongsakorn's picture

อันนี้เราต้องผูก domain กับ cloudflare ก่อนถึงจะใช้ได้ใช่ไหมอ่าเนี่ย
หรือมี random domain เหมือน ngrok หรอ

By: blackdoor on 19 April 2021 - 17:02 #1206162
blackdoor's picture

ผมไปลองเล่นมาแล้ว เหมือน ngrok generate domain ให้
รองรับ 1,000 concurrent

ลง cloudflared ก่อน https://developers.cloudflare.com/argo-tunnel/downloads/

สั่งรัน (8080 by default)

$ cloudflared tunnel

แบบระบุ port

$ cloudflared tunnel --url localhost:8000

จะได้ url ประมาณนี้ https://random-name.trycloudflare.com

By: lew
FounderJusci's WriterMEconomicsAndroid
on 19 April 2021 - 18:59 #1206171 Reply to:1206162
lew's picture

โอ้ เจ๋ง นึกว่าต้องซื้อโดเมนไปวางใหม่เอง


lewcpe.com, @wasonliw