Home Kiến Thức Hướng dẫn truy cập Telegram bằng cách cài đặt MTPROTO

Hướng dẫn truy cập Telegram bằng cách cài đặt MTPROTO

by haduyson

MTProto (Mobile Transport Protocol) là một giao thức truyền tải dữ liệu được Telegram phát triển, tập trung vào tốc độ, bảo mật và khả năng hoạt động trên các kết nối kém ổn định. Nó được thiết kế để tối ưu hóa việc giao tiếp giữa ứng dụng Telegram trên thiết bị di động và máy chủ của Telegram.

Các đặc điểm chính của MTProto:

  • Tốc độ: Ưu tiên tốc độ truyền tải dữ liệu.
  • Bảo mật: Sử dụng các thuật toán mã hóa mạnh mẽ (AES-256, RSA-2048, Diffie-Hellman key exchange).
  • Độ tin cậy: Được thiết kế để hoạt động tốt ngay cả trên các kết nối internet không ổn định.
  • Khả năng mở rộng: Dễ dàng xử lý lượng lớn người dùng và dữ liệu.

MTProto thường được biết đến và sử dụng trong bối cảnh:

  • Ứng dụng Telegram: Là giao thức cốt lõi cho các ứng dụng Telegram chính thức và không chính thức để giao tiếp với máy chủ Telegram.
  • MTProto Proxy: Một tính năng cho phép người dùng Telegram kết nối thông qua các máy chủ proxy do cộng đồng hoặc chính Telegram cung cấp, giúp vượt qua các chặn hoặc hạn chế truy cập.

Yêu cầu

Hướng dẫn cài đặt

Bước 1: Tải Docker Image

Trước tiên, bạn cần tải image mtproxy từ github. Mở terminal và chạy lệnh sau:

git clone https://github.com/TelegramMessenger/MTProxy.git

Lệnh này sẽ tải phiên bản mới nhất của MTProxy về máy chủ của bạn.

Bước 2: Cài thư viện cho ENV (môi trường ảo) để chạy MTProxy

Kích hoạt môi trường ảo: 

source venv/bin/activate

Chuyển đến Folder MTProxy

cd MTProxy

Cài đặt thư viện cần thiết để chạy MTProxy

pip install pycryptodome pyaes

Bước 3: Chạy MTProxy để kiểm tra

Để thử nghiệm nhanh, bạn có thể chạy container MTProxy mà không cần lưu trữ cấu hình lâu dài. Sử dụng lệnh sau:

docker run -it --rm -p 443:443 mtproxy/mtproxy

Chú thích:

  • -it: Chạy container ở chế độ tương tác.
  • –rm: Xóa container sau khi thoát.
  • -p 443:443: Ánh xạ cổng 443 của máy chủ đến cổng 443 của container.

Sau khi chạy, container sẽ tự động tạo một secret ngẫu nhiên (mã bí mật) và hiển thị trong log. Log sẽ chứa các thông tin quan trọng như:

  • Secret: Mã bí mật để cấu hình proxy.
  • tg:// link: Liên kết để cấu hình proxy trực tiếp trong ứng dụng Telegram.
  • t.me link: Liên kết để chia sẻ proxy qua Telegram.
  • External IP: Địa chỉ IP công cộng của máy chủ.

Lưu ý: Nếu bạn sử dụng cổng khác 443, bạn cần chỉnh sửa liên kết tg:// hoặc t.me để phản ánh đúng cổng đã chọn.

Ví dụ output log:

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

Sao chép liên kết tg:// hoặc t.me và dán vào ứng dụng Telegram để cấu hình proxy.

Bước 4: Chạy MTProxy ở chế độ Daemon

Để triển khai MTProxy lâu dài và tự động khởi động lại khi máy chủ hoặc Docker khởi động lại, sử dụng lệnh sau:

docker run -d -p 443:443 --name=mtproxy --restart=always -v mtproxy:/data mtproxy/mtproxy

Giải thích:

  • -d: Chạy container ở chế độ nền (daemon).
  • –name=mtproxy: Đặt tên cho container là mtproxy.
  • –restart=always: Tự động khởi động lại container khi máy chủ hoặc Docker restart.
  • -v mtproxy:/data: Lưu trữ secret và cấu hình trong volume mtproxy để đảm bảo dữ liệu không bị mất khi container khởi động lại.

