ืคืจื™ืกืช ื˜ืœื’ืจื ื”-MTProxy ืฉืœืš ืขื ื ืชื•ื ื™ื ืกื˜ื˜ื™ืกื˜ื™ื™ื

ืคืจื™ืกืช ื˜ืœื’ืจื ื”-MTProxy ืฉืœืš ืขื ื ืชื•ื ื™ื ืกื˜ื˜ื™ืกื˜ื™ื™ื

"ื™ืจืฉืชื™ ืืช ื”ื‘ืœื’ืŸ ื”ื–ื”,
ื”ื—ืœ ื‘ื–ืœื• ื—ืกืจ ื”ื‘ื•ืฉื”; ืœื™ื ืงื“ืื™ืŸ
ื•ื›ืœื” ื‘"ื›ื•ืœื" ื‘ืคืœื˜ืคื•ืจืžืช ื”ื˜ืœื’ืจื
ื‘ืขื•ืœื ืฉืœื™.

ื•ืื– ืฉื™ื”ืง,
ื”ืคืงื™ื“ ื”ื•ืกื™ืฃ ื‘ื—ื™ืคื–ื•ืŸ ื•ื‘ืงื•ืœ ืจื:
ืื‘ืœ ืื ื™ ืืขืฉื” ืกื“ืจ ื‘ื“ื‘ืจื™ื (ื›ืืŸ ื‘-IT)"
(...).

ื“ื•ืจื•ื‘, ืกื‘ื•ืจ ื‘ืฆื“ืง ืฉืžื“ื™ื ื•ืช ืื•ื˜ื•ืจื™ื˜ืจื™ื•ืช ื”ืŸ ืฉืฆืจื™ื›ื•ืช ืœืคื—ื“ ืžืžื ื•, ืกื™ื™ืคืจืคืื ืง, ื•ืจื•ืกืงื•ืžื ื“ื–ื•ืจ ื•ืžื’ื ื™ ื–ื”ื‘ ืขื ืžืกื ื ื™ ื”-DPI ืฉืœื”ื ืœื ืžืžืฉ ืžืคืจื™ืขื™ื ืœื•.
(ื˜ื›ื ื™ืงื” ืคื•ืœื™ื˜ื™ืช)

ื”ืžื“ื™ื ื™ื•ืช ื”ื˜ื›ื ื™ืช ืฉืœื™ ืคืฉื•ื˜ื” ื™ื•ืชืจ, ืื ื™ ื™ื›ื•ืœ ืœืชืืจ ื›ืืŸ ืืช ืžื—ืฉื‘ื•ืชื™ื™ ืขืœ ื—ืกื™ืžื” ืจืฉืœื ื™ืช ื‘-Runet, ืื‘ืœ ืื ื™ ืžืืžื™ืŸ ืฉื”ืื–ืจื—ื™ื ื”ืžืชืงื“ืžื™ื ืฉืœ ืžืฉืชืžืฉื™ ืจื•ืกื™ืช ืžื•ื“ืจื ื™ืช ื•ื”ื‘ืจ ื—ืฉื• ืืช ื—ื•ืกืจ ื”ืžืงืฆื•ืขื™ื•ืช ืฉืœ ื”ืžืžืฉืœื” ื”ื ื•ื›ื—ื™ืช ื‘ืขื•ืจื ืฉืœื”ื, ืื– ืื ื™ ืื’ื‘ื™ืœ ืืช ืขืฆืžื™ ืœ ื‘ื™ื˜ื•ื™ ืื—ื“: ื”ืžื“ื™ื ื™ื•ืช ื”ื˜ื›ื ื™ืช ืฉืœื ื• ื”ื™ื "ื”ืชื ื’ื“ื•ืช ื“ื™ื’ื™ื˜ืœื™ืช". "ืœืกืคืง ืœืงืจื•ื‘ื™ื ื•ืœื—ื‘ืจื™ื ืขืจื•ืฅ ืชืงืฉื•ืจืช ื™ืฆื™ื‘".

