Telegram için MTProto Proxy, Telegram mesajlaşma servisine güvenli ve gizlenmiş (obfuscated) erişim sağlamak üzere tasarlanmış, sunucu tarafında çalışan bir uygulamadır; başlıca kullanım amacı internet sansürünü aşmak ve trafiği bir aracı sunucu üzerinden yönlendirerek gizliliği artırmaktır.
MTProto Proxy nedir?
MTProto Proxy, Telegram mesajlaşma protokolüne (MTProto) özel olarak uyarlanmış bir proxy sunucu türüdür. Standart SOCKS5 veya HTTP proxy'lerin aksine, MTProto Proxy doğrudan MTProto protokolünü uygular ve böylece Telegram istemcileriyle sorunsuz şekilde bütünleşir. Temel işlevi Telegram trafiğini gizlemek, yani derin paket inceleme (DPI) sistemleri için trafiği sıradan HTTPS trafiğinden ayırt edilemez hale getirmektir. Bu yetenek, Telegram'ın engellendiği veya kısıtlandığı ortamlarda kritik önem taşır.
Temel özellikler:
* Protokole özel: Telegram'ın MTProto protokolünü doğrudan işler.
* Gizleme: Sansürü aşmak için Telegram trafiğini şifreler ve gizler.
* Sunucu tarafı: Ayrı bir sunucuya (VPS) kurulum gerektirir.
* İstemci entegrasyonu: Telegram istemcileri MTProto proxy'leri yerel olarak destekler.
Kurulum ön koşulları
MTProto Proxy kurmak için bir sanal özel sunucu (VPS) ve temel düzeyde Linux yönetimi bilgisi gerekir.
- Sunucu: root erişimi olan bir VPS.
- İşletim sistemi: Debian veya Ubuntu Linux dağıtımları yaygın olarak kullanılır ve iyi desteklenir. CentOS da uygundur.
- Kaynaklar: Temel bir proxy için düşük CPU ve RAM yeterlidir. 512MB RAM ve 1 vCPU genelde yüzlerce eşzamanlı kullanıcı için yeterli olur.
- Ağ: Gelen bağlantılar için açık bir port (gizleme amacıyla genelde varsayılan 443 ya da 80 kullanılır, ancak herhangi bir port yapılandırılabilir).
- İzinler: Sunucuda root veya sudo yetkileri.
- Araçlar: Temel Linux komut satırı araçları (örneğin
ssh,curl,aptveyayum,systemctl,ufwveyaiptables).
MTProto Proxy sunucusu kurulumu
MTProto Proxy dağıtımı için iki yaygın yöntem vardır: resmi Telegram proxy aracı ya da bir Docker konteyneri.
Yöntem 1: Resmi Telegram proxy (önerilir)
Bu yöntem, resmi Telegram proxy sunucu uygulamasının derlenip çalıştırılmasını içerir.
1. Sistemi güncelleyin ve bağımlılıkları kurun
sudo apt update && sudo apt upgrade -y
sudo apt install -y git build-essential libssl-dev zlib1g-dev
CentOS/RHEL için:
sudo yum update -y
sudo yum install -y git make gcc openssl-devel zlib-devel
2. Proxy'yi klonlayın ve derleyin
git clone https://github.com/TelegramMessenger/MTProxy.git
cd MTProxy
make && cd objs/bin
3. Secret oluşturun
İstemci kimlik doğrulaması ve trafik gizleme için bir secret gerekir.
head -c 16 /dev/urandom | xxd -ps
Bu komut 32 karakterlik onaltılık bir dize üretir. Bu dize sizin SECRET değeriniz olacaktır.
Örneğin: a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6
4. Proxy'yi çalıştırın (ilk test)
./mtproxy -p <PORT> -H <HOST_IP> -S <SECRET> --aes-pwd <PATH_TO_PROXY_SECRET_FILE> -M <WORKER_THREADS>
<PORT>: İstemcilerin bağlanacağı port (örneğin443).<HOST_IP>: Sunucunuzun genel IP adresi.<SECRET>: Önceden üretilen 32 karakterlik onaltılık secret.<PATH_TO_PROXY_SECRET_FILE>: Genellikle/etc/mtproxy/proxy-secret(dahili iletişim için bu dosyayı 64 baytlık rastgele bir secret ile oluşturun).<WORKER_THREADS>: İş parçacığı sayısı (örneğin1).
Örneğin:
mkdir -p /etc/mtproxy
head -c 64 /dev/urandom > /etc/mtproxy/proxy-secret
./mtproxy -p 443 -H 0.0.0.0 -S a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 --aes-pwd /etc/mtproxy/proxy-secret -M 1
0.0.0.0 tüm kullanılabilir ağ arayüzlerine bağlanır.
5. Systemd servisi olarak yapılandırın
Kalıcı çalışma için bir systemd servis birimi oluşturun.
/etc/systemd/system/mtproxy.service dosyasını oluşturun:
[Unit]
Description=MTProto Proxy for Telegram
After=network.target
[Service]
Type=simple
ExecStart=/root/MTProxy/objs/bin/mtproxy -p 443 -H 0.0.0.0 -S a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 --aes-pwd /etc/mtproxy/proxy-secret -M 1
WorkingDirectory=/root/MTProxy/objs/bin
User=root
Restart=on-failure
[Install]
WantedBy=multi-user.target
ExecStart parametrelerini kendi portunuz, secret değeriniz ve dosya yollarınızla değiştirin. MTProxy'yi farklı bir dizine klonladıysanız WorkingDirectory değerini de güncelleyin.
Systemd'yi yeniden yükleyin, servisi etkinleştirin ve başlatın:
sudo systemctl daemon-reload
sudo systemctl enable mtproxy
sudo systemctl start mtproxy
sudo systemctl status mtproxy
6. Güvenlik duvarı yapılandırması
Seçtiğiniz portu (örneğin 443) sunucunuzun güvenlik duvarında açın.
UFW (Ubuntu/Debian):
sudo ufw allow 443/tcp
sudo ufw enable # if not already enabled
IPTables (CentOS/RHEL veya UFW olmadan):
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo service iptables save # or use firewalld
Firewalld (CentOS/RHEL 7+):
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --reload
Yöntem 2: Docker (alternatif)
Docker kullanmak dağıtımı ve bağımlılık yönetimini basitleştirir.
1. Docker'ı kurun
İşletim sisteminiz için resmi Docker kurulum rehberlerini izleyin.
2. Secret oluşturun
head -c 16 /dev/urandom | xxd -ps
Bu sizin SECRET değerinizdir.
3. Proxy'yi Docker ile çalıştırın
docker run -d --name mtproxy-server -p 443:443 --restart=always \
telegrammessenger/proxy:latest \
-S a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 \
--aes-pwd /etc/mtproxy/proxy-secret -M 1
-d: Arka planda (detached) çalıştırır.--name mtproxy-server: Konteynere bir ad atar.-p 443:443: Host'un 443 portunu konteynerin 443 portuna eşler.--restart=always: Konteynerin Docker daemon ile birlikte yeniden başlamasını sağlar.telegrammessenger/proxy:latest: Resmi Docker imajı.-S <SECRET>: Ürettiğiniz secret.--aes-pwd /etc/mtproxy/proxy-secret: Yer tutucu. Docker imajı bu değeri kendi içinde üretir.-M 1: İş parçacığı sayısı.
Host güvenlik duvarınızın (UFW/Firewalld/IPTables) 443 portundaki trafiğe izin verdiğinden emin olun. Dahili ağı Docker yönetir.
Tag alma (isteğe bağlı)
Tag, proxy operatörlerinin sponsorlu bir kanalı proxy'lerine bağlamasına olanak tanıyan isteğe bağlı bir parametredir. Kullanıcılar tag'li bir proxy üzerinden bağlandığında, sponsorlu kanal sohbet listelerinin en üstünde görüntülenir.
Tag almak için:
1. Telegram'da @MTProxybot hesabına mesaj gönderin.
2. Bota /newproxy komutunu gönderin.
3. Proxy'nizin genel IP adresini ve portunu bildirin.
4. Bot size bir tag değeri verecektir.
Tag'i systemd servisinin ExecStart komutuna veya Docker komutuna ekleyin:
# Systemd (--tag <YOUR_TAG> ekleyin)
ExecStart=/root/MTProxy/objs/bin/mtproxy -p 443 -H 0.0.0.0 -S a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 --aes-pwd /etc/mtproxy/proxy-secret -M 1 --tag <YOUR_TAG>
# Docker (-T <YOUR_TAG> ekleyin)
docker run -d --name mtproxy-server -p 443:443 --restart=always \
telegrammessenger/proxy:latest \
-S a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 -M 1 -T <YOUR_TAG>
Tag'i ekledikten sonra MTProto Proxy servisini/konteynerini yeniden başlatın.
MTProto Proxy'ye bağlanma
Proxy sunucusu çalışmaya başladığında kullanıcılar doğrudan bir bağlantı üzerinden ya da manuel yapılandırmayla bağlanabilir.
Proxy bağlantı biçimi
Proxy'yi paylaşmanın en pratik yolu tg:// bağlantısıdır:
tg://proxy?server=<SERVER_IP>&port=<PORT>&secret=<SECRET>
Örnek: tg://proxy?server=192.0.2.1&port=443&secret=a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6
Telegram yüklü bir cihazda bu bağlantıya tıklamak, kullanıcıya proxy'yi ekleme isteği gösterir.
Telegram uygulamasında manuel yapılandırma
- Telegram ayarlarını açın.
- "Veri ve Depolama" bölümüne gidin (bazı istemcilerde "Gizlilik ve Güvenlik").
- "Proxy Ayarları"nı seçin.
- "Proxy Kullan" veya "SOCKS5/MTProto Proxy" seçeneğini açın.
- "MTProto Proxy" seçin.
- "Sunucu" alanına sunucunun genel IP adresini girin.
- "Port" alanına yapılandırdığınız portu (örneğin 443) girin.
- "Secret" alanına
SECRETdeğerini girin. - Ayarları kaydedin.
Telegram istemcileri bundan sonra yapılandırılan MTProto Proxy üzerinden bağlanmayı deneyecektir.
Güvenlik önerileri
- Sistemi güncel tutun: Güvenlik açıklarını kapatmak için sunucunuzun işletim sistemini ve kurulu paketleri düzenli olarak güncelleyin.
- Güçlü secret: Güçlü ve rastgele üretilmiş bir secret kullanın. Tahmin edilebilir kalıplardan kaçının.
- Güvenlik duvarı: Proxy portuna erişimi güvenlik duvarıyla sınırlayın. Yalnızca gerekli gelen bağlantılara izin verin.
- Logları izleyin: Olağandışı etkinlik veya hatalar için proxy loglarını düzenli olarak kontrol edin (systemd'de
journalctl -u mtproxy.service). - Minimum yetki: Resmi proxy basitlik adına çoğu zaman root olarak çalışsa da, mümkünse daha az yetkili bir kullanıcıyla çalıştırmayı değerlendirin; bu dosya izinlerini biraz karmaşıklaştırır.
Sık karşılaşılan sorunların giderilmesi
- Bağlantı kurulamıyor:
- Güvenlik duvarı: Proxy portunun sunucunun güvenlik duvarında açık olduğunu doğrulayın.
- Hatalı bilgiler: Telegram istemcisine girilen sunucu IP'sini, portu ve secret değerini tekrar kontrol edin.
- Proxy çalışmıyor: Proxy servisinin durumunu kontrol edin (
sudo systemctl status mtproxyveyadocker ps). - Ağ sorunları: Sunucunun internet bağlantısı olduğunu doğrulayın.
- Düşük performans:
- Sunucu kaynakları: VPS'inizde CPU, RAM ve ağ kullanımını izleyin. Kaynaklar tükeniyorsa yükseltin.
- Ağ gecikmesi: İstemci ile proxy sunucusu arasındaki yüksek gecikme hızı etkileyebilir.
- Bant genişliği: VPS'inizin kullanıcı sayısına yetecek bant genişliğine sahip olduğundan emin olun.
- Proxy başlamıyor:
- Loglar: Hata mesajları için systemd loglarını (
journalctl -u mtproxy.service) veya Docker loglarını (docker logs mtproxy-server) inceleyin. - Bağımlılıklar: Gerekli tüm derleme bağımlılıklarının kurulu olduğundan emin olun.
- Port çakışması: Seçtiğiniz proxy portunu başka bir servisin kullanmadığını doğrulayın.
- Loglar: Hata mesajları için systemd loglarını (
Karşılaştırma: MTProto Proxy vs. SOCKS5/HTTP proxy
| Özellik | MTProto Proxy | SOCKS5/HTTP proxy |
|---|---|---|
| Protokol | Telegram'ın yerel MTProto protokolü | Genel amaçlı SOCKS5 veya HTTP/HTTPS protokolleri |
| Gizleme | Yerleşik, DPI'ı aşmak için tasarlanmış | Çok az ya da hiç yok; trafik desenleri genelde tanınabilir |
| Sansür | Telegram engellemesine karşı çok etkili | Daha az etkili; protokol analiziyle engellenebilir |
| Güvenlik | Şifreli trafik, Telegram'a özel | TLS (HTTPS) ile kullanılırsa şifreli, aksi halde açık |
| Yapılandırma | Özel bir "Secret" gerekir; Telegram uygulamalarında yerleşik | Sunucu, port, (isteğe bağlı) kullanıcı adı/parola; genel proxy ayarları |
| Kullanım amacı | Öncelikle kısıtlı bölgelerde Telegram erişimi | Genel internet trafiği, çeşitli uygulamalar |
| Performans | Telegram trafiği için optimize edilmiş | Genel amaçlı; performans uygulamaya göre değişir |
