ํ†ต๊ณ„์™€ ํ•จ๊ป˜ MTProxy Telegram ๋ฐฐํฌ

ํ†ต๊ณ„์™€ ํ•จ๊ป˜ MTProxy Telegram ๋ฐฐํฌ

"๋‚˜๋Š” ์ด ๋‚œ์žฅํŒ์„ ๋ฌผ๋ ค๋ฐ›์•˜๊ณ ,
๋ป”๋ป”ํ•œ ์ ค๋กœ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ; ๋งํฌ๋“œ์ธ
Telegram ํ”Œ๋žซํผ์—์„œ "๋‹ค๋ฅธ ๋ชจ๋“  ์‚ฌ๋žŒ"์œผ๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค.
๋‚ด ์„ธ์ƒ์—์„œ.

๊ทธ๋ฆฌ๊ณ  ๋”ธ๊พน์งˆ,
๊ด€๋ฆฌ๋Š” ์„œ๋‘˜๋Ÿฌ ํฐ ์†Œ๋ฆฌ๋กœ ๋ง๋ถ™์˜€์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ฆฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค(์—ฌ๊ธฐ IT์—์„œ)"
(...).

Durov๋Š” ๊ทธ๋ฅผ ๋‘๋ ค์›Œํ•ด์•ผ ํ•  ๊ถŒ์œ„์ฃผ์˜ ๊ตญ๊ฐ€, ์‚ฌ์ดํผ ํŽ‘ํฌ, Roskomnadzor ๋ฐ DPI ํ•„ํ„ฐ๊ฐ€์žˆ๋Š” ํ™ฉ๊ธˆ ๋ฐฉํŒจ๊ฐ€ ์‹ค์ œ๋กœ ๊ทธ๋ฅผ ๊ดด๋กญํžˆ์ง€ ์•Š๋Š”๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค.
(์ •์น˜์  ๊ธฐ์ˆ )

๋‚ด ๊ธฐ์ˆ  ์ •์ฑ…์€ ๋” ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. Runet์˜ ๋ถ€์ฃผ์˜ ํ•œ ์ฐจ๋‹จ์— ๋Œ€ํ•œ ๋‚ด ์ƒ๊ฐ์„ ์—ฌ๊ธฐ์— ์„ค๋ช… ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Modern Russian ๋ฐ Habr ์‚ฌ์šฉ์ž์˜ ์ง„๋ณด์  ์ธ ์‹œ๋ฏผ์€ ์ž์‹ ์˜ ํ”ผ๋ถ€์—์„œ ํ˜„ ์ •๋ถ€์˜ ๋น„ ์ „๋ฌธ์„ฑ์„ ๋Š๊ผˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฏ€๋กœ ์ œํ•œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•œ ๋งˆ๋””: ์šฐ๋ฆฌ์˜ ๊ธฐ์ˆ  ์ •์ฑ…์€ "๋””์ง€ํ„ธ ์ €ํ•ญ"์ž…๋‹ˆ๋‹ค. "์นœ์ฒ™ ๋ฐ ์นœ๊ตฌ์—๊ฒŒ ์•ˆ์ •์ ์ธ ํ†ต์‹  ์ฑ„๋„ ์ œ๊ณต"