ืคืจื™ืกืช MTProto Proxy Telegram

  • ืจืžืช ื”ืžื•ืจื›ื‘ื•ืช ื”ื˜ื›ื ื™ืช ื”ื™ื "ืงืœื”", ืื, ืœืžืฉืœ, ืืชื” ืขื•ืงื‘ ืื—ืจ ื“ืฃ ื”ืฆ'ื™ื˜ ื”ื–ื”.
  • ืจืžืช ื”ืืžื™ื ื•ืช ื”ื™ื "ืžืขืœ ื”ืžืžื•ืฆืข": ืชืžื•ื ืช ื”-docker ืขื•ื‘ื“ืช ื‘ื™ืฆื™ื‘ื•ืช, ืื™ืŸ ืฆื•ืจืš ืœื”ืคืขื™ืœ ืื•ืชื” ืžื—ื“ืฉ ื›ืœ ื™ื•ื, ื›ืคื™ ืฉื›ืชื‘ื• ื”ืžืคืชื—ื™ื ื‘ืชื™ืขื•ื“ ื”ืจืฉืžื™ ืฉืœ ื”ื˜ืœื’ืจื, ืืš ื”ืžื›ื•ืœื” ืžื›ื™ืœื” ื›ื ืจืื” ื›ืžื” ื ืงื•ื“ื•ืช ืชื•ืจืคื”.
  • ืจืžืช ื”ื”ืชื ื’ื“ื•ืช / ื”ื—ืจื“ื” - 10 ืื ืฉื™ ื“ืืขืฉ ื˜ื•ื•ื™ื ืืช ื”ืงื•ื ืกืคื™ืจืฆื™ื•ืช ืฉืœื”ื "ืžืฉืชืžืฉื™ื ืงืจื•ื‘ื™ ืžืฉืคื—ื”", ื”ืื™ืกื•ืจ ืœื ื”ื’ื™ืข ืžื”ืจืง"ืŸ ืืคื™ืœื• ืคืขื ืื—ืช ื›ืœ ื”ื–ืžืŸ (ืžืื– ื”ืื‘ื™ื‘).
  • ืจืžืช ื”ืืžื•ืŸ ื”ื™ื "ืื™-ืืžื•ืŸ ืชื™ื ื•ืง ืฆื™ื‘ื•ืจื™", ื‘ืขื™ื” ื‘ืฆื“ ื”ืœืงื•ื— (ื—ืœืง ืžื”ื—ื‘ืจื™ื ื—ื•ืฉื“ื™ื ื‘-MtprotoProxy ืฉืœื™).
  • ืจืžื•ืช ื”ื˜ืกื˜ื•ืกื˜ืจื•ืŸ โ€“ "ืœื ืขืœื• ื’ื‘ื•ื”ื•ืช ื™ื•ืชืจ".
  • ืขืœื•ื™ื•ืช ื›ืกืคื™ื•ืช - "0โ‚ฝ".
  • ืชื’ืžื•ืœ ื›ืกืคื™ - "ืœื ืชืœื•ื™ ื‘ืื–ืจื— ื“ื•ืจื•ื‘". ืงื™ื“ื•ื - ื”ื™ื›ื•ืœืช ืœื›ืคื•ืช ืคืจืกื•ื.

ืื ื• ื ืขืœื” ืืช TelegramProxy ืฉืœื ื• ืขืœ ื”ื™ื›ื•ืœื•ืช "ื—ื™ื ื / ืื™ืฉื™ื•ืช" ืฉืœ Amazon-ec2: t2.micro. ื”ืฉืชืžืฉืชื™ ื–ื” ืื•ื˜ื•.

ืื•ืงื™ื™, ืคืจืกื• ืืช ื”ืฉืจืช ื”ื—ื™ื ืžื™ ืฉืœื›ื, ืขื‘ื•ืจ ืืœ ื”ืืชืจ ื”ืจืฉืžื™ dockerhub ื•ืœื”ื•ืจื™ื“ ืืช ื”ืงื•ื ื˜ื™ื™ื ืจ ืฉืœ docker.

ืื™ืŸ ืฆื•ืจืš ืœื—ืคืฉ ืื™ื–ื” ืชืžื•ื ื”, ืงื•ื‘ืฅ ืื• ื›ืคืชื•ืจ ืงืกื - "ื”ื ืœื ืฉื", ื›ืœ ื”ืงืกื ื ืขืฉื” ื‘-CLI:

$ docker pull telegrammessenger/proxy #ะพะฑั€ะฐะท ัะบะฐั‡ะฐะฝ.

ืื‘ืœ ืœืคื ื™ "ื–ื”", ื”ืชืงืŸ ืืช docker ืขื‘ื•ืจ CLI:

sudo apt-get install docker.io docker

ื™ืชืจ ืขืœ ื›ืŸ, ื‘ืชื™ืขื•ื“ ื”ืจืฉืžื™ ืฉืœ MtprotoProxyTelegram, ืžืฆื™ืขื™ื ืœื ื• ืœืขืฉื•ืช ืžืฉื”ื• ื›ืžื• ื”ื‘ื:

$ sudo su && docker run -d -p443:443 --name=mtproto-proxy --restart=always -v proxy-config:/data telegrammessenger/proxy:latest #ะทะฐะฟัƒัะบะฐะตะผ ะฝะฐัˆ ะบะพะฝั‚ะตะนะฝะตั€ ยซmtproto-proxyยป.

ืœืื—ืจ ืคืงื•ื“ื” ื–ื• ืชื•ืคื™ืข ืžื—ืจื•ื–ืช HEX ื‘ืคืœื˜ ื”ื˜ืจืžื™ื ืœ, ืืš ืื™ื ื ื• ืžืขื•ื ื™ื™ื ื™ื ื‘ื”.

ืื ื• ื›ื•ืชื‘ื™ื ื‘-CLI:

$ docker logs mtproto-proxy

ื•ืื ื• ืžืงื‘ืœื™ื ืืช ื”ื ืชื•ื ื™ื ื”ื ื“ืจืฉื™ื:

ืคืจื™ืกืช ื˜ืœื’ืจื ื”-MTProxy ืฉืœืš ืขื ื ืชื•ื ื™ื ืกื˜ื˜ื™ืกื˜ื™ื™ื
ื‘ืคืœื˜ ืฉืœ ื™ื•ืžืŸ ื–ื”, ืื ื• ืžื•ืฆื’ื™ื (ืžืจื•ื—ื™ื):

