Triển khai MTProxy Telegram của bạn với số liệu thống kê

Triển khai MTProxy Telegram của bạn với số liệu thống kê

"Tôi thừa hưởng mớ hỗn độn này,
bắt đầu với Zello không biết xấu hổ; LinkedIn
và kết thúc bằng "mọi người khác" trên nền tảng Telegram
trong thế giới của tôi.

Rồi nấc cụt,
Vị quan vội vàng nói thêm:
nhưng tôi sẽ sắp xếp mọi thứ theo thứ tự (ở đây trong CNTT)"
(...).

Durov, tin một cách đúng đắn rằng chính các quốc gia độc tài mới nên sợ hãi anh ta, một cypherpunk, Roskomnadzor và những chiếc khiên vàng với bộ lọc DPI của họ không thực sự khiến anh ta bận tâm.
(Kỹ thuật chính trị)

Chính sách kỹ thuật của tôi đơn giản hơn, tôi có thể mô tả ở đây suy nghĩ của mình về việc chặn bất cẩn trong Runet, nhưng tôi tin rằng những công dân tiến bộ của người dùng tiếng Nga hiện đại và người dùng Habr đã cảm nhận được sự thiếu chuyên nghiệp của chính phủ hiện tại trong chính làn da của họ, vì vậy tôi sẽ giới hạn bản thân trong phạm vi một cụm từ duy nhất: chính sách kỹ thuật của chúng tôi là “Kháng chiến kỹ thuật số” . "cung cấp cho người thân và bạn bè một kênh liên lạc ổn định."

Triển khai MTProto proxy Telegram

  • Mức độ phức tạp về mặt kỹ thuật là “dễ dàng”, chẳng hạn nếu bạn làm theo bảng cheat này.
  • Mức độ tin cậy là “trên mức trung bình”: hình ảnh docker hoạt động ổn định, nó không cần phải khởi động lại hàng ngày, như các nhà phát triển đã viết trong tài liệu Telegram chính thức của họ, nhưng bộ chứa có thể chứa một số lỗ hổng.
  • Mức độ phản kháng / lo lắng - 10 thành viên ISIS thêu dệt âm mưu "lợi dụng người thân", lệnh cấm không đến từ RKN dù chỉ một lần trong suốt thời gian (kể từ mùa xuân).
  • Mức độ tin cậy là "sự mất lòng tin của công chúng", một vấn đề ở phía khách hàng (một số người bạn nghi ngờ MtprotoProxy của tôi).
  • Mức testosterone - "không cao hơn."
  • Chi phí tài chính - "0₽".
  • Phần thưởng tài chính - "không phụ thuộc vào công dân Durov." Khuyến mãi - khả năng áp đặt quảng cáo.

Chúng tôi sẽ nâng cấp TelegramProxy của mình lên khả năng “miễn phí / cá nhân” của Amazon-ec2: t2.micro. tôi đã sử dụng điều này xe ô tô.

Được rồi, đã triển khai máy chủ miễn phí của bạn, hãy truy cập trang web chính thức dockerhub và tải xuống bộ chứa docker.

Không cần tìm kiếm một số hình ảnh, tệp hoặc nút ma thuật - "chúng không có ở đó", tất cả điều kỳ diệu được thực hiện trong CLI:

$ docker pull telegrammessenger/proxy #образ скачан.

Nhưng trước khi làm "chuyện ấy", hãy cài đặt docker cho CLI:

sudo apt-get install docker.io docker

Hơn nữa, trong tài liệu chính thức của MtprotoProxyTelegram, chúng tôi được đề nghị làm một số việc như sau, chúng tôi thực hiện:

$ sudo su && docker run -d -p443:443 --name=mtproto-proxy --restart=always -v proxy-config:/data telegrammessenger/proxy:latest #запускаем наш контейнер «mtproto-proxy».

Sau lệnh này, một chuỗi HEX sẽ xuất hiện ở đầu ra của thiết bị đầu cuối, nhưng chúng tôi không quan tâm đến nó.

Chúng tôi viết trong CLI:

$ docker logs mtproto-proxy

Và chúng tôi nhận được dữ liệu cần thiết:

Triển khai MTProxy Telegram của bạn với số liệu thống kê
Trong đầu ra của nhật ký này, chúng tôi được hiển thị (bôi bẩn):

A) ip máy chủ của chúng tôi (ip máy chủ bên ngoài);
B) và một bí mật ngẫu nhiên - một chuỗi ngẫu nhiên trong HEX.