Sau khi chạy, kiểm tra log để lấy liên kết cấu hình Telegram:

docker logs -f mtproxy

Sao chép liên kết tg:// hoặc t.me từ log và sử dụng trong ứng dụng Telegram.

Hướng dẫn tạo cron job để tự động cập nhật danh sách IP của Telegram Core Server

Telegram khuyến nghị khởi động lại container mỗi ngày để cập nhật danh sách IP của Telegram core servers. Bạn có thể thiết lập cron job để tự động hóa theo hướng dẫn sau:

1. Xác định múi giờ của hệ thống:

Đảm bảo rằng hệ thống mà bạn đang chạy Docker có múi giờ được đặt đúng là giờ Việt Nam (Asia/Ho_Chi_Minh hoặc GMT+7). Bạn có thể kiểm tra bằng lệnh sau:

timedatectl

Nếu múi giờ không đúng, bạn có thể thay đổi nó (cần quyền sudo):

sudo timedatectl set-timezone Asia/Ho_Chi_Minh

2. Mở crontab để chỉnh sửa:

Sử dụng lệnh sau để mở trình soạn thảo crontab cho người dùng hiện tại:

crontab -e

Nếu đây là lần đầu tiên bạn chỉnh sửa crontab, hệ thống có thể hỏi bạn muốn sử dụng trình soạn thảo nào (ví dụ: nano, vim). Chọn một trình soạn thảo mà bạn quen thuộc.

3. Thêm cron job:

Trong trình soạn thảo, thêm dòng sau vào cuối file để lên lịch chạy lệnh docker restart mtproxy vào lúc 3h sáng hàng ngày:

0 3 * * * docker restart mtproxy

Giải thích các trường trong dòng cron job:

  • 0: Phút (0-59). Ở đây là phút thứ 0 của giờ.
  • 3: Giờ (0-23). Ở đây là 3 giờ sáng (bạn có thể thay đổi thời gian cần restart theo nhu cầu của cá nhân).
  • *: Ngày trong tháng (1-31). Dấu * có nghĩa là mọi ngày.
  • *: Tháng (1-12). Dấu * có nghĩa là mọi tháng.
  • *: Ngày trong tuần (0-6, Chủ nhật=0 hoặc 7). Dấu * có nghĩa là mọi ngày trong tuần.
  • docker restart mtproxy: Lệnh sẽ được thực thi.

4. Lưu và đóng file crontab:

Sau khi thêm dòng trên, hãy lưu và đóng file crontab. Các bước lưu và đóng tùy thuộc vào trình soạn thảo bạn đang sử dụng:

  • nano: Nhấn Ctrl + X, sau đó nhấn Y để xác nhận lưu và Enter.
  • vim: Nhấn Esc, sau đó gõ :wq và nhấn Enter.

5. Kiểm tra cron job (tùy chọn):

Bạn có thể kiểm tra xem cron job đã được thêm vào hay chưa bằng lệnh:

crontab -l

Lệnh này sẽ hiển thị danh sách các cron job đã được lên lịch cho người dùng hiện tại. Bạn sẽ thấy dòng 0 3 * * * docker restart mtproxy trong danh sách.

Lưu ý quan trọng:

  • Quyền: Đảm bảo rằng người dùng mà bạn đang thiết lập cron job có quyền thực thi lệnh docker. Nếu không, bạn có thể cần sử dụng sudo docker restart mtproxy trong cron job, nhưng điều này thường không được khuyến khích vì lý do bảo mật. Thay vào đó, hãy đảm bảo người dùng thuộc nhóm docker.

  • Đường dẫn đầy đủ (tùy chọn nhưng khuyến khích): Mặc dù trong hầu hết các trường hợp, docker đã nằm trong biến $PATH của cron, để đảm bảo chắc chắn, bạn có thể sử dụng đường dẫn đầy đủ đến lệnh docker. Bạn có thể tìm đường dẫn bằng lệnh which docker. Ví dụ, nếu đường dẫn là /usr/bin/docker, thì dòng cron job sẽ là:

0 3 * * * /usr/bin/docker restart mtproxy

Bài viết có sử dụng 1 phần tư liệu từ blog dotrungquan.info

Có thể bạn muốn xem

Leave a Comment