ื) ื”-IP ืฉืœ ื”ืฉืจืช ืฉืœื ื• (ip ืฉืจืช ื—ื™ืฆื•ื ื™);
ื‘) ื•ืกื•ื“ ืืงืจืื™ - ืžื—ืจื•ื–ืช ืืงืจืื™ืช ื‘-HEX.

ืœืคื ื™ ืจื™ืฉื•ื ื”-MtproProxy ืฉืœื ื•, ืืชื” ืฆืจื™ืš ืœื”ื’ื“ื™ืจ ืืช ื—ื•ืžืช ื”ืืฉ ื”ืจืืฉื™ืช ืขืœ ืคื ื™ iptables (ืœื ืžืฉื ื” ืื™ืš ืชืคื ื” ืืช ื”ืชืขื‘ื•ืจื” ืœ-VPC ื”ื–ื”, ื–ื” ื™ื”ื™ื” ืฉื•ื‘ื‘, ืฉื›ืŸ ื—ื•ืžืช ื”ืืฉ ื”ืจืืฉื™ืช ื‘ืืžื–ื•ืŸ-EC2 ืžืžื•ืงืžืช ื‘ืžืžืฉืง ื”ืื™ื ื˜ืจื ื˜ ื•ื‘ืขืœืช ืขื“ื™ืคื•ืช ื’ื‘ื•ื”ื” ื™ื•ืชืจ ืขืœ ืคื ื™ iptables).

ืื ื—ื ื• ื”ื•ืœื›ื™ื ืœ "ืงื•ื ืกื•ืœืช Amazon-EC2" ื‘-Security Group ื•ืคืชื— ื™ืฆื™ืื” ื ื›ื ืกืช 443 (ืžื™ืกื•ืš ืœื•ื’ื™ ืชึฐื ื•ึผืขึธื” ื‘ืคืขื ื”ืจืืฉื•ื ื”).

ืคืจื™ืกืช ื˜ืœื’ืจื ื”-MTProxy ืฉืœืš ืขื ื ืชื•ื ื™ื ืกื˜ื˜ื™ืกื˜ื™ื™ื

ืื ื—ื ื• ืœื•ืงื—ื™ื ืืช ื ืชื•ื ื™ ื”"ip ื•ื”ืกื•ื“ื™ื™ื" ืฉืœื ื• ืžื”ื™ื•ืžืŸ ื•ื ื›ื ืกื™ื ืœ-Telegram Messenger, ืžื•ืฆืื™ื ืืช ื”-MTProxy Admin Bot ื”ืจืฉืžื™ (@MTProxybot) ื•ืจื•ืฉืžื™ื ืืช ื”-Mtproxy ืฉืœื ื•: ื”ืคืขืœ ืืช ื”ืคืงื•ื“ื” [/newproxy] ื•ื”ื–ืŸ [our_ip:443], ื• ื•ืื– [ื”ืกื•ื“ /HEX] ืฉืœื ื•.

ืื ืชืชื‘ืœื‘ืœ ื‘ืขืช ื”ื–ื ืช ื ืชื•ื ื™ื, ื”ื‘ื•ื˜ ื™ื›ืขืก ื•ื™ืฉืœื— ืื•ืชืš ืืœ ...

ืื ืชืžืœื ืฉืชื™ ืฉื•ืจื•ืช ืœืœื ืฉื’ื™ืื•ืช, ืชืงื‘ืœ ืื™ืฉื•ืจ ื•ืงื™ืฉื•ืจ ืขื•ื‘ื“ ืœ-MtprotoProxyTelegram ื”ื ื•ื›ื—ื™ ืฉืœืš, ืื•ืชื• ืชื•ื›ืœ ืœืฉืชืฃ ืขื ื›ืœ ืื—ื“.

ืคืจื™ืกืช ื˜ืœื’ืจื ื”-MTProxy ืฉืœืš ืขื ื ืชื•ื ื™ื ืกื˜ื˜ื™ืกื˜ื™ื™ื