Trước khi đăng ký MtproProxy của chúng tôi, bạn cần định cấu hình tường lửa chính qua iptables (bất kể bạn chuyển hướng lưu lượng truy cập đến VPC này như thế nào, điều đó sẽ rất tệ, vì tường lửa chính trong Amazon-EC2 nằm trong giao diện web và có mức độ ưu tiên cao hơn iptables ).

Chúng tôi đến "bảng điều khiển Amazon-EC2" trong Nhóm bảo mật và mở cổng đến 443 (mặt nạ logic giao thông lần đầu tiên).

Triển khai MTProxy Telegram của bạn với số liệu thống kê

Chúng tôi lấy dữ liệu “ip và bí mật” của mình từ nhật ký và truy cập trình nhắn tin Telegram, tìm Bot quản trị MTProxy chính thức (@MTProxybot) và đăng ký MtproProxy của chúng tôi: chạy lệnh [/newproxy] và nhập [our_ip:443], và sau đó là [bí mật /HEX] của chúng tôi.

Nếu bạn làm lộn xộn khi nhập dữ liệu, bot sẽ tức giận và gửi bạn đến ...

Nếu bạn điền vào hai dòng mà không có lỗi, bạn sẽ nhận được sự chấp thuận và một liên kết hoạt động tới MtprotoProxyTelegram hiện tại của bạn, bạn có thể chia sẻ liên kết này với bất kỳ ai.

Triển khai MTProxy Telegram của bạn với số liệu thống kê

Ngoài ra, thông qua bot này, bạn có thể thêm kênh tài trợ của mình (chứ không phải trò chuyện), nơi bạn sẽ áp đặt quan điểm của mình lên những người dùng đã kết nối với máy chủ của bạn hoặc bạn không thể "spam" và không làm phiền khách hàng tiềm năng của mình nếu không có hiển thị kênh trong danh sách nhắn tin được ghim.

Nói thêm vài lời về bot, bạn có thể yêu cầu số liệu thống kê ở đó, nhưng “cũng là một chiếc bánh rán”. Rõ ràng, "số liệu thống kê" có sẵn khi có một "đám đông kẻ ăn bám" đằng sau bạn Makhachkala.

Giám sát

Chúng tôi có thể kết nối bao nhiêu người dùng với máy chủ của mình? Và dù sao, ai / cái gì ở đó? Cái gì? Và bao nhiêu?

Chúng tôi xem xét những gì ở đó theo tài liệu chính thức ... Vâng, đây, hãy làm như thế này:

$ curl http://localhost:2398/stats или вот так $ docker exec mtproto-proxy curl http://localhost:2398/stats # и нам выдадут статистику прямо в CLI.

“Giữ túi của bạn rộng hơn” Theo các lệnh được đề xuất, chúng tôi sẽ luôn nhận được một lỗi tương tự:

«curl: (7) Không thể kết nối với cổng localhost 2398: Kết nối bị từ chối»

Proxy của chúng tôi sẽ hoạt động. Nhưng! Bagel, không phải số liệu thống kê chúng tôi nhận được.

Bạn có thể làm mọi thứ cho người mắt đỏ: kiểm tra

$ netstat -an | grep 2398 и...

Lúc đầu, tôi nghĩ rằng đây là một trở ngại khác đằng sau các nhà phát triển Telegram (và tôi vẫn nghĩ như vậy), sau đó tôi tìm thấy một giải pháp tốt tạm thời: đánh bóng Docker Container bằng một tệp.

Sau đó, một thông tin lọt vào mắt tôi:

về các điệu nhảy của bang Roskomnadzor xung quanh "số liệu thống kê".

“Chúng tôi đã chặn một số proxy công khai trên máy chủ của mình bằng cách sử dụng cơ sở dữ liệu của dự án firehol. Dự án này giám sát các danh sách có proxy công cộng và tạo cơ sở dữ liệu với chúng.

Kể từ thời điểm đó (tức là đã gần hai ngày rồi), không một địa chỉ IP nào của proxy Nga của chúng tôi bị chặn.

3. Рассказываем, как сделать почти неуязвимый для Роскомнадзора прокси и делимся скриптом блокировки публичных прокси.

