Fake TLS를 이용한 MTProto 프록시 배포: 안정적인 텔레그램 접속을 위한 완벽 가이드
인터넷 검열과 차단이 심화되는 시대에, 메시징 앱에 안정적이고 안전하게 접속하는 것은 많은 사용자들에게 최우선 과제가 되었습니다. Fake TLS 기술로 강화된 MTProto 프록시는 이러한 제한을 우회하는 효과적인 해결책을 제공합니다. 이 가이드는 Docker와 VPS를 사용하여 단 몇 분 만에 자신만의 프록시 서버를 배포하는 과정을 설명합니다. 이 설정을 통해 텔레그램 트래픽을 일반 HTTPS처럼 위장하여 감지 및 차단하기 훨씬 어렵게 만들 수 있습니다.
MTProto 프록시와 Fake TLS 작동 방식
MTProto 프록시는 텔레그램 팀이 개발한 특수 프록시 서버로, 안전하고 암호화된 연결을 제공합니다. 메신저 작동에 최적화된 MTProto 프로토콜을 활용하여 높은 속도와 중단 없는 연결 안정성을 보장합니다. 주된 목적은 텔레그램 트래픽을 중개 서버를 통해 라우팅하여, 메신저에 부과된 직접적인 IP 주소 또는 도메인 차단을 우회하는 것입니다.
Fake TLS (전송 계층 보안)는 MTProto 프록시에 필수적인 추가 기능으로, 활성 차단 환경에서 그 효과를 크게 향상시킵니다. 이 기술은 MTProto 트래픽을 웹사이트의 보안 연결에 일반적으로 사용되는 표준 HTTPS 트래픽으로 위장할 수 있게 합니다. Fake TLS로 구성된 프록시 서버는 합법적인 도메인(예: ya.ru 또는 google.com)에 대한 일반 HTTPS 연결을 시뮬레이션합니다. 외부 모니터링 시스템에는 이 트래픽이 일반적인 웹 브라우징처럼 보여 감지 및 필터링하기 매우 어렵습니다. MTProto 프록시의 비밀 키에 있는 특별한 ee 접두사는 텔레그램 클라이언트에게 Fake TLS 모드를 사용하도록 신호를 보내 추가적인 난독화 계층을 제공합니다.
배포 준비
Fake TLS를 이용한 MTProto 프록시를 성공적으로 배포하려면 몇 가지 구성 요소가 필요합니다. 프록시의 안정성과 속도가 VPS에 달려 있으므로, 신뢰할 수 있는 가상 사설 서버(VPS) 제공업체를 선택하는 것이 매우 중요합니다.
VPS 최소 시스템 요구 사항:
- 운영 체제: 안정성과 최신 패키지를 위해 Ubuntu 20.04, 22.04 또는 24.04 LTS (장기 지원)를 권장합니다. 하지만 이 스크립트는 Docker를 지원하는 다른 Linux 배포판과도 호환됩니다.
- RAM: 512MB 이상. 이 용량은 MTProto 프록시 Docker 컨테이너의 기본 작동에 충분합니다.
- 디스크 공간: 5GB 이상. 운영 체제, Docker 및 컨테이너 로그에 필요합니다.
- Docker 설치: Docker 컨테이너화 시스템은 격리된 환경에서 MTProto 프록시를 실행하는 데 필수적입니다.
Ubuntu에 Docker 설치
VPS에 Docker가 아직 설치되어 있지 않다면 다음 명령어를 실행하십시오. 이 명령어들은 패키지 목록을 업데이트하고, 필요한 종속성을 설치하며, Docker Engine 자체를 설치합니다.
sudo apt update && sudo apt upgrade -y
sudo apt install docker.io -y
Docker 설치 후, 서비스가 실행 중이고 활성 상태인지 확인하기 위해 sudo systemctl status docker 명령어로 상태를 확인하는 것이 좋습니다.
자동화된 MTProto 프록시 배포
배포 과정을 단순화하기 위해, 비밀 키 생성부터 Docker 컨테이너 실행 및 연결 정보 출력까지 모든 단계를 자동화하는 Bash 스크립트가 제공됩니다. 이 접근 방식은 오류 발생 가능성을 최소화하고 설정 시간을 단 몇 분으로 단축합니다.
설치 스크립트 생성 및 실행
- 스크립트 파일 생성: VPS에서
nano텍스트 편집기를 사용하여start-mtproxy.sh와 같은 새 파일을 생성합니다:
```bash
nano start-mtproxy.sh
```
- 스크립트 코드 삽입: 다음 코드를 복사하여 생성된 파일에 붙여넣습니다. 변경 사항을 저장합니다 (Ctrl+O, Enter, Ctrl+X).
```bash
#!/bin/bash
예쁜 출력을 위한 색상
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
CONTAINER_NAME="mtproto-proxy"
PORT="443"
FAKE_DOMAIN="ya.ru" # Fake TLS를 위한 고정 도메인
echo "🚀 Fake TLS를 이용한 MTProto 프록시 시작"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo -e "📌 사용 도메인: ${BLUE}${FAKE_DOMAIN}${NC}"
Fake TLS 비밀 키 생성
echo -n "🔑 Fake TLS 비밀 키 생성 중... "
ya.ru 도메인의 16진수 값 가져오기
DOMAIN_HEX=$(echo -n $FAKE_DOMAIN | xxd -ps | tr -d '\n')
echo -e "\n 도메인 16진수: ${DOMAIN_HEX}"
30자까지 임의의 문자로 채우기
DOMAIN_LEN=${#DOMAIN_HEX}
NEEDED=$((30 - DOMAIN_LEN))
RANDOM_HEX=$(openssl rand -hex 15 | cut -c1-$NEEDED)
비밀 키 조합
SECRET="ee${DOMAIN_HEX}${RANDOM_HEX}"
echo -e " 임의의 추가 문자: ${RANDOM_HEX}"
echo -e " 비밀 키: ${YELLOW}${SECRET}${NC}"
echo " 길이: ${#SECRET} 문자"
443 포트 사용 가능 여부 확인
echo -n "🔍 포트 ${PORT} 확인 중... "
if ss -tuln | grep -q ":${PORT} "; then
echo -e "${YELLOW}포트 사용 중${NC}"
# 대체 포트 찾기
for alt_port in 8443 8444 8445; do
if ! ss -tuln | grep -q ":${alt_port} "; then
PORT=$alt_port
echo " 사용할 포트: ${PORT}"
break
fi
done
else
echo -e "${GREEN}사용 가능${NC}"
fi
기존 컨테이너가 있다면 중지
echo -n "🛑 기존 컨테이너 중지 중... "
sudo docker stop ${CONTAINER_NAME} >/dev/null 2>&1
sudo docker rm ${CONTAINER_NAME} >/dev/null 2>&1
echo -e "${GREEN}완료${NC}"
텔레그램 공식 프록시 실행
echo -n "📦 컨테이너 시작 중... "
sudo docker run -d \
--name ${CONTAINER_NAME} \
--restart unless-stopped \
-p ${PORT}:443 \
-e SECRET="${SECRET}" \
telegrammessenger/proxy > /dev/null 2>&1
결과 확인
sleep 3
if sudo docker ps | grep -q ${CONTAINER_NAME}; then
SERVER_IP=$(curl -s ifconfig.me)
echo -e "${GREEN}✅ 성공${NC}"
echo ""
echo "📊 연결 정보:"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "🌐 서버: ${SERVER_IP}"
echo "🔌 포트: ${PORT}"
echo "🔑 비밀 키: ${SECRET}"
echo "🌐 Fake TLS 도메인: ${FAKE_DOMAIN}"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "🔗 텔레그램 연결 링크 (자동 연결을 위해 클릭):"
echo -e "${GREEN}tg://proxy?server=${SERVER_IP}&port=${PORT}&secret=${SECRET}${NC}"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
# 설정 저장
cat > ~/mtproto_config.txt << EOF
SERVER=${SERVER_IP}
PORT=${PORT}
SECRET=${SECRET}
DOMAIN=${FAKE_DOMAIN}
LINK=tg://proxy?server=${SERVER_IP}&port=${PORT}&secret=${SECRET}
EOF
echo "✅ 설정이 ~/mtproto_config.txt에 저장되었습니다."
# 마지막 로그 표시
echo ""
echo "📋 컨테이너 로그:"
sudo docker logs --tail 5 ${CONTAINER_NAME}
else
echo -e "${RED}❌ 오류${NC}"
sudo docker logs ${CONTAINER_NAME}
fi
```
- 스크립트를 실행 가능하게 만들고 실행합니다:
```bash
chmod +x start-mtproxy.sh
./start-mtproxy.sh
```
스크립트 분석
이 스크립트는 프록시를 빠르고 정확하게 구성하기 위한 일련의 작업을 수행합니다:
- Fake TLS 도메인 정의: 기본적으로
ya.ru가 사용됩니다. 이 도메인은 트래픽을 위장하기 위해 프록시 서버에 의해 시뮬레이션됩니다. 숙련된 사용자는 원하는 경우FAKE_DOMAIN을 다른 인기 있는 리소스로 변경할 수 있습니다. - 비밀 키 생성: 스크립트는 고유한 비밀 키를 생성합니다. 이 키는 텔레그램 클라이언트에서 Fake TLS 모드를 활성화하는 데 필수적인
ee접두사로 시작합니다. 이 접두사 다음에는 선택된FAKE_DOMAIN의 16진수 표현과 임의의 문자가 추가되어 총 30자의 길이를 이룹니다. 이는 비밀 키의 고유성과 보안을 보장합니다. - 443 포트 사용 가능 여부 확인: 표준 HTTPS 포트(443)는 Fake TLS에 선호됩니다. 이 포트를 사용하면 트래픽이 덜 의심스러워지기 때문입니다. 스크립트는 이 포트가 사용 가능한지 확인합니다. 만약 사용 중이라면, 대체 포트(8443, 8444 또는 8445)가 자동으로 선택됩니다.
- Docker 컨테이너 관리: 스크립트는 먼저 충돌을 피하기 위해 이전에 실행 중이던
mtproto-proxy라는 이름의 컨테이너를 중지하고 제거합니다. 그런 다음, 공식telegrammessenger/proxy이미지를 사용하여 새 Docker 컨테이너를 시작합니다. 시작 매개변수는 다음과 같습니다:
* -d: 컨테이너를 분리된 (백그라운드) 모드로 실행합니다.
* --name mtproto-proxy: 쉬운 관리를 위해 컨테이너에 이름을 할당합니다.
* --restart unless-stopped: 실패 또는 VPS 재부팅 시 컨테이너를 자동으로 다시 시작합니다.
* -p ${PORT}:443: 외부 포트(스크립트에 의해 결정됨)를 컨테이너의 내부 포트 443에 매핑합니다.
* -e SECRET="${SECRET}": 생성된 비밀 키를 환경 변수로 컨테이너에 전달합니다.
- 연결 정보 출력: 컨테이너를 성공적으로 시작한 후, 스크립트는 서버의 IP 주소, 사용된 포트, 생성된 비밀 키, 그리고 텔레그램에서 프록시에 자동 연결할 수 있는 바로 사용 가능한 링크를 표시합니다. 이 정보를 담은
~/mtproto_config.txt파일도 생성됩니다. - 상태 확인: 스크립트는 Docker 컨테이너가 실행 중인지 확인하고 빠른 진단을 위해 컨테이너 로그의 마지막 5줄을 출력합니다.
언제든지 다음 명령어를 사용하여 실행 중인 Docker 컨테이너의 상태를 확인할 수 있습니다:
sudo docker ps
출력 결과는 mtproto-proxy 컨테이너가 Up 상태로 표시되어야 합니다.
텔레그램에서 프록시 연결
프록시 서버를 성공적으로 배포한 후, 텔레그램 클라이언트 내에서 쉽게 연결할 수 있습니다. 두 가지 주요 방법이 있습니다:
자동 연결 (권장)
가장 간단한 방법은 스크립트가 생성한 링크를 사용하는 것입니다. 링크(예: tg://proxy?server=...)를 복사하여 브라우저에서 또는 텔레그램 내에서 직접 엽니다. 메신저는 프록시 서버를 추가하고 활성화할지 자동으로 묻는 메시지를 표시할 것입니다. "프록시 추가"를 탭하여 작업을 확인합니다.
수동 연결
자동 연결이 작동하지 않거나 수동 설정을 선호하는 경우, 스크립트가 제공한 정보(서버 IP 주소, 포트, 비밀 키)를 사용하여 다음 단계를 따르십시오:
- 모바일 기기 (Android/iOS):
1. 텔레그램을 열고 "설정"으로 이동합니다.
2. "데이터 및 저장 공간"을 선택합니다.
3. "프록시 설정"으로 이동합니다.
4. "프록시 추가"를 탭하고 유형으로 "MTProto"를 선택합니다.
5. 각 필드에 서버 IP 주소, 포트 및 비밀 키를 입력합니다.
- 데스크톱 클라이언트 (Windows/macOS/Linux):
1. 텔레그램을 열고 "설정"으로 이동합니다.
2. "고급" (또는 "고급 설정")을 선택합니다.
3. "연결 유형" 아래에서 "사용자 지정 프록시 사용"을 선택합니다.
4. "프록시 추가"를 클릭하고 유형으로 "MTProto"를 선택합니다.
5. 서버 IP 주소, 포트 및 비밀 키를 입력합니다.
핵심 요약
- 트래픽 난독화: Fake TLS는 MTProto 트래픽을 일반 HTTPS처럼 효과적으로 숨겨 차단하기 어렵게 만듭니다.
- 자율성: VPS에 자신만의 프록시를 구축하면 공용 서버로부터 독립성을 확보하여 안정성과 보안을 강화할 수 있습니다.
- 쉬운 배포: Docker와 자동화된 스크립트를 사용하면 몇 분 만에 프록시를 설정할 수 있습니다.
- 유연성: 스크립트는 사용 가능한 포트를 자동으로 선택하고 필요한 모든 연결 정보를 제공합니다.
- 제어: 인프라에 대한 완전한 제어권을 가지며 필요에 따라 스크립트를 수정할 수 있습니다.
— Editorial Team
아직 댓글이 없습니다.