ื›ืžื• ื›ืŸ, ื“ืจืš ื”ื‘ื•ื˜ ื”ื–ื”, ืืชื” ื™ื›ื•ืœ ืœื”ื•ืกื™ืฃ ืืช ืขืจื•ืฅ ื”ื—ืกื•ืช ืฉืœืš (ืืš ืœื ืฆ'ืื˜), ืฉื‘ื• ืชื›ืคื” ืืช ื”ื“ืขื•ืช ืฉืœืš ืขืœ ืžืฉืชืžืฉื™ื ืฉื”ืชื—ื‘ืจื• ืœืฉืจืช ืฉืœืš, ืื• ืฉืืชื” ืœื ื™ื›ื•ืœ "ืกืคืื" ื•ืœื ืœื”ื˜ืจื™ื“ ืืช ื”ืœืงื•ื—ื•ืช ื”ืคื•ื˜ื ืฆื™ืืœื™ื™ื ืฉืœืš ื‘ืœื™ ืžืฆื™ื’ ืืช ื”ืขืจื•ืฅ ื‘ืจืฉื™ืžืช ื”ืžืกื ื’'ืจื™ื ื”ืžื•ืฆืžื“ื™ื.

ืขื•ื“ ื›ืžื” ืžื™ืœื™ื ืขืœ ื”ื‘ื•ื˜, ืฉื‘ื• ืืชื” ื™ื›ื•ืœ ืœื‘ืงืฉ ืกื˜ื˜ื™ืกื˜ื™ืงื”, ืื‘ืœ "ื’ื ืกื•ืคื’ื ื™ื™ื”". ื›ื›ืœ ื”ื ืจืื”, "ืกื˜ื˜ื™ืกื˜ื™ืงื”" ื–ืžื™ื ื” ื›ืืฉืจ ื™ืฉ ืœืš "ืงื”ืœ ืฉืœ ืžื˜ื™ืœื™ื ื—ื•ืคืฉื™ื™ื" ืžืื—ื•ืจื™ืš ืžื—ืฆ'ืงืœื”.

ื ื™ื˜ื•ืจ

ื›ืžื” ืžืฉืชืžืฉื™ื ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื”ืชื—ื‘ืจ ืœืฉืจืช ืฉืœื ื•? ื•ื‘ื›ืœืœ, ืžื™/ืžื” ื™ืฉ ืฉื? ืžื”? ื•ื›ืžื”?

ืื ื—ื ื• ืžืกืชื›ืœื™ื ืขืœ ืžื” ื™ืฉ ืœืคื™ ื”ืชื™ืขื•ื“ ื”ืจืฉืžื™... ื›ืŸ, ื”ื ื”, ืชืขืฉื” ืืช ื–ื” ื›ื›ื”:

$ curl http://localhost:2398/stats ะธะปะธ ะฒะพั‚ ั‚ะฐะบ $ docker exec mtproto-proxy curl http://localhost:2398/stats # ะธ ะฝะฐะผ ะฒั‹ะดะฐะดัƒั‚ ัั‚ะฐั‚ะธัั‚ะธะบัƒ ะฟั€ัะผะพ ะฒ CLI.

"ืฉืžื•ืจ ืขืœ ื›ื™ืก ืจื—ื‘ ื™ื•ืชืจ" ืขืœ ืคื™ ื”ืคืงื•ื“ื•ืช ื”ืžื•ืฆืขื•ืช, ืชืžื™ื“ ื ืงื‘ืœ ืฉื’ื™ืื” ื“ื•ืžื”:

ยซcurl: (7) ื ื›ืฉืœ ื‘ื—ื™ื‘ื•ืจ ืœื™ืฆื™ืืช localhost 2398: ื”ื—ื™ื‘ื•ืจ ื ื“ื—ื”ยป

ื”-proxy ืฉืœื ื• ื™ืขื‘ื•ื“. ืื‘ืœ! ื‘ื™ื™ื’ืœ, ืœื ืกื˜ื˜ื™ืกื˜ื™ืงื” ืฉืื ื—ื ื• ืžืงื‘ืœื™ื.

ืืชื” ื™ื›ื•ืœ ืœืขืฉื•ืช ื“ื‘ืจื™ื ืœื‘ืขืœื™ ืขื™ื ื™ื™ื ืื“ื•ืžื•ืช: ืœื‘ื“ื•ืง

$ netstat -an | grep 2398 ะธ...

ื‘ื”ืชื—ืœื” ื—ืฉื‘ืชื™ ืฉื–ื” ืขื•ื“ ื’'ืžื‘ ืžืื—ื•ืจื™ ืžืคืชื—ื™ ื”ื˜ืœื’ืจื (ื•ืื ื™ ืขื“ื™ื™ืŸ ื—ื•ืฉื‘ ื›ืš), ื•ืื– ืžืฆืืชื™ ืคืชืจื•ืŸ ื–ืžื ื™ ื˜ื•ื‘: ืœืœื˜ืฉ ืืช ื”-Docker Container ืขื ืงื•ื‘ืฅ.

ืžืื•ื—ืจ ื™ื•ืชืจ, ืื™ื ืคื ืžืฉื›ื” ืืช ืขื™ื ื™:

ืขืœ ื”ืจื™ืงื•ื“ื™ื ื”ืžืžืœื›ืชื™ื™ื ืฉืœ ืจื•ืกืงื•ืžื ื“ื–ื•ืจ ืกื‘ื™ื‘ "ืกื˜ื˜ื™ืกื˜ื™ืงื”".

"ื—ืกืžื ื• ื—ืœืง ืžื”ืคืจื•ืงืกื™ื™ื ื”ืฆื™ื‘ื•ืจื™ื™ื ื‘ืฉืจืชื™ื ืฉืœื ื• ื‘ืืžืฆืขื•ืช ืžืกื“ื™ ื”ื ืชื•ื ื™ื ืฉืœ ืคืจื•ื™ืงื˜ firehol. ืคืจื•ื™ืงื˜ ื–ื” ืขื•ืงื‘ ืื—ืจ ืจืฉื™ืžื•ืช ืขื ืคืจื•ืงืกื™ ืคื•ืžื‘ื™ ื•ื™ื•ืฆืจ ืื™ืชื ืžืื’ืจื™ ืžื™ื“ืข.

ืžืื– ืื•ืชื• ืจื’ืข (ื›ืœื•ืžืจ, ื›ื‘ืจ ื›ืžืขื˜ ื™ื•ืžื™ื™ื), ืืฃ ื›ืชื•ื‘ืช IP ืื—ืช ืฉืœ ื”-proxy ื”ืจื•ืกื™ ืฉืœื ื• ืœื ื ื—ืกืžื”.

3. ืื ื• ืื•ืžืจื™ื ืœืš ื›ื™ืฆื“ ืœื™ืฆื•ืจ ืคืจื•ืงืกื™ ืฉื›ืžืขื˜ ื‘ืœืชื™ ืคื’ื™ืข ืœ-Roskomnadzor ื•ืœืฉืชืฃ ืกืงืจื™ืคื˜ ืœื—ืกื™ืžืช ืคืจื•ืงืกื™ ืฆื™ื‘ื•ืจื™ื™ื.

- ืขื“ื›ืŸ ืืช ืžื™ื›ืœ ื”-Proxy Docker (ืื• ื”ื“ืžื•ืŸ) ืฉืœ MTProto ืœื’ืจืกื” ื”ืขื“ื›ื ื™ืช ื‘ื™ื•ืชืจ: RKN ืžื—ืฉื‘ ื’ืจืกืื•ืช ื™ืฉื ื•ืช ืœืคื™ ื™ืฆื™ืืช ื”ื ืชื•ื ื™ื ื”ืกื˜ื˜ื™ืกื˜ื™ื™ื, ืฉื”ื™ื” ืงืฉื•ืจ ืœ-0.0.0.0 ื•ื–ื™ื”ื” ืืช ืขืฆืžื• ื‘ืื•ืคืŸ ื™ื™ื—ื•ื“ื™ ืขื‘ื•ืจ ื”ืื™ื ื˜ืจื ื˜ ื›ื•ืœื•. ืขื“ื™ืฃ, ืคืชื— ืืช ื”ื™ืฆื™ืื•ืช ื”ื ื—ื•ืฆื•ืช ื‘ืืžืฆืขื•ืช iptables, ื•ืกื’ื•ืจ ืืช ื”ืฉืืจ (ื–ื›ื•ืจ ืฉื‘ืžืงืจื” ืฉืœ ืงื•ื ื˜ื™ื™ื ืจ docker, ืขืœื™ืš ืœื”ืฉืชืžืฉ ื‘ื›ืœืœ FORWARD).

- Roskomnadzor ืœืžื“ื• ืื™ืš ืœื–ืจื•ืง ืชืขื‘ื•ืจื” ืžื–ืžืŸ: ื”ื ืจื•ืื™ื ื‘ืงืฉื•ืช ื‘ืชื•ืš ืคืจื•ืงืกื™ HTTP ื•- SOCKS5, ื•ื”ื ืจื•ืื™ื ื’ื ืืช ื”ื’ืจืกื” ื”ื™ืฉื ื” ืฉืœ ืขืจืคื•ืœ ืคืจื•ืงืกื™ MTProto.

ื›ืืฉืจ ืœืงื•ื—ื•ืช ืฉืœ ืกืคืงื™ื ืžืกื•ื™ืžื™ื ืฉื™ืฉ ืœื”ื ืžื˜ืœื•ืช ื›ืืœื” ื”ืชืงื™ื ื• ื’ื™ืฉื” ืœื˜ืœื’ืจื ื“ืจืš ืคืจื•ืงืกื™ ื›ืืœื”, ื”-RKN ืจื•ืื” ื‘ืงืฉื•ืช ื›ืืœื” ื•ื—ื•ืกื ืžื™ื“ ืืช ื”ืฉืจืชื™ื ื”ืืœื”. ืื•ืชื• ื“ื‘ืจ ืœื’ื‘ื™ ืคืจื•ืงืกื™ MTProto ืขื ืขืจืคื•ืœ ื™ืฉืŸ.

ืคืชืจื•ืŸ: ื”ืคื™ืฆื• ืกื•ื“ ืจืง ืขื dd ื‘ื”ืชื—ืœื” ืœืœืงื•ื—ื•ืช ืฉืžืชื—ื‘ืจื™ื ืœ-proxy (ืื™ืŸ ืฆื•ืจืš ืœืฆื™ื™ืŸ ืื•ืชื™ื•ืช dd ื ื•ืกืคื•ืช ื‘ื”ื’ื“ืจื•ืช ืฉืœ mtproto proxy ืขืฆืžื•). ื–ื” ื™ืืคืฉืจ ื’ืจืกื” ืฉืœ ืขืจืคื•ืœ ืฉื”ืžื–ื‘ืœื™ื ืœื ื™ื›ื•ืœื™ื ืœื–ื”ื•ืช.

ื•ืื™ืŸ ืคืจื•ืงืกื™ HTTP ืื• SOCKS5.

- ื”ืชืืžื”, ืฉื‘ืขื–ืจืชื” ื›ืœ ื‘ืขืœ ืคืจื•ืงืกื™ ื˜ืœื’ืจื, ื”ื ืืกืจ ื‘ืงื‘ื™ืขื•ืช ืขืœ ื™ื“ื™ ื”ืจืง"ืŸ, ื™ื›ื•ืœ ืœื”ืคืกื™ืง ืœื—ืœื•ื˜ื™ืŸ (ืื• ื›ืžืขื˜ ืœื—ืœื•ื˜ื™ืŸ) ืืช ื”ื—ืกื™ืžื” (ื•ื™ื—ื“ ืขื ื–ืืช ืœื•ื•ื“ื ืฉื”ืจืง"ืŸ ืžืฉืงืจ).