- Cập nhật bộ chứa docker proxy MTProto (hoặc daemon) lên phiên bản mới nhất: RKN tính toán các phiên bản cũ theo cổng thống kê, được liên kết với 0.0.0.0 và được nhận dạng duy nhất cho toàn bộ Internet. Tốt hơn hết, hãy mở các cổng cần thiết bằng iptables và đóng phần còn lại (hãy nhớ rằng trong trường hợp bộ chứa docker, bạn nên sử dụng quy tắc FORWARD).

— Roskomnadzor đã học cách kết xuất lưu lượng truy cập từ lâu: họ thấy các yêu cầu bên trong proxy HTTP và SOCKS5, đồng thời họ cũng thấy phiên bản cũ của quá trình che giấu proxy MTProto.

Khi khách hàng của một số nhà cung cấp đã cài đặt các bãi như vậy truy cập Telegram thông qua các proxy như vậy, RKN sẽ thấy các yêu cầu như vậy và ngay lập tức chặn các proxy này. Điều tương tự cũng xảy ra với proxy MTProto với kỹ thuật che giấu cũ.

Giải pháp: chỉ phân phối bí mật với dd ngay từ đầu cho các máy khách kết nối với proxy (không cần chỉ định thêm các chữ cái dd trong cài đặt của chính proxy mtproto). Điều này sẽ kích hoạt một phiên bản che giấu mà các gói kết xuất không thể phát hiện được.

Và không có proxy HTTP hoặc SOCKS5.

- Điều chỉnh, với sự trợ giúp của mỗi chủ sở hữu proxy điện tín, người thường xuyên bị RKN cấm, có thể hoàn toàn (hoặc gần như hoàn toàn) ngừng chặn (đồng thời đảm bảo rằng RKN đang nói dối).

Một tập lệnh cấm các proxy công khai và một hướng dẫn nhỏ về nó.

Nguồn

Proxy của chúng tôi thân phương Tây, tôi không gặp phải bất kỳ sự cố / tắc nghẽn nào trong suốt mùa xuân và những ngày hè mát mẻ, nó cũng không thu hút một nhiệm vụ sáng tạo nào, vì vậy tôi đã không mất tốc độ và không thêm tiền tố dd* vào chìa khóa.

Hướng dẫn "lấy số liệu thống kê/giám sát" theo hướng dẫn chính thức của MtprotoProxyTelegram không hoạt động/lỗi thời, bạn sẽ phải sửa chữa hình ảnh docker.

Chúng tôi sửa chữa nó.

Vùng chứa vẫn đang chạy:

$ docker stop mtproto-proxy #останавливаем наш запущенный docker-контейнер и запускаем новый образ с пропущенным флагом статистики

$ docker run --net=host --name=mtproto-proxy2 -d -p443:443 -v proxy-config:/data -e SECRET=ваш_предыдущий_секрет_hex telegrammessenger/proxy:latest

Hãy kiểm tra số liệu thống kê:

$ curl http://localhost:2398/stats

curl: (7) Không thể kết nối với cổng 0.0.0.0 2398: Kết nối bị từ chối
Thống kê vẫn chưa có.!..

Tìm ra ID của docker container:

$ docker ps

CONTAINER ID HÌNH ẢNH LỆNH ĐƯỢC TẠO TÊN CỔNG TRẠNG THÁI TÊN
f423c209cfdc telegrammessenger/proxy:latest "/bin/sh -c '/bin/ba…" Khoảng một giờ trước Lên Khoảng một phút 0.0.0.0:443->443/tcp mtproto-proxy2

Chúng tôi đi với điều lệ của chúng tôi bên trong container docker:

$ sudo docker exec -it f423c209cfdc /bin/bash

$ apt-get update
$ apt-get install nano
$ nano -$ run.sh

Và trong dòng cuối cùng của tập lệnh "run.sh", hãy thêm cờ bị thiếu:

«--http-thống kê»
"exec /usr/local/bin/mtproto-proxy -p 2398 -H 443 -M "$WORKERS" -C 60000 --aes-pwd /etc/telegram/hello-explorers-how-are-you-doing -u root $CONFIG --allow-skip-d h --nat-info "$INTERNAL_IP:$IP" $SECRET_CMD $TAG_CMD"

Thêm "--http-stats", một cái gì đó như thế này sẽ hoạt động:

«exec /usr/local/bin/mtproto-proxy -p 2398 --http-stats -H 443 -M "$WORKERS" -C 60000 --aes-pwd /etc/telegram/hello-explorers-how-are-you-doing -u root $CONFIG --allow-skip-d h --nat-info "$INTERNAL_IP:$IP" $SECRET_CMD $TAG_CMD»

