ถ้าเขาจะบล็อค หลบได้เขาก็บล็อค รู้จักกับ Telegram Proxy อาวุธที่ Telegram ใช้สู้กับทางการรัสเซีย

by lew
22 October 2020 - 19:21

แอปแชต Telegram มีชื่อเสียงขึ้นมาได้ส่วนหนึ่งจากการต่อสู้กับการบล็อคโดยทางการรัสเซียอยู่ถึงสองปีจนกระทั่งรัสเซียยุติการบล็อคไปในที่สุด และระหว่างช่วงที่ถูกบล็อคอัตราการใช้งาน Telegram ก็ไม่ได้ลดลงแต่อย่างใด

แม้ว่า Telegram จะไม่ใช่โปรแกรมวิเศษที่สามารถหลบเลี่ยงการบล็อคได้เหนือว่าโปรแกรมอื่นๆ แต่ก็เป็นแอปแชตที่มีแนวทางสนับสนุนการหลบเลี่ยงการบล็อคไว้หลากหลาย จากปกติที่ผู้ใช้ต้องอาศัย VPN ในการหลบเลี่ยงการบล็อค ซึ่งหาก VPN มีความเร็วในการเชื่อมต่อไม่ดี โดยเฉพาะหากต้องการใช้บริการในประเทศ ก็จะทำให้การใช้งานโทรศัพท์โดยรวมแย่ลง แต่ Telegram รองรับการ "มุดท่อ" ของตัวเองอีกสองช่องทาง คือ SOCKS5 proxy และ MT Proto Proxy ระบบพรอกซี่แบบพิเศษที่เปิดให้คนที่เข้ามาเชื่อมต่อใช้งาน Telegram ได้อย่างเดียว

SOCKS5 proxy นั้นสามารถสร้างได้โดยง่าย ที่สำคัญคือ ssh (secure shell) รองรับการทำ SOCKS5 proxy หากเราติดตั้ง ssh client บนเครื่องของเราเองแล้วเชื่อมต่อไปยังเซิร์ฟเวอร์ด้วยออปชั่น -D[หมายเลขพอร์ต] ก็จะได้ SOCKS proxy บนเครื่องของเราเองที่ทราฟิกจะมุดไปออกที่เซิร์ฟเวอร์ได้แล้ว ที่จริงแล้วเบราว์เซอร์ต่างๆ ก็มักรองรับ SOCKS5 กันทำให้มันเป็นตัวเลือกหนึ่งในการสร้างท่อหลบเลี่ยงการบล็อคเป็นรายแอป การใช้งานได้หลากหลายเช่นนี้แม้จะเป็นข้อดีแต่ก็อาจจะมองเป็นข้อเสียที่เราคงไม่ต้องการแชร์ SOCKS5 proxy กับคนอื่นนัก เพราะเขาอาจจะนำ proxy ไปใช้งานอะไรก็ได้

MT Proto Proxy (MTProxy) หรือ Telegram Proxy เป็นพรอกซี่เฉพาะสำหรับการเชื่อมต่อ Telegram เท่านั้น ทำให้คนจำนวนมากสะดวกใจที่จะติดตั้ง MTProxy แล้วแบ่งปันให้คนอื่นใช้งาน โดยทาง Telegram ปล่อย MTProxy ออกมาในเดือนพฤษภาคม 2018 หลังทางการรัสเซียสั่งบล็อค Telegram ไม่นานนัก หลังจากนั้นมีโครงการอื่นๆ อิมพลีเมนต์ Telegram Proxy ออกมาจำนวนมาก เช่น

  • mtprotoproxy โครงการภาษา Python 3
  • mtproto_proxy โครงการภาษา Erlang
  • mtg โครงการภาษา Go