ืชืกืจื™ื˜ ืฉืื•ืกืจ ืคืจื•ืงืกื™ ืคื•ืžื‘ื™ ื•ืžื“ืจื™ืš ืงื˜ืŸ ืœื›ืš.

โ†’ ืžืงื•ืจ

ื”-proxy ืฉืœื ื• ืคืจื•-ืžืขืจื‘ื™, ืœื ื ืชืงืœืชื™ ื‘ื‘ืขื™ื•ืช / ื—ืกื™ืžื•ืช ื‘ืžื”ืœืš ื”ืื‘ื™ื‘ ื•ื‘ื™ืžื™ ื”ืงื™ืฅ ื”ืงืจื™ืจื™ื, ื”ื•ื ื’ื ืœื ืžืฉืš ืžืฉื™ืžื” ื™ืฆื™ืจืชื™ืช, ืื– ืœื ืื™ื‘ื“ืชื™ ืงืฆื‘ ื•ืœื ื”ื•ืกืคืชื™ ืืช ื”ืงื™ื“ื•ืžืช dd* ืœ ื”ืžืคืชื—.

ื”ืžื“ืจื™ืš ืœ"ืงื‘ืœืช ืกื˜ื˜ื™ืกื˜ื™ืงื•ืช/ื ื™ื˜ื•ืจ" ืœืคื™ ื”ื”ื•ืจืื•ืช ื”ืจืฉืžื™ื•ืช ืฉืœ MtprotoProxyTelegram ืื™ื ื• ืขื•ื‘ื“/ืžื™ื•ืฉืŸ, ืชืฆื˜ืจืš ืœืชืงืŸ ืืช ืชืžื•ื ืช ื”-docker.