Ctrl+o/Ctrl+x/Ctrl+d (lưu/thoát nano/thoát vùng chứa).

Khởi động lại bộ chứa docker của chúng tôi:

$ docker restart mtproto-proxy2

Tất cả mọi thứ, bây giờ theo lệnh:

$ curl http://localhost:2398/stats #получаем объемную статистику

Triển khai MTProxy Telegram của bạn với số liệu thống kê
Có rất nhiều "rác" trong số liệu thống kê (1/3 trong số đó là trên màn hình), hãy tạo bí danh:

$ echo "alias telega='curl localhost:2398/stats | grep -e total_special -e load_average_total'" >> .bashrc && bash

Chúng tôi nhận được những gì bộ chứa docker đã được đánh bóng: số lượng kết nối và tải:

$ telega

Triển khai MTProxy Telegram của bạn với số liệu thống kê
Vùng chứa Docker đang chạy, số liệu thống kê đang quay.

Tài nguyên đã sử dụng

Dù bạn rất tuyệt, Stuart Redman, ngay cả khi bạn để lại dấu vết trên quần lót của mình. Hình ảnh Docker đang chạy để lại dấu vết lớn.

Thật vô nghĩa khi mô tả những ưu điểm và nhược điểm của hình ảnh docker, bộ chứa docker là một máy ảo nhỏ tiêu thụ ít tài nguyên hơn một máy ảo “thực”, chẳng hạn như VirtualBox, nhưng nó có.

1) Được khởi chạy có hoặc không có thống kê hình ảnh docker, hai máy khách vui đùa hoặc mười tài nguyên được sử dụng ~ theo cùng một cách: 75% toàn bộ hiệu suất t2.micro của CPU.

2) Chúng tôi xem xét việc giám sát máy chủ VPC:

Triển khai MTProxy Telegram của bạn với số liệu thống kê

Từ biểu đồ sử dụng tài nguyên trên VPC, chúng tôi thấy rằng bộ chứa docker liên tục tiêu thụ ~ 7,5% tổng dung lượng tối đa. Hiệu suất CPU và vào ngày 28 tháng XNUMX đã bị tôi cố ý/tạm thời dừng lại (Lưu ý - OpenVPN & pptp cũng đang chạy trên máy chủ).

Tại sao mức sử dụng CPU không đổi 10% là giới hạn cho máy chủ này?

Bởi vì có những hạn chế từ Amazon EC2 và chúng được tính bằng tín dụng:

Triển khai MTProxy Telegram của bạn với số liệu thống kê

1 tín dụng CPU = 1 CPU hoạt động ở mức tải 100% trong một phút và chúng tôi có 6 tín dụng (nghĩa là ở mức cao nhất, có thể sử dụng 100% CPU trong vòng 6 phút và sau đó công suất CPU sẽ giảm). Các kết hợp khác: ví dụ: 1 tín dụng CPU = 1 CPU chạy ở mức tải 50% trong hai phút (tức là chúng ta có thể sử dụng CPU ở mức tải 50% trong 12 phút) hoặc, ví dụ: tải CPU liên tục 10% trong suốt thời gian toàn bộ thời gian, vv

Những phát hiện

  • Chúng tôi là một phần của "Kháng chiến kỹ thuật số". Cung cấp cho "cha, mẹ" của họ một kênh liên lạc đáng tin cậy.
  • Nếu bạn đã triển khai MtprotoProxyTelegram và OpenVPN trên máy chủ, nhưng không còn nữa, thì sẽ không có độ trễ / ping / lỗi, nhưng nếu bạn liên tục thử nghiệm với t2 / micro của mình, thì hãy đợi quá trình hãm liên lạc.
  • Tốc độ ping ở nước ngoài của tôi là ~100-250 mili giây, không có độ trễ trong giao tiếp bằng giọng nói.
  • Chi phí tài chính cho tất cả "cái này" (bao gồm cả tài nguyên VPC) = 0₽.

In lại bài viết của bạn.

CẬP NHẬT: Thực sự, cảm ơn một số người dùng habrauser vì những nhận xét hữu ích, thực sự là có thể (số liệu thống kê có được hỗ trợ không?), Có những hình ảnh tương tự tốt hơn của hình ảnh docker Telegram ủy quyền Mtproto chính thức.

Nguồn: www.habr.com

Thêm một lời nhận xét