Telegram Proxy มีฟีเจอร์สำหรับหลบเลี่ยงการตรวจสอบหลายประการ ได้แก่

  • โปรแกรมทั้งหมดนิยมรันบนพอร์ต 443 ให้เหมือนเป็นเว็บเซิร์ฟเวอร์
  • รหัสผ่าน (secret) สำหรับยืนยันว่าคนที่กำลังเชื่อมต่อรู้ว่ากำลังเชื่อมต่อกับ Telegram Proxy จริงๆ หากรหัสผ่านผิด หลายโครงการมีฟีเจอร์ส่งหน้าเว็บหลอกๆ ไปแทนเรียกว่า FakeTLS (ซ่อนใบไม้ต้องซ่อนในป่า)
  • ตัวไคลเอนต์ Telegram มีความสามารถในการเติมข้อมูล (padding) เพื่อให้ตรวจสอบจากขนาดแพ็กเก็ตได้ยากว่าเป็นการเชื่อมต่อ Telegram

การติดตั้ง Telegram Proxy

MTProxy ของ Telegram เองไม่มีแจกเป็นไบนารีแต่แจกเป็นอิมเมจ Docker แทน หากเซิร์ฟเวอร์เพิ่งเปิดมาใหม่อาจจะต้องติดตั้ง docker ก่อน ด้วยคำสั่ง sudo apt install docker.io (สำหรับ Ubuntu) จากนั้นเราสามารถรันอิมเมจด้วยคำสั่ง

docker run -d -p443:443 --name=mtproto-proxy --restart=always -v proxy-config:/data telegrammessenger/proxy:latest

และเปิดดูข้อมูลคอนฟิกด้วยคำสั่ง docker logs mtproto-proxy จะเห็นข้อมูลใกล้เคียงคามนี้

####
#### Telegram Proxy
####

[+] No secret passed. Will generate 1 random ones.
[*] Final configuration:
[*] Secret 1: af7160d1f251268c9c89eca69c555dcd
[*] tg:// link for secret 1 auto configuration: tg://proxy?server=128.199.157.252&port=443&secret=af7160d1f251268c9c89eca69c555dcd
[*] t.me link for secret 1: https://t.me/proxy?server=128.199.157.252&port=443&secret=af7160d1f251268c9c89eca69c555dcd
[*] Tag: no tag
[*] External IP: 128.199.157.252
[*] Make sure to fix the links in case you run the proxy on a different port.

[+] Starting proxy...

สังเกตว่าเราจะได้ URL มาสองแบบได้แก่

  • tg://proxy?server=128.199.157.252&port=443&secret=af7160d1f251268c9c89eca69c555dcd สำหรับส่งทางแชต Telegram เอง
  • https://t.me/proxy?server=128.199.157.252&port=443&secret=af7160d1f251268c9c89eca69c555dcd สำหรับส่งช่องทางอื่นๆ

เมื่อผู้ใช้คลิกลิงก์นี้ ตัวแอป Telegram จะแสดงข้อมูลและถามว่าต้องการเชื่อมต่อกับพรอกซี่นี้หรือไม่ เพียงแค่กดเชื่อมต่อก็ใช้งานต่อไปได้ทันที

ภาพหน้าจอยืนยันเชื่อมต่อพรอกซี่หลังกดลิงก์

หน้าจอรายการพรอกซี่ที่ใช้งานอยู่

Telegram เองมีโครงสร้างรองรับการวางพรอกซี่หลายอย่าง โดยเฉพาะ API สำหรับการดึงไอพีที่ใช้เชื่อมต่อ เฉพาะไอพีที่ทาง Telegram เปิดเผยผ่าน API ก็มีนับ 10 ไอพี ไม่ใช่เพียงแค่ 4 ไอพีอย่างที่มีความพยายามบล็อค แม้ตอนนี้กระบวนการบล็อคยังไม่เป็นผลนักแต่หากมีความพยายามมากกว่านี้ก็จะทำให้เราเชื่อมต่อไม่ได้บางช่วงจนกว่าทาง Telegram หลบหลีกไอพีให้ กลายเป็นเกมแมวจับหนูระหว่างรัฐบาลกับ Telegram การใช้พรอกซี่จึงน่าจะเป็นทางออกที่ดีกว่าในระยะยาวเพื่อการเชื่อมต่ออย่างต่อเนื่องต่อไป

ส่งท้าย เซิร์ฟเวอร์, รหัสผ่าน, และ URL ทั้งหมดในบทความนี้ไม่สามารถใช้งานได้แล้ว

Blognone Jobs Premium