ืื ื—ื ื• ืžืชืงื ื™ื ืืช ื–ื”.

ื”ืžื›ื•ืœื” ืขื“ื™ื™ืŸ ืคื•ืขืœืช:

$ 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

ื‘ื•ืื• ื ื‘ื“ื•ืง ืืช ื”ืกื˜ื˜ื™ืกื˜ื™ืงื”:

$ curl http://localhost:2398/stats

curl: (7) ื ื›ืฉืœ ื‘ื—ื™ื‘ื•ืจ ืœื™ืฆื™ืืช 0.0.0.0 2398: ื”ื—ื™ื‘ื•ืจ ื ื“ื—ื”
ื”ืกื˜ื˜ื™ืกื˜ื™ืงื” ืขื“ื™ื™ืŸ ืœื ื–ืžื™ื ื”.!...

ื’ืœื” ืืช ื”ืžื–ื”ื” ืฉืœ ื”-Docker Container:

$ docker ps

ืฉืžื•ืช ื™ืฆื™ืื•ืช ืกื˜ื˜ื•ืก ืฉื ื•ืฆืจื• ื‘ืคืงื•ื“ื” ืฉืœ ืชืžื•ื ืช ืžื–ื”ื” ืžื›ื™ืœ
f423c209cfdc telegrammessenger/proxy:latest "/bin/sh -c '/bin/baโ€ฆ" ืœืคื ื™ ื›ืฉืขื” ืœืžืขืœื” ื‘ืขืจืš ื“ืงื” 0.0.0.0:443->443/tcp mtproto-proxy2

ืื ื—ื ื• ื”ื•ืœื›ื™ื ืขื ื”ืืžื ื” ืฉืœื ื• ื‘ืชื•ืš ืžื™ื›ืœ ื”ื“ื•ืงืจ:

$ sudo docker exec -it f423c209cfdc /bin/bash

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

ื•ื‘ืฉื•ืจื” ื”ืื—ืจื•ื ื” ืฉืœ ื”ืชืกืจื™ื˜ "run.sh", ื”ื•ืกืฃ ืืช ื”ื“ื’ืœ ื”ื—ืกืจ:

ยซ--http-ืกื˜ื˜ื™ืกื˜ื™ืงื•ืชยป
"exec /usr/local/bin/mtproto-proxy -p 2398 -H 443 -M "$WORKERS" -C 60000 --aes-pwd /etc/telegram/hello-explorers-how-a-you-do-u root $CONFIG --allow-skip-d h --nat-info "$INTERNAL_IP:$IP" $SECRET_CMD $TAG_CMD"

ื”ื•ืกืฃ "--http-stats", ืžืฉื”ื• ื›ื–ื” ืืžื•ืจ ืœืขื‘ื•ื“:

ยซ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 (ืฉืžื•ืจ/ืฆื ืžืžื™ื›ืœ ื ื ื•/ื™ืฆื™ืื”).

