Telegram Proxy Server 구축하기

MTProxy를 이용한 방법과 Socks5를 사용한 방법이 있다.

Docker 이미지로 모두 준비되어 있으므로 둘 다 다루도록 한다.

MT-Proto Proxy

https://github.com/TelegramMessenger/MTProxy
https://hub.docker.com/r/telegrammessenger/proxy/
텔레그램 측에서 Docker 이미지를 만들어 배포하고 있으므로 그걸 그냥 가져다가 쓰도록 한다.

docker run -d -p 443:443 --name=mtproto-proxy --restart=always -v proxy-config:/data telegrammessenger/proxy:latest
와 같은 명령을 통해 손쉽게 구축이 가능하다.
proxy-config 폴더를 미리 만들거나 원하는 폴더 경로로 지정해주면 된다.
포트 역시 443 대신에 변경이 필요하다면 변경하도록 하고, 방화벽 해제가 필요하면 방화벽도 직접 해제해주도록 한다.

이후 docker logs mtproto-proxy 명령을 통해 proxy 접속 정보를 확인할 수 있다.

대신 이 Docker는, Docker container가 재시작할 때마다 secret key가 변경되므로 고정시킬 필요가 있다.

docker run -d -p 443:443 -v proxy-config:/data -e SECRET=935ddceb2f6bbbb78363b224099f75c8,2084c7e58d8213296a3206da70356c81 telegrammessenger/proxy:latest
처럼 Docker를 실행시키면 기존 키, 기타 키 등을 활성화 시킬 수 있다.

Socks5

https://github.com/ex3ndr/telegram-proxy
개인 사용자가 만들어서 배포하고 있는 이미지이다.

docker run --restart always -d --name telegram-proxy -e SOCKS_USER=telegram -e SOCKS_PASSWORD=telegram -p 1080:1080 ex3ndr/telegram-proxy
와 같은 명령으로 실행시킬 수 있는데, 현재 Docker registry에 올라간 이미지는 아이디/패스워드 임의 지정이 불가능한 버전이다.
참고로 기본 아이디/패스워드는 user/password 이다.

임의 지정이 가능한 버전은 git에서 직접 긁어서 이미지를 만들어야 사용할 수 있다.

git clone https://github.com/ex3ndr/telegram-proxy
cd telegram-proxy
docker build -t telegram-proxy .
docker run --restart always -d --name telegram-proxy -p 1080:1080 -e SOCKS_USER=telegram -e SOCKS_PASSWORD=telegram telegram-proxy:latest

와 같이 사용하면 된다.
(ref: https://github.com/ex3ndr/telegram-proxy/issues/8#issuecomment-388565523)