MTProto ํ”„๋ก์‹œ Telegram ๋ฐฐํฌ

  • ์˜ˆ๋ฅผ ๋“ค์–ด ์ด ์น˜ํŠธ ์‹œํŠธ๋ฅผ ๋”ฐ๋ฅด๋ฉด ๊ธฐ์ˆ ์  ๋ณต์žก์„ฑ ์ˆ˜์ค€์€ "์‰ฌ์›€"์ž…๋‹ˆ๋‹ค.
  • ์•ˆ์ •์„ฑ ์ˆ˜์ค€์€ "ํ‰๊ท  ์ด์ƒ"์ž…๋‹ˆ๋‹ค. ๋„์ปค ์ด๋ฏธ์ง€๋Š” ์•ˆ์ •์ ์œผ๋กœ ์ž‘๋™ํ•˜๋ฉฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ณต์‹ Telegram ๋ฌธ์„œ์— ์ž‘์„ฑํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋งค์ผ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ํ•„์š”๋Š” ์—†์ง€๋งŒ ์ปจํ…Œ์ด๋„ˆ์— ์ผ๋ถ€ ์ทจ์•ฝ์ ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ €ํ•ญ/๋ถˆ์•ˆ์˜ ์ˆ˜์ค€ - 10๋ช…์˜ ISIS ํšŒ์›์ด ์Œ๋ชจ๋ฅผ "์นœ์ฒ™ ์‚ฌ์šฉ"์œผ๋กœ ์งœ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‹ ๋ขฐ ์ˆ˜์ค€์€ ํด๋ผ์ด์–ธํŠธ ์ธก์˜ ๋ฌธ์ œ์ธ "public baby distrust"์ž…๋‹ˆ๋‹ค(์ผ๋ถ€ ์นœ๊ตฌ๋Š” ๋‚ด MtprotoProxy๋ฅผ ์˜์‹ฌํ•จ).
  • ํ…Œ์Šคํ† ์Šคํ…Œ๋ก  ์ˆ˜์น˜ - "๋” ๋†’์•„์ง€์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค."
  • ์žฌ์ • ๋น„์šฉ - "0โ‚ฝ".
  • ์žฌ์ •์  ๋ณด์ƒ - "์‹œ๋ฏผ Durov์— ์˜์กดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค." ํŒ์ด‰ - ๊ด‘๊ณ ๋ฅผ ๊ฐ•์š”ํ•˜๋Š” ๋Šฅ๋ ฅ.

์šฐ๋ฆฌ๋Š” Amazon-ec2: t2.micro์˜ "๋ฌด๋ฃŒ/๊ฐœ์ธ" ์šฉ๋Ÿ‰์—์„œ TelegramProxy๋ฅผ ์˜ฌ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์‚ฌ์šฉ ์ด ์ฐจ.

์ข‹์•„์š”, ๋ฌด๋ฃŒ ์„œ๋ฒ„๋ฅผ ๋ฐฐํฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณต์‹ ์›น์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•˜์„ธ์š”. ๋„์ปคํ—ˆ๋ธŒ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ถ€ ์ด๋ฏธ์ง€, ํŒŒ์ผ ๋˜๋Š” ๋งˆ๋ฒ• ๋ฒ„ํŠผ์„ ์ฐพ์„ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. "๊ทธ๋“ค์€ ๊ฑฐ๊ธฐ์— ์—†์Šต๋‹ˆ๋‹ค", ๋ชจ๋“  ๋งˆ๋ฒ•์€ CLI์—์„œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

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

๊ทธ๋Ÿฌ๋‚˜ "๊ทธ" ์ „์— 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 Telegram ๋ฐฐํฌ
์ด ๋กœ๊ทธ์˜ ์ถœ๋ ฅ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค(๋ฒˆ์ง).

A) ๋‹น์‚ฌ ์„œ๋ฒ„ ip(์™ธ๋ถ€ ์„œ๋ฒ„ ip)
B) ์ž„์˜์˜ ๋น„๋ฐ€ - HEX์˜ ์ž„์˜ ๋ฌธ์ž์—ด.

MtproProxy๋ฅผ ๋“ฑ๋กํ•˜๊ธฐ ์ „์— iptables๋ฅผ ํ†ตํ•ด ๊ธฐ๋ณธ ๋ฐฉํ™”๋ฒฝ์„ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ด VPC๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ฆฌ๋””๋ ‰์…˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๊ด€๊ณ„์—†์ด Amazon-EC2์˜ ๊ธฐ๋ณธ ๋ฐฉํ™”๋ฒฝ์ด ์›น ์ธํ„ฐํŽ˜์ด์Šค์— ์žˆ๊ณ  ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋†’๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. iptables ).

์šฐ๋ฆฌ๋Š” ๊ฐ„๋‹ค "์ฝ˜์†” ๋ณด์•ˆ ๊ทธ๋ฃน์˜ Amazon-EC2" ๋ฐ ์ˆ˜์‹  ํฌํŠธ 443 ์—ด๊ธฐ(๋…ผ๋ฆฌ์  ๋งˆ์Šคํ‚น ๊ตํ†ต ์ฒ˜์Œ์œผ๋กœ).

ํ†ต๊ณ„์™€ ํ•จ๊ป˜ MTProxy Telegram ๋ฐฐํฌ

๋กœ๊ทธ์—์„œ "ip ๋ฐ secret" ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  Telegram ๋ฉ”์‹ ์ €๋กœ ์ด๋™ํ•˜์—ฌ ๊ณต์‹ MTProxy Admin Bot(@MTProxybot)์„ ์ฐพ๊ณ  MtproProxy๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. [/newproxy] ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ณ  [our_ip:443]์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ [๋น„๋ฐ€ /HEX].

๋ฐ์ดํ„ฐ๋ฅผ ์ž˜๋ชป ์ž…๋ ฅํ•˜๋ฉด ๋ด‡์ด ํ™”๋ฅผ ๋‚ด๋ฉฐ ๋ณด๋‚ด์ค๋‹ˆ๋‹ค...

์˜ค๋ฅ˜ ์—†์ด ๋‘ ์ค„์„ ์ฑ„์šฐ๋ฉด ์Šน์ธ์„ ๋ฐ›๊ณ  ๋ˆ„๊ตฌ์™€๋„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ํ˜„์žฌ MtprotoProxyTelegram์— ๋Œ€ํ•œ ์ž‘์—… ๋งํฌ๋ฅผ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

ํ†ต๊ณ„์™€ ํ•จ๊ป˜ MTProxy Telegram ๋ฐฐํฌ

๋˜ํ•œ ์ด ๋ด‡์„ ํ†ตํ•ด ์Šคํฐ์„œ์‹ญ ์ฑ„๋„(์ฑ„ํŒ…์€ ์•„๋‹˜)์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์„œ๋ฒ„์— ์—ฐ๊ฒฐ๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ž์‹ ์˜ ๊ฒฌํ•ด๋ฅผ ๊ฐ•์š”ํ•˜๊ฑฐ๋‚˜ "์ŠคํŒธ"์„ ๋ณด๋‚ด์ง€ ์•Š๊ณ  ์ž ์žฌ์ ์ธ ๊ณ ๊ฐ์„ ๊ท€์ฐฎ๊ฒŒ ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ ์ •๋œ ๋ฉ”์‹ ์ € ๋ชฉ๋ก์— ์žˆ๋Š” ์ฑ„๋„์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

ํ†ต๊ณ„๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์ง€๋งŒ "๋„๋„›"์ธ ๋ด‡์— ๋Œ€ํ•œ ๋ช‡ ๋งˆ๋”” ๋”. ๋ถ„๋ช…ํžˆ "ํ†ต๊ณ„"๋Š” Makhachkala ๋’ค์— "ํ”„๋ฆฌ ๋กœ๋” ๊ตฐ์ค‘"์ด์žˆ์„ ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋‹ˆํ„ฐ๋ง

์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์–ด์จŒ๋“  ๊ฑฐ๊ธฐ์— ๋ˆ„๊ตฌ/๋ฌด์—‡์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋ฌด์—‡? ์–ผ๋งˆ๋‚˜ ๋งŽ์ด?

์šฐ๋ฆฌ๋Š” ๊ณต์‹ ๋ฌธ์„œ์— ๋”ฐ๋ผ ๊ฑฐ๊ธฐ์— ๋ฌด์—‡์ด ์žˆ๋Š”์ง€ ๋ด…๋‹ˆ๋‹ค ... ์˜ˆ, ์—ฌ๊ธฐ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ดํ•˜์‹ญ์‹œ์˜ค.

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

"Keep your pocket wide" ์ œ์•ˆ๋œ ๋ช…๋ น์— ๋”ฐ๋ฅด๋ฉด ํ•ญ์ƒ ์œ ์‚ฌํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

ยซcurl: (7) localhost ํฌํŠธ 2398์— ์—ฐ๊ฒฐํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.ยป

ํ”„๋ก์‹œ๊ฐ€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ! ์šฐ๋ฆฌ๊ฐ€ ์–ป๋Š” ํ†ต๊ณ„๊ฐ€ ์•„๋‹Œ ๋ฒ ์ด๊ธ€.

๋นจ๊ฐ„ ๋ˆˆ์„ ์œ„ํ•ด ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ: ํ™•์ธ

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

์ฒ˜์Œ์— ๋‚˜๋Š” ์ด๊ฒƒ์ด Telegram ๊ฐœ๋ฐœ์ž ๋’ค์— ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ ์žผ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๊ณ  (์—ฌ์ „ํžˆ ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค) ์ž„์‹œ๋กœ ์ข‹์€ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ๋กœ Docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ฆ์Šต๋‹ˆ๋‹ค.

๋‚˜์ค‘์— ์ธํŒŒ๊ฐ€ ๋‚ด ๋ˆˆ์„ ์‚ฌ๋กœ ์žก์•˜์Šต๋‹ˆ๋‹ค.

"ํ†ต๊ณ„"์— ๊ด€ํ•œ Roskomnadzor์˜ ๊ตญ๊ฐ€ ์ถค์— ๋Œ€ํ•ด.

โ€œ์šฐ๋ฆฌ๋Š” Firehol ํ”„๋กœ์ ํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์—์„œ ์ผ๋ถ€ ๊ณต์šฉ ํ”„๋ก์‹œ๋ฅผ ์ฐจ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ๊ณต๊ฐœ ํ”„๋ก์‹œ๋กœ ๋ชฉ๋ก์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๊ทธ ์ˆœ๊ฐ„(์ฆ‰, ์ด๋ฏธ ๊ฑฐ์˜ ์ดํ‹€) ์ดํ›„๋กœ ๋Ÿฌ์‹œ์•„ ํ”„๋ก์‹œ์˜ ๋‹จ์ผ IP ์ฃผ์†Œ๊ฐ€ ์ฐจ๋‹จ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

3. Roskomnadzor์— ๊ฑฐ์˜ ๋ฌด์ ์ธ ํ”„๋ก์‹œ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•๊ณผ ๊ณต๊ฐœ ํ”„๋ก์‹œ๋ฅผ ์ฐจ๋‹จํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

- MTProto ํ”„๋ก์‹œ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ(๋˜๋Š” ๋ฐ๋ชฌ)๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ: RKN์€ 0.0.0.0์— ๋ฐ”์ธ๋”ฉ๋˜๊ณ  ์ „์ฒด ์ธํ„ฐ๋„ท์— ๋Œ€ํ•ด ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„๋œ ํ†ต๊ณ„ ํฌํŠธ๋กœ ์ด์ „ ๋ฒ„์ „์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์€ iptables๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์š”ํ•œ ํฌํŠธ๋ฅผ ์—ด๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋‹ซ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(๋„์ปค ์ปจํ…Œ์ด๋„ˆ์˜ ๊ฒฝ์šฐ FORWARD ๊ทœ์น™์„ ์‚ฌ์šฉํ•ด์•ผ ํ•จ์„ ๊ธฐ์–ตํ•˜์‹ญ์‹œ์˜ค).

โ€” Roskomnadzor๋Š” ์˜ค๋ž˜ ์ „์— ํŠธ๋ž˜ํ”ฝ์„ ๋คํ”„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ HTTP ๋ฐ SOCKS5 ํ”„๋ก์‹œ ๋‚ด๋ถ€์˜ ํ˜ธ์ถœ์„ ๋ณด๊ณ  ์ด์ „ ๋ฒ„์ „์˜ MTProto ํ”„๋ก์‹œ ๋‚œ๋…ํ™”๋„ ๋ด…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌํ•œ ๋คํ”„๋ฅผ ์„ค์น˜ํ•œ ์ผ๋ถ€ ๊ณต๊ธ‰์ž์˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ทธ๋Ÿฌํ•œ ํ”„๋ก์‹œ๋ฅผ ํ†ตํ•ด Telegram์— ์•ก์„ธ์Šคํ•˜๋ฉด RKN์€ ๊ทธ๋Ÿฌํ•œ ์š”์ฒญ์„ ๋ณด๊ณ  ์ฆ‰์‹œ ์ด๋Ÿฌํ•œ ํ”„๋ก์‹œ๋ฅผ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ž˜๋œ ๋‚œ๋…ํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” MTProto ํ”„๋ก์‹œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: ํ”„๋ก์‹œ์— ์—ฐ๊ฒฐํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ์— ์ฒ˜์Œ์— dd๋งŒ ์žˆ๋Š” ๋น„๋ฐ€์„ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค(mtproto ํ”„๋ก์‹œ ์ž์ฒด ์„ค์ •์—์„œ ์ถ”๊ฐ€ ๋ฌธ์ž dd๋ฅผ ์ง€์ •ํ•  ํ•„์š” ์—†์Œ). ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋คํ”„ ํŒŒ์ผ์ด ๊ฐ์ง€ํ•  ์ˆ˜ ์—†๋Š” ๋‚œ๋…ํ™” ๋ฒ„์ „์ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

HTTP ๋˜๋Š” SOCKS5 ํ”„๋ก์‹œ๋„ ์—†์Šต๋‹ˆ๋‹ค.

- RKN์— ์˜ํ•ด โ€‹โ€‹์ •๊ธฐ์ ์œผ๋กœ ๊ธˆ์ง€๋˜๋Š” ์ „๋ณด ํ”„๋ก์‹œ์˜ ๊ฐ ์†Œ์œ ์ž๊ฐ€ ์ฐจ๋‹จ์„ ์™„์ „ํžˆ(๋˜๋Š” ๊ฑฐ์˜ ์™„์ „ํžˆ) ์ค‘์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ์กฐ์ •(๋™์‹œ์— RKN์ด ๊ฑฐ์ง“๋งํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธ).

๊ณต๊ฐœ ํ”„๋ก์‹œ๋ฅผ ๊ธˆ์ง€ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ์™€ ์ด์— ๋Œ€ํ•œ ์ž‘์€ ์„ค๋ช…์„œ.

โ†’ ์ถœ์ฒ˜

์šฐ๋ฆฌ ํ”„๋ก์‹œ๋Š” ์นœ ์„œ๊ตฌ์ž…๋‹ˆ๋‹ค. ๋ด„๊ณผ ์‹œ์›ํ•œ ์—ฌ๋ฆ„๋‚ ์—๋Š” ๋ฌธ์ œ / ๋ง‰ํž˜์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜๊ณ  ์ฐฝ์˜์ ์ธ ์ž‘์—…๋„ ์œ ์น˜ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๋ฅผ ์žƒ์ง€ ์•Š๊ณ  dd * ์ ‘๋‘์‚ฌ๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์—ด์‡ .

MtprotoProxyTelegram์˜ ๊ณต์‹ ์ง€์นจ์— ๋”ฐ๋ฅธ "ํ†ต๊ณ„ ๊ฐ€์ ธ์˜ค๊ธฐ/๋ชจ๋‹ˆํ„ฐ๋ง" ์„ค๋ช…์„œ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์˜ค๋ž˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋ณต๊ตฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ๊ณ ์นœ๋‹ค.

์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ณ„์† ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

$ 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

์ปฌ: (7) 0.0.0.0 ํฌํŠธ 2398์— ์—ฐ๊ฒฐํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค: ์—ฐ๊ฒฐ์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
ํ†ต๊ณ„๋Š” ์•„์ง ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.!..

๋„์ปค ์ปจํ…Œ์ด๋„ˆ์˜ ID๋ฅผ ์ฐพ์œผ์‹ญ์‹œ์˜ค.

$ docker ps

์ปจํ…Œ์ด๋„ˆ ID ์ด๋ฏธ์ง€ ๋ช…๋ น ์ƒ์„ฑ ์ƒํƒœ ํฌํŠธ ์ด๋ฆ„
f423c209cfdc telegrammessenger/proxy:latest "/bin/sh -c '/bin/baโ€ฆ" ์•ฝ 0.0.0.0์‹œ๊ฐ„ ์ „ Up ์•ฝ 443๋ถ„ 443:2->XNUMX/tcp mtproto-proxyXNUMX

์šฐ๋ฆฌ๋Š” ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ํ—Œ์žฅ์„ ๊ฐ€์ง€๊ณ  ๊ฐ‘๋‹ˆ๋‹ค.

$ 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-are-you-doing -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 Telegram ๋ฐฐํฌ
ํ†ต๊ณ„์— ๋งŽ์€ "์“ฐ๋ ˆ๊ธฐ"๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(๊ทธ ์ค‘ 1/3์ด ํ™”๋ฉด์— ์žˆ์Œ). ๋ณ„๋ช…์„ ๋งŒ๋“œ์‹ญ์‹œ์˜ค.

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

์šฐ๋ฆฌ๋Š” ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์—ฐ๋งˆ๋œ ๋Œ€์ƒ์ธ ์—ฐ๊ฒฐ ์ˆ˜์™€ ๋กœ๋“œ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.

$ telega

ํ†ต๊ณ„์™€ ํ•จ๊ป˜ MTProxy Telegram ๋ฐฐํฌ
Docker ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰ ์ค‘์ด๊ณ  ํ†ต๊ณ„๊ฐ€ ํšŒ์ „ ์ค‘์ž…๋‹ˆ๋‹ค.

์†Œ๋น„๋œ ์ž์›

์ŠคํŠœ์–ดํŠธ ๋ ˆ๋“œ๋งจ๋งŒํผ ๋ฉ‹์ ธ๋„ ํŒฌํ‹ฐ์— ์ž๊ตญ์ด ๋‚จ์Šต๋‹ˆ๋‹ค. ์‹คํ–‰ ์ค‘์ธ Docker ์ด๋ฏธ์ง€๋Š” ํฐ ๊ณต๊ฐ„์„ ๋‚จ๊น๋‹ˆ๋‹ค.

๋„์ปค ์ด๋ฏธ์ง€์˜ ์žฅ์ ๊ณผ ๋‹จ์ ์„ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์€ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋Š” VirtualBox์™€ ๊ฐ™์€ "์‹ค์ œ" ๊ฐ€์ƒ ๋จธ์‹ ๋ณด๋‹ค ์ ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์†Œ๋น„ํ•˜๋Š” ๋ฏธ๋‹ˆ ๊ฐ€์ƒ ๋จธ์‹ ์ด์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

1) ๋„์ปค ์ด๋ฏธ์ง€ ํ†ต๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์‹œ์ž‘ํ•˜๋ฉด ๋‘ ๊ฐœ์˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์žฅ๋‚œ์น˜๊ฑฐ๋‚˜ ์—ด ๊ฐœ์˜ ๋ฆฌ์†Œ์Šค๊ฐ€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ „์ฒด CPU t75.micro ์„ฑ๋Šฅ์˜ 2%์ž…๋‹ˆ๋‹ค.

2) VPC ์„œ๋ฒ„์˜ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

ํ†ต๊ณ„์™€ ํ•จ๊ป˜ MTProxy Telegram ๋ฐฐํฌ

VPC์˜ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋ฅ  ๊ทธ๋ž˜ํ”„์—์„œ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ด ์ตœ๋Œ€์น˜์˜ ~7,5%๋ฅผ ์ง€์†์ ์œผ๋กœ ์†Œ๋น„ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CPU ์„ฑ๋Šฅ ๋ฐ 28์›” XNUMX์ผ์— ๋‚ด๊ฐ€ ์˜๋„์ ์œผ๋กœ/์ผ์‹œ์ ์œผ๋กœ ์ค‘์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค. (์ฐธ๊ณ  - OpenVPN ๋ฐ pptp๋„ ์„œ๋ฒ„์—์„œ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค).