ื”ืคืขืœ ืžื—ื“ืฉ ืืช ืžื™ื›ืœ ื”ื“ื•ืงืจ ืฉืœื ื•:

$ docker restart mtproto-proxy2

ื”ื›ืœ, ืขื›ืฉื™ื• ื‘ืคืงื•ื“ื”:

$ curl http://localhost:2398/stats #ะฟะพะปัƒั‡ะฐะตะผ ะพะฑัŠะตะผะฝัƒัŽ ัั‚ะฐั‚ะธัั‚ะธะบัƒ

ืคืจื™ืกืช ื˜ืœื’ืจื ื”-MTProxy ืฉืœืš ืขื ื ืชื•ื ื™ื ืกื˜ื˜ื™ืกื˜ื™ื™ื
ื™ืฉ ื”ืจื‘ื” "ื–ื‘ืœ" ื‘ืกื˜ื˜ื™ืกื˜ื™ืงื” (1/3 ืžืžื ื• ื ืžืฆื ืขืœ ื”ืžืกืš), ืฆื•ืจ ื›ื™ื ื•ื™:

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

ืื ื—ื ื• ืžืงื‘ืœื™ื ื‘ืฉื‘ื™ืœ ืžื” ืœื•ื˜ืฉ ืžื™ื›ืœ ื”ื“ื•ืงืจ: ืžืกืคืจ ื”ื—ื™ื‘ื•ืจื™ื ื•ื”ืขื•ืžืก:

$ telega

ืคืจื™ืกืช ื˜ืœื’ืจื ื”-MTProxy ืฉืœืš ืขื ื ืชื•ื ื™ื ืกื˜ื˜ื™ืกื˜ื™ื™ื
ื”ืงื•ื ื˜ื™ื™ื ืจ ืฉืœ Docker ืคื•ืขืœ, ื”ืกื˜ื˜ื™ืกื˜ื™ืงื” ืžืกืชื•ื‘ื‘ืช.

ืžืฉืื‘ื™ื ืฉื”ื•ืฉืงืขื•

ืขื“ ื›ืžื” ืฉืืชื” ืžื’ื ื™ื‘ ืกื˜ื™ื•ืืจื˜ ืจื“ืžืŸ, ืืคื™ืœื• ืืชื” ืžืฉืื™ืจ ื—ื•ืชื ืขืœ ื”ืชื—ืชื•ื ื™ื ืฉืœืš. ืชืžื•ื ืช Docker ืคื•ืขืœืช ืžืฉืื™ืจื” ื˜ื‘ื™ืขืช ืจื’ืœ ื’ื“ื•ืœื”.

ืื™ืŸ ื˜ืขื ืœืชืืจ ืืช ื”ื™ืชืจื•ื ื•ืช ื•ื”ื—ืกืจื•ื ื•ืช ืฉืœ ืชืžื•ื ื•ืช docker, ืงื•ื ื˜ื™ื™ื ืจ docker ื”ื•ื ืžื›ื•ื ื” ืžื™ื ื™ ื•ื™ืจื˜ื•ืืœื™ืช ืฉืฆื•ืจื›ืช ืคื—ื•ืช ืžืฉืื‘ื™ื ืžืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช "ืืžื™ืชื™ืช", ื›ืžื• VirtualBox, ืื‘ืœ ื”ื™ื ืขื•ืฉื” ื–ืืช.

1) ื”ื•ืฉืง ืขื ืื• ื‘ืœื™ ืกื˜ื˜ื™ืกื˜ื™ืงื•ืช docker-image, ืฉื ื™ ืœืงื•ื—ื•ืช ืžืฉืชื•ืœืœื™ื ืื• ืขืฉืจื” - ืžืฉืื‘ื™ื ืžื ื•ืฆืœื™ื ~ ื‘ืื•ืชื• ืื•ืคืŸ: 75% ืžื‘ื™ืฆื•ืขื™ ื”ืžืขื‘ื“ t2.micro ื›ื•ืœื•.

2) ืื ื• ืžืกืชื›ืœื™ื ืขืœ ื”ื ื™ื˜ื•ืจ ืฉืœ ืฉืจืช VPC:

ืคืจื™ืกืช ื˜ืœื’ืจื ื”-MTProxy ืฉืœืš ืขื ื ืชื•ื ื™ื ืกื˜ื˜ื™ืกื˜ื™ื™ื

ืžื’ืจืฃ ื ื™ืฆื•ืœ ื”ืžืฉืื‘ื™ื ื‘-VPC, ืื ื• ืจื•ืื™ื ืฉืžื™ื›ืœ ื”-Docker ืฆื•ืจืš ื›ืœ ื”ื–ืžืŸ ~ 7,5% ืžืกืš ื”ืžืงืกื™ืžื•ื ื”ื›ื•ืœืœ. ื‘ื™ืฆื•ืขื™ CPU ื•ื‘-28 ื‘ืžืื™ ื”ื•ืคืกืง ืขืœ ื™ื“ื™ ื‘ื›ื•ื•ื ื”/ื–ืžื ื™ืช (ื”ืขืจื” - OpenVPN ื•-pptp ืคื•ืขืœื™ื ื’ื ื‘ืฉืจืช).

