VPS uzerinde obfs4 Tor koprusu nasil kurulur?
Dusuk maliyetli bir VPS sunucusunda obfs4 Tor koprusu kurulumunu adim adim ogrenin. torrc yapilandirmasi, guvenlik duvari ayarlari ve calistigini dogrulayan log kayitlari.
Tor köprüsünün ne olduğu ve neden var olduğu
Tor köprüsü, adresi halka açık röle listesinde yayımlanmayan, Tor ağına bir giriş noktasıdır. Konsensüs olarak adlandırılan bu liste, herkesin indirebileceği imzalı bir belgedir ve sansürcüler de bunu indirir. Tor'u bu listeden engellemek bir öğleden sonrayı alır: konsensüsü çekin ve ardından içindeki her adresi sınırda engelleyin. Köprüler, yayımlanan listenin zayıf nokta olması nedeniyle vardır. Köprü adresleri birer ikişer dağıtılır, bu sayede tek bir istek tüm listeyi ele geçirmez.
Listelenmemiş bir adres çözümün yalnızca yarısıdır. Trafiği adresine göre değil içeriğine göre sınıflandıran derin paket incelemesi (DPI), bir Tor bağlantısını TLS (taşıma katmanı güvenliği) el sıkışmasının şeklinden tanır. Listesi olmayan bir sansürcü bile "bu Tor'a benziyor" diyebilir ve bağlantıyı düşürebilir. Takılabilir taşıma (pluggable transport) bu sinyali ortadan kaldırır. İstemci tarafında Tor akışını başka bir şeye sarar ve köprünüz bunu açar.
obfs4, çoğu köprünün çalıştırdığı taşıma yöntemidir. Akışı, başlığı ve sabit bir el sıkışması olmayan baytlara dönüştürür, böylece DPI'ın eşleştirebileceği bir desen kalmaz. Ayrıca istemcinin kimliğini doğrular. Bir köprü satırındaki cert= değeri, köprü yanıt vermeden önce istemcinin sahip olduğunu kanıtlaması gereken bir anahtardır; bu, aktif taramayı etkisiz hale getirir: adresinize Tor konuşup konuşmadığını test etmek için bağlanan bir sansürcü hiçbir yanıt alamaz ve hiçbir şey öğrenemez.
Hangi pluggable transport çalıştırılmalı?
- obfs4 bir adet VPS, iki adet TCP portu ve alan adı gerektirmez. Çalıştırabileceğiniz en kolay ve işlevsel araçtır; bu kılavuzun da konusudur.
- WebTunnel, bağlantıyı gerçek bir web sitesine giden olağan HTTPS trafiği içine gizler. Tor Project, bunun için mümkünse statik bir IPv4 adresi, kontrolünüzde olan bir alan adı, NGINX veya Apache gibi çalışan bir web sunucusu, geçerli bir TLS sertifikası ve en az 1 GB RAM (4 GB önerilir) gerektirdiğini belirtir. Rastgele görünen trafiğin şüpheli karşılandığı ağlar için uygundur; çünkü web tarama dışında neredeyse hiçbir şeye izin vermeyen bir ülke bile HTTPS trafiğine izin vermektedir.
- Snowflake farklı bir katkı yöntemidir. Gönüllüler kısa ömürlü WebRTC proxy'leri çalıştırır; böylece giriş noktaları sürekli değişir ve sansürcünün engelleyebileceği sabit bir adres kalmaz. Bunun için bir köprü (bridge) işletmezsiniz. Yalnızca bir proxy çalıştırırsınız ve sabit bir adrese ihtiyaç duymazsınız.
İşe obfs4 ile başlayın. Daha sonra ikinci bir adres üzerinden WebTunnel köprüsü ekleyebilirsiniz: her ikisini tek bir IP üzerinde çalıştırmak, engellenen tek bir adresin her iki servisi de devre dışı bırakması anlamına gelir.
Bir köprü çalıştırmanın maliyeti nedir?
Bu grafiğin arkasındaki veriler
[
{
"label": "Bridge, minimum",
"min_upstream_mbit": 1
},
{
"label": "Guard or middle relay, minimum",
"min_upstream_mbit": 10
},
{
"label": "Guard or middle relay, recommended",
"min_upstream_mbit": 16
}
]Ekim 2026 itibarıyla Tor Project, bir köprü için en az 1 Mbit/s değerinde yükleme ve indirme bant genişliği talep etmektedir. Bir guard veya middle relay için 10 Mbit/s talep edilmekte olup, 16 Mbit/s önerilmektedir. Bunlar yayınlanmış gereksinimlerdir, ölçüm değerleri değildir. Yeni bir köprü genellikle haftalarca kendi minimum değerinin çok altında çalışır. Aynı gereksinimler sayfası, bir relay için aylık en az 100 GByte giden trafik talep eder; en küçük planlar bile bunu karşıladığından, daha büyük bir yapılandırma yapmadan önce küçük bir VPS'in aylık gerçek maliyeti konusunu inceleyin.
Kötüye kullanım yüzeyi küçüktür ve insanların yanlış anladığı nokta burasıdır. Bir köprü ilk sıçrama noktasıdır. Sunucunuzdan çıkan trafik başka bir Tor relay'ine gider, asla kullanıcının seçtiği bir web sitesine gitmez. IP adresiniz hiçbir yabancının web günlüğünde bir isteğin kaynağı olarak görünmez, bu nedenle exit relay operatörlerinin uğraştığı şikayet e-postaları buraya ulaşmaz. Yine de servis sağlayıcınızın kullanım politikasını kontrol edin, çünkü bazı barındırma firmaları her türlü Tor servisini özel bir durum olarak değerlendirir. Bir köprü ve bir onion servisi bu açıdan birbirinin aynasıdır: bir köprü yalnızca adresi erişilebilir olduğu ve zamanla dağıtıldığı için faydalıdır; aynı tür bir VPS üzerindeki v3 onion servisi ise yalnızca genel IP adresiniz gizli kaldığı sürece faydalıdır.
Yapılmaması gereken bir şey: mevcut bir genel relay'i aynı adreste bir köprüye dönüştürmektir. Tor Project'in bu durum için tavsiyesi "IP adresini, ismi ve parmak izini" değiştirmektir, çünkü eski adres sansürcülerin indirdiği konsensüs listesinde zaten yer almaktadır. Geçen hafta genel relay olan bir köprü, halihazırda bir engelleme listesinde olan bir köprüdür.
Çalışma süresi (uptime) hızdan daha önemlidir. Relay gereksinimleri, "relay'iniz günde 2 saatten fazla çalışmıyorsa kullanışlılığı sınırlıdır" der ve bir köprü bu konuda relay'den daha kötü durumdadır, çünkü her istemcinin tek bir adresi vardır ve yedekleme mekanizması bulunmaz. Bir yeniden başlatma, üzerindeki tüm kullanıcıları düşürür. Köprünün yanıt vermeyi kestiği günü öğrenmek için obfs4 portuna karşı Uptime Kuma üzerinde bir TCP port kontrolü yapılandırın.
Tor'u Tor Project deposundan kurma
Dağıtım paketleri güncel değildir; bridge ise güncel tutulması gereken bir güvenlik yazılımıdır. Öncelikle projenin kendi deposunu ekleyin.
sudo apt update
sudo apt install -y apt-transport-https gnupg wget lsb-release
wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | sudo tee /usr/share/keyrings/deb.torproject.org-keyring.gpg >/dev/nullŞimdi kaynak dosyasını oluşturun. Suites: satırı dağıtımınızın sürüm kod adını içermelidir; bu yüzden kod adını ezberden yazmak yerine sistemden okuyun.
sudo tee /etc/apt/sources.list.d/tor.sources >/dev/null <<EOF
Types: deb deb-src
URIs: https://deb.torproject.org/torproject.org/
Suites: $(lsb_release -cs)
Components: main
Signed-By: /usr/share/keyrings/deb.torproject.org-keyring.gpg
EOF
sudo apt update
sudo apt install -y tor deb.torproject.org-keyring obfs4proxyEğer apt update, kod adınız için depoda bir Release dosyası bulunmadığını bildirirse, Tor Project bu sürümü desteklemiyor demektir. /etc/apt/sources.list.d/tor.sources dosyasını silin, sudo apt update komutunu tekrar çalıştırın ve dağıtımınızın sunduğu tor paketini kurun. Aşağıdaki tüm adımlar aynıdır.
obfs4proxy paketi doğrudan Debian ve Ubuntu depolarından gelir (Ekim 2026 itibarıyla Debian 13 üzerinde 0.0.14 sürümü). İkilinin (binary) nereye kurulduğunu doğrulayın, çünkü yapılandırma dosyasında bu yol kullanılacaktır:
command -v obfs4proxy || command -v lyrebirdUpstream geliştiriciler projeyi lyrebird olarak yeniden adlandırdığı için, daha yeni bir paket bunun yerine /usr/bin/lyrebird dosyasını kurabilir. Komutun çıktı olarak verdiği yolu kullanın.
/etc/tor/torrc icerisinde kopru yapilandirmasi
BridgeRelay 1
ORPort 8443
ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy
ServerTransportListenAddr obfs4 0.0.0.0:9443
ExtORPort auto
ContactInfo you@example.com
Nickname PickANickname
BridgeDistribution anyBu satirlarin her biri bir hata potansiyeli tasir, bu nedenle her birini sirasiyla ele alin.
BridgeRelay 1, tor uygulamasina tanimlayicisini genel konsensüs yerine kopru yetkilisine (bridge authority) gondermesi talimatini verir. Bu tek satir, relay sunucusunun listelenmemesini saglar.
ORPort, gercek Tor portudur. Bu portun internetten erisilebilir olmasi gerekir; cunku tor bunu test eder ve test basarili olana kadar tanimlayici yayinlamayi reddeder.
ServerTransportPlugin, tor uygulamasina calistiracagi komutu verir. tor, obfs4proxy'yi bir alt surec olarak baslatir ve onunla bir pipe uzerinden iletisim kurar; bu nedenle obfs4proxy'nin kendine ait bir servis birimi yoktur ve asla systemctl status icerisinde gorunmez.
ServerTransportListenAddr, obfs4proxy'nin dinleyecegi portu sabitler. Bu satiri eklemezseniz, obfs4proxy baslangicta bos bir port secer ve cogu yeniden baslatma sonrasinda farkli bir port kullanir; bu durumda dagittiginiz her kopru satiri, hicbir servisin dinlemedigi bir porta isaret eder. Bu istemciler baglanti reddi alir ve denemeyi birakir.
ExtORPort auto, obfs4proxy'nin tamamlanan baglantilari istemci adresiyle birlikte tor'a geri iletmek icin kullandigi bir loopback kanali olan genisletilmis ORPort'u acar. Tor Project kurulum kilavuzu bunu her kopru icin dahil eder; cunku bu olmadan tasima katmani, adresi tor'a raporlayamaz.
ContactInfo ve Nickname herkese aciktir. Tor Project'in bozuk bir kopru hakkinda sizinle iletisime gecebilmesi icin okuyabileceginiz bir adres kullanin ve gizli kalmak istiyorsaniz sizi tanimlamayan bir takma ad secin.
BridgeDistribution, adresinizin kullanicilara hangi dagitici tarafindan verilecegini secer. Kabul edilen degerler https, email, telegram, settings, none ve any'dir. Ilk koprunuz icin any kullanin ve sistemin karar vermesine izin verin. Kendinizin dagitacagi ozel bir kopru icin none kullanin; bu, adresin genel dagitimdan tamamen uzak tutulmasini saglar.
Port seçiminin önemi
Her iki port için de 9001 değerini kullanmaktan kaçının. Tor Project bunu doğrudan belirtmektedir; çünkü 9001 geleneksel ORPort'tur ve sansürcüler interneti bu port için taramaktadır. tor ve obfs4proxy kendi dinleyicilerini ayrı ayrı bağladığından, bu iki port birbirinden farklı olmalıdır.
En güçlü obfs4 portu 443'tür. Giden 443 trafiği neredeyse tüm kısıtlı ağlarda açıktır ve bu porta kurulan uzun süreli bir bağlantı, sıradan bir web oturumu gibi görünür. 1024'ün altındaki portlara bağlanmak fazladan bir adım gerektirir, çünkü obfs4proxy root yetkisiyle çalışmaz:
sudo setcap cap_net_bind_service=+ep /usr/bin/obfs4proxy
sudo systemctl edit tor@.service tor@default.serviceAçılan her düzenleyicide şu iki satırı ekleyin:
[Service]
NoNewPrivileges=noBu yetenek tek başına yeterli değildir. systemd'nin NoNewPrivileges ayarı, bir sürecin üst sürecinde bulunmayan herhangi bir ayrıcalığı kazanmasını engeller; dosya yeteneği de tam olarak budur, bu nedenle ayar etkin kaldığı sürece obfs4proxy 443 portuna bağlanamaz.
Bu adımı atlamak isterseniz, dikkat çekmeyen yüksek bir port seçin ve not edin. Ne seçerseniz seçin, obfs4 portunu daha sonra değiştirmeyin. Bir köprü satırı; adresi, portu, parmak izini ve sertifikayı birbirine bağlar; bu nedenle port değiştiği anda kullanıcının tarayıcısında kayıtlı olan tüm kopyalar geçersiz hale gelir.
Her iki güvenlik duvarında da portları açın
sudo ufw allow 8443/tcp
sudo ufw allow 9443/tcp
sudo ufw statusHer iki portun da açık olması gerekir. Çoğu sağlayıcı, kontrol panellerinde ufw'nin erişemediği ikinci bir güvenlik duvarı çalıştırır. Sunucu üzerinde tanımlı olup panelde bulunmayan bir kural, asla erişilemeyen ve tanımlayıcı yayınlamayan bir köprü oluşturur. Bu konulardan herhangi biri yeni geliyorsa, yeni bir VPS için gerekli ufw kuralları ve Linux'ta dinleme portunun gerçekte ne olduğu konuları bu süreci açıklar. Hazır buradayken, SSH erişimini anahtarlar ve sıkılaştırılmış bir sshd yapılandırması ile kısıtlayın. Parola tabanlı SSH kullanılan bir sunucuda listelenmemiş bir köprü, hala parola tabanlı SSH kullanılan bir sunucudur.
Servisi başlatın ve günlük kayıtlarını okuyun
sudo systemctl enable --now tor.service
sudo systemctl restart tor.service
sudo journalctl -e -u tor@defaultDebian ve Ubuntu iki birim ile gelir. tor.service küçük bir sarmalayıcıdır, tor@default.service ise asıl işi yapan süreçtir. Bu nedenle journalctl -u tor neredeyse boş görünürken, ihtiyaç duyduğunuz günlük kayıtları tor@default altında yer alır.
İki satır, işlemin başarılı olduğunu gösterir:
Self-testing indicates your ORPort is reachable from the outside. Excellent. Publishing server descriptor.
Registered server transport 'obfs4' at '0.0.0.0:9443'İlk satır, erişilebilirlik testinin geçtiğini ve tanımlayıcının köprü otoritesine (bridge authority) ulaştığını belirtir. Eğer bu satır görünmüyorsa, internet ile sunucunuz arasındaki bir engel ORPort trafiğini düşürüyor demektir. İkinci satır, yapılandırdığınız portu göstermelidir. Orada farklı bir port görünüyorsa, tor ServerTransportListenAddr ayarını uygulamamış demektir; bunun yaygın nedeni taşıyıcı isimlerinin uyuşmamasıdır: her iki yönergede de obfs4 yazmalıdır.
İki dinleyicinin varlığını doğrulayın:
sudo ss -lntp | grep -E 'tor|obfs4|lyrebird'Bridge satırım nerede?
obfs4proxy, tor veri dizini içerisine bir şablon yazar:
sudo cat /var/lib/tor/pt_state/obfs4_bridgeline.txtBu dizin tor kullanıcısına aittir ve izinleri 700 modundadır; bu nedenle sudo olmadan Permission denied hatası alırsınız. Dosya şu biçimde bir satır içerir:
Bridge obfs4 <IP ADDRESS>:<PORT> <FINGERPRINT> cert=<CERTIFICATE> iat-mode=0<IP ADDRESS> kısmını sunucunuzun genel adresiyle, <PORT> kısmını ORPort ile değil obfs4 portu ile ve <FINGERPRINT> kısmını tor'un veri dizinine yazdığı kimlik parmak izi (identity fingerprint) ile değiştirin:
sudo cat /var/lib/tor/fingerprint
sudo cat /var/lib/tor/hashed-fingerprintİlk dosya, takma adınızı ve bir bridge satırında bulunması gereken kimlik parmak izini tutar. İkinci dosya ise, bridge'inizin çalışıp çalışmadığını ve yaklaşık kaç istemcinin ona ulaştığını görmek için Relay Search kısmına yapıştırdığınız özetlenmiş (hashed) parmak izini tutar. Bu ikisi birbirinin yerine kullanılamaz. Özetlenmiş değeri taşıyan bir bridge satırı, bridge'inizin sunduğu kimlik anahtarıyla eşleşmez; bu yüzden istemci, yeni açtığı bağlantıyı reddeder.
Bir bridge kullanıcılara fiilen nasıl ulaşır?
Bridge satırınızı kimseye elden vermezsiniz. Tanımlayıcı (descriptor) bridge otoritesine ulaştığında, dağıtım sistemi (BridgeDB'nin halefi olan rdsys), bridge'inizi bir dağıtıcıya atar ve kullanıcılar o dağıtıcıdan bridge talep eder. Ekim 2026 itibarıyla izlenen yollar şunlardır:
- bridges.torproject.org/options adresindeki bridge web sitesi; burada "Just give me bridges!" seçeneği doğrudan obfs4 satırlarını döndürür. Herhangi bir captcha yoktur: Tor Project, rdsys BridgeDB'nin yerini aldığında bunu kaldırmıştır; bu değişiklik Aralık 2024'te duyurulmuştur.
- Gmail veya Riseup adresinden bridges@torproject.org adresine gönderilen ve yanıt olarak bridge satırları içeren e-postalar. Sağlayıcı kısıtlaması mevcuttur çünkü sınırsız ücretsiz hesaplar, bir sansürcünün her bir bridge'i listeleyebilmesine olanak tanırdı.
- Telegram botu @GetBridgesBot.
/startkomutunu gönderin, ardından/obfs4veya/webtunnelseçeneğini kullanın. - Tor Browser'ın kendi içindeki Ayarlar ve ardından Bağlantı sekmesi; burada "Request bridges" seçeneği, bridge'leri moat kanalı üzerinden getirir.
Yeni bir bridge, kurulumdan yaklaşık üç saat sonra Relay Search üzerinde görünür. Kullanıcıların gelmesi çok daha uzun sürer: Tor Project'in kendi ifadesiyle "Tutarlı bir kullanıcı kitlesi görmeniz birkaç gün veya hafta sürebilir." İlk iki haftanın sessiz geçmesi normaldir, bir hata değildir.
BridgeDistribution none ayarını yapmak, tüm bu süreçlerden çıkmanızı sağlar. Bu durumda bridge satırı tamamen size kalır ve onu, sansürcünün izlemediği bir kanal üzerinden ihtiyaç duyan kişilere iletebilirsiniz.
Bir şeyler çalışmadığında
Log dosyasında kendi kendini test etme satırı yok. ORPort erişilebilir durumda değil. Başka bir makineden nc -vz your.ip 8443 ile test edin. Bağlantının askıda kalması paketlerin düşürüldüğü anlamına gelir; bu durumda ufw ayarlarını ve servis sağlayıcınızın panelini kontrol edin. Bağlantının reddedilmesi tor servisinin dinleme yapmadığını gösterir; ss -lntp komutunu kontrol edin ve yapılandırma hatası olup olmadığını görmek için log kayıtlarını okuyun.
Kayıtlı transport, seçmediğiniz bir portu gösteriyor. tor, ServerTransportListenAddr ayarını yok saydı. Transport ismi, ServerTransportPlugin içindeki isimle tam olarak eşleşmelidir ve her ikisi de obfs4 olmalıdır.
obfs4proxy 443 numaralı portu bağlayamıyor. getcap /usr/bin/obfs4proxy ile yetkiyi doğrulayın, ardından geçersiz kılma işleminin birime ulaştığını systemctl show tor@default -p NoNewPrivileges ile teyit edin. Eğer çıktı NoNewPrivileges=yes değerini döndürüyorsa, eklediğiniz drop-in dosyası çalışmayan bir birime yönlendirilmiştir.
/var/lib/tor/pt_state/ içinde hiçbir şey yok. tor transportu başlatamadı; bu, ServerTransportPlugin içindeki yolun yanlış olduğu anlamına gelir. Bu yolu command -v obfs4proxy çıktısı ile karşılaştırın.
Bir değişiklikten sonra istemciler bağlanmayı bıraktı. Adreste veya obfs4 portunda yapılan herhangi bir değişiklik, halihazırda dağıtılmış olan tüm bridge satırlarını geçersiz kılar. Sunucunun genel IP adresinin değişip değişmediğini kontrol edin; bazı sağlayıcılarda yeniden kurulum yapıldığında bu durum gerçekleşebilir.
tor hiç başlamıyor. sudo -u debian-tor tor --verify-config -f /etc/tor/torrc komutunu çalıştırın. Bu komut dosyayı ayrıştırır, itiraz ettiği satırı yazdırır ve çalışan servise müdahale etmez.
FAQ
VPS sağlayıcım Tor köprüsü (bridge) kurduğum için sorun çıkarır mı?
Köprü bir giriş noktasıdır; bu nedenle sunucunuzdan çıkan trafik diğer Tor aktarıcılarına (relay) gider, kullanıcının seçtiği bir siteye doğrudan gitmez. IP adresiniz, bir isteğin kaynağı olarak hiçbir web günlüğünde görünmez; çıkış aktarıcısı (exit relay) operatörlerinin karşılaştığı şikayetlerin temel nedeni de budur. Barındırma kuralları sağlayıcıya göre değişir ve bazı sağlayıcılar her türlü Tor servisini özel bir durum olarak değerlendirir. Bu nedenle başlamadan önce kullanım koşullarını okuyun ve okuduğunuz adresi ContactInfo içine ekleyin.
Bir Tor köprüsü ne kadar bant genişliği kullanır?
Yayınlanan minimum değer, bir guard veya orta aktarıcı için 10 Mbit/s iken, köprü için 1 Mbit/s'dir. Gerçek kullanım sıfıra yakın başlar, çünkü köprünüz yalnızca bir dağıtıcının yönlendirdiği kullanıcıların trafiğini taşır. Kesin bir üst sınır belirlemek isterseniz, torrc dosyasında RelayBandwidthRate ve RelayBandwidthBurst ayarlarını yapılandırın.
Yeni köprüme neden kimse bağlanmadı?
Bir köprünün Relay Search üzerinde görünmesi yaklaşık üç saat sürer; Tor Project'in rehberine göre düzenli bir kullanıcı kitlesine ulaşmak ise birkaç gün veya hafta alabilir. journalctl -u tor@default içindeki kendi kendini test etme satırının yayınlandığını kontrol edin, Relay Search üzerinde karma (hashed) parmak izinizi aratın ve BridgeDistribution değerinin none olarak ayarlanmadığından emin olun.
obfs4 mü yoksa WebTunnel mı çalıştırmalıyım?
İlk köprünüzü kuruyorsanız obfs4 kullanın: tek bir VPS, iki port, alan adı veya sertifika gerektirmez. Rastgele görünümlü trafiğin engellendiği durumlarda WebTunnel kullanın; bu yöntem kontrol ettiğiniz bir alan adı, gerçek bir web sunucusu, geçerli bir TLS sertifikası ve en az 1 GB RAM gerektirir. Her ikisini de çalıştırıyorsanız farklı adreslerde tutun; aksi takdirde engellenen tek bir IP, iki köprüyü birden devre dışı bırakır.
obfs4 portunu daha sonra değiştirirsem ne olur?
Dağıtılmış olan tüm köprü satırları çalışmayı durdurur. Bir köprü satırı; adresi, portu, parmak izini ve sertifikayı birbirine bağlar. Eski satıra sahip bir istemci, dinleyicisi olmayan bir porta bağlantı açmaya çalışır ve başarısız olur. Aynı durum sunucunun genel IP adresi değiştiğinde de geçerlidir. Portu kurulum sırasında seçin ve değiştirmeyin.