์ด ์„œ๋ฒ„์˜ CPU ์‚ฌ์šฉ๋Ÿ‰์ด 10%์ธ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

Amazon EC2์˜ ์ œํ•œ ์‚ฌํ•ญ์ด ์žˆ๊ณ  ํฌ๋ ˆ๋”ง์œผ๋กœ ๊ณ„์‚ฐ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

ํ†ต๊ณ„์™€ ํ•จ๊ป˜ MTProxy Telegram ๋ฐฐํฌ

1 CPU ํฌ๋ ˆ๋”ง = 1๋ถ„ ๋™์•ˆ 100% ๋กœ๋“œ์—์„œ ์ž‘๋™ํ•˜๋Š” 6 CPU, ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” 100 ํฌ๋ ˆ๋”ง์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(์ฆ‰, ์ตœ๊ณ ์ ์—์„œ 6๋ถ„ ์ด๋‚ด์— 1% CPU ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๊ณ  CPU ์ „๋ ฅ์ด ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค). ๊ธฐํƒ€ ์กฐํ•ฉ: ์˜ˆ๋ฅผ ๋“ค์–ด 1 CPU ํฌ๋ ˆ๋”ง = 50๋ถ„ ๋™์•ˆ 50% ๋กœ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” 12 CPU(์ฆ‰, 10๋ถ„ ๋™์•ˆ XNUMX% ๋กœ๋“œ์—์„œ CPU๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ) ์ „์ฒด ์‹œ๊ฐ„ ๋“ฑ

์กฐ์‚ฌ ๊ฒฐ๊ณผ

  • ์šฐ๋ฆฌ๋Š” "๋””์ง€ํ„ธ ์ €ํ•ญ๊ตฐ"์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค. "์•„๋ฒ„์ง€์™€ ์–ด๋จธ๋‹ˆ"์—๊ฒŒ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ์ฑ„๋„์„ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.
  • MtprotoProxyTelegram ๋ฐ OpenVPN์ด ์„œ๋ฒ„์— ๋ฐฐํฌ๋˜์–ด ์žˆ์ง€๋งŒ ๋” ์ด์ƒ ์—†๋Š” ๊ฒฝ์šฐ ์ง€์—ฐ/ํ•‘/์˜ค๋ฅ˜๊ฐ€ ์—†์ง€๋งŒ t2/micro๋ฅผ ์ง€์†์ ์œผ๋กœ ์‹คํ—˜ํ•˜๋Š” ๊ฒฝ์šฐ ํ†ต์‹  ๋ธŒ๋ ˆ์ดํฌ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์‹ญ์‹œ์˜ค.
  • ๋‚ด ํ•ด์™ธ ํ•‘์€ ~100-250ms์ด๋ฉฐ ์Œ์„ฑ ํ†ต์‹ ์— ์ง€์—ฐ์ด ์—†์Šต๋‹ˆ๋‹ค.
  • ๋ชจ๋“  "์ด"(VPC ๋ฆฌ์†Œ์Šค ํฌํ•จ)์— ๋Œ€ํ•œ ๊ธˆ์œต ๋น„์šฉ = 0โ‚ฝ.

๊ท€ํ•˜์˜ ๊ธฐ์‚ฌ๋ฅผ ์žฌ์ธ์‡„ํ•˜์‹ญ์‹œ์˜ค.

UPD: ์œ ์šฉํ•œ ์˜๊ฒฌ์„ ์ œ๊ณตํ•œ ์ผ๋ถ€ habrausers ๋•๋ถ„์— ์‹ค์ œ๋กœ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค(ํ†ต๊ณ„๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๊นŒ?). ๊ณต์‹ Mtproto ํ”„๋ก์‹œ Telegram ๋„์ปค ์ด๋ฏธ์ง€์˜ ๋” ๋‚˜์€ ์•„๋‚ ๋กœ๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€