ืžื“ื•ืข 10% ืฉื™ืžื•ืฉ ืงื‘ื•ืข ื‘ืžืขื‘ื“ ื”ื•ื ื”ืžื’ื‘ืœื” ืขื‘ื•ืจ ืฉืจืช ื–ื”?

ืžื›ื™ื•ื•ืŸ ืฉื™ืฉ ื”ื’ื‘ืœื•ืช ืžืืžื–ื•ืŸ EC2 ื•ื”ืŸ ืžื—ื•ืฉื‘ื•ืช ื‘ื–ื™ื›ื•ื™ื™ื:

ืคืจื™ืกืช ื˜ืœื’ืจื ื”-MTProxy ืฉืœืš ืขื ื ืชื•ื ื™ื ืกื˜ื˜ื™ืกื˜ื™ื™ื

1 ืงืจื“ื™ื˜ ืžืขื‘ื“ = ืžืขื‘ื“ 1 ืขื•ื‘ื“ ื‘ืขื•ืžืก ืฉืœ 100% ื‘ืžืฉืš ื“ืงื” ืื—ืช, ื•ื™ืฉ ืœื ื• 6 ื–ื™ื›ื•ื™ื™ื (ื›ืœื•ืžืจ, ื‘ืฉื™ืื™ื, 100% ื ื™ืฆื•ืœ ืžืขื‘ื“ ืืคืฉืจื™ ืชื•ืš 6 ื“ืงื•ืช, ื•ืื– ืขื•ืฆืžืช ื”ืžืขื‘ื“ ืชืงื˜ืŸ). ืฉื™ืœื•ื‘ื™ื ืื—ืจื™ื: ืœื“ื•ื’ืžื”, ืงืจื“ื™ื˜ ืžืขื‘ื“ ืื—ื“ = ืžืขื‘ื“ ืื—ื“ ื”ืคื•ืขืœ ื‘ืขื•ืžืก ืฉืœ 1% ืœืžืฉืš ืฉืชื™ ื“ืงื•ืช (ื›ืœื•ืžืจ, ืื ื• ื™ื›ื•ืœื™ื ืœื”ืฉืชืžืฉ ื‘ืžืขื‘ื“ ื‘ืขื•ืžืก ืฉืœ 1% ื‘ืžืฉืš 50 ื“ืงื•ืช), ืื•, ืœืžืฉืœ, ืขื•ืžืก ืงื‘ื•ืข ืฉืœ 50% ืžื”ืžืขื‘ื“ ื‘ืžื”ืœืš ื›ืœ ื”ื–ืžืŸ ื•ื›ื•'.

ืžืžืฆืื™ื

  • ืื ื—ื ื• ื—ืœืง ืž"ื”ื”ืชื ื’ื“ื•ืช ื”ื“ื™ื’ื™ื˜ืœื™ืช". ืกื™ืคืงื• ืœ"ืื‘ื•ืช ื•ืืžื”ื•ืช" ืฉืœื”ื ืขืจื•ืฅ ืชืงืฉื•ืจืช ืืžื™ืŸ.
  • ืื ื™ืฉ ืœืš MtprotoProxyTelegram ื•-OpenVPN ืคืจื•ืกื™ื ื‘ืฉืจืช, ืื‘ืœ ืœื ื™ื•ืชืจ, ืœื ื™ื”ื™ื• ืขื™ื›ื•ื‘ื™ื / ืคื™ื ื’ื™ื / ื›ืฉืœื™ื, ืื‘ืœ ืื ืืชื” ื›ืœ ื”ื–ืžืŸ ืžืชื ืกื” ื‘-t2 / micro ืฉืœืš, ืื– ื”ืžืชืŸ ืœื‘ืœืžื™ื ืฉืœ ืชืงืฉื•ืจืช.
  • ื”ืคื™ื ื’ ืฉืœื™ ื‘ื—ื•"ืœ ื”ื•ื ~100-250ms, ืื™ืŸ ืขื™ื›ื•ื‘ื™ื ื‘ืชืงืฉื•ืจืช ื”ืงื•ืœื™ืช.
  • ืขืœื•ื™ื•ืช ื›ืกืคื™ื•ืช ืขื‘ื•ืจ ื›ืœ "ื–ื”" (ื›ื•ืœืœ ืžืฉืื‘ื™ VPC) = 0โ‚ฝ.

ื”ื“ืคืกื” ื—ื•ื–ืจืช ืฉืœ ื”ืžืืžืจ ืฉืœืš.

UPD: ืชื•ื“ื” ืœื›ืžื” ืžืฉืชืžืฉื™ื ืขืœ ื”ืขืจื•ืช ืฉื™ืžื•ืฉื™ื•ืช, ืื›ืŸ, ื–ื” ืืคืฉืจื™ (ื”ืื ื”ืกื˜ื˜ื™ืกื˜ื™ืงื” ื ืชืžื›ืช?), ื™ืฉื ื ืื ืœื•ื’ื™ื ื˜ื•ื‘ื™ื ื™ื•ืชืจ ืฉืœ ืชืžื•ื ืช ื”-Mtproto proxy Telegram docker ื”ืจืฉืžื™ืช.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”