İçeriğe geç
Guides 7 dk okuma 1317 görüntülenme

Proxy olarak SSH tüneli

SSH tünellerini güvenli bir SOCKS proxy olarak kullanmayı öğrenin: verilerinizi şifreleyin, gizli ve kısıtlamasız gezinin.

Security
Proxy olarak SSH tüneli

Bir SSH tüneli, SSH istemcisinin dinamik port yönlendirme özelliği sayesinde SOCKS proxy olarak kullanılabilir; böylece yerel bir porttan gelen trafik SSH sunucusu üzerinden, o sunucunun erişebildiği ağdaki herhangi bir hedefe iletilir.

SSH üzerinden SOCKS'u anlamak

SOCKS (Socket Secure), ağ paketlerini bir istemci ile sunucu arasında bir proxy sunucu üzerinden yönlendiren bir internet protokolüdür. SSH'nin dinamik port yönlendirmesiyle birleştiğinde, SSH istemcisi yerel bir SOCKS proxy sunucusu oluşturur. Bu yerel SOCKS proxy'sini kullanacak şekilde yapılandırılan her uygulamanın trafiği şifrelenir ve SSH bağlantısı üzerinden uzak SSH sunucusuna yönlendirilir. SSH sunucusu ise SOCKS proxy görevi görerek istemci adına nihai hedefe bağlantı kurar.

Bu mekanizma, istemcinin ağ erişimini fiilen SSH sunucusunun erişim alanına genişletirken, istemci ile SSH sunucusu arasında iletilen tüm verileri de şifreler.

Dinamik port yönlendirme nasıl çalışır

SSH'de -D seçeneğiyle belirtilen dinamik port yönlendirme, SSH istemcisine şunları yaptırır:
1. Belirtilen yerel portu gelen bağlantılar için dinlemek.
2. Bu yerel porta bir bağlantı geldiğinde SOCKS sunucusu gibi davranmak.
3. İstemci uygulamayla (örneğin bir web tarayıcısıyla) SOCKS protokolünü müzakere etmek.
4. SOCKS isteğine (hedef host ve portu içerir) dayanarak bu isteği şifreli SSH tüneli üzerinden SSH sunucusuna iletmek.
5. SSH sunucusu daha sonra kendi ağ bağlamından hedef host ve porta bir bağlantı başlatır.
6. İstemci uygulama ile hedef host arasında bundan sonra alınıp verilen tüm veriler SSH tüneli üzerinden aktarılır ve istemci ile SSH sunucusu arasında şifrelenir.

SSH SOCKS proxy kurulumu

SSH SOCKS proxy oluşturmak için bir SSH istemcisiyle uzak bir SSH sunucusuna bağlanılır. Sunucunun TCP yönlendirmeye izin verecek şekilde yapılandırılmış olması gerekir (bu genellikle sshd_config içindeki AllowTcpForwarding yes ile varsayılan olarak açıktır).

Dinamik port yönlendirme kurmak için temel komut:

ssh -D [LOCAL_PORT] [USER]@[SSH_SERVER_IP] -N -f

Komut seçeneklerinin açıklaması:

  • -D [LOCAL_PORT]: dinamik port yönlendirmeyi belirtir. SSH istemcisi yerel makinede LOCAL_PORT portunu dinler. Bu port SOCKS proxy olarak çalışır. LOCAL_PORT için yaygın seçimler 1080, 8080, 9050 veya 1024 üzerindeki herhangi bir ayrıcalıksız porttur.
  • [USER]: uzak SSH sunucusunda kimlik doğrulama için kullanılan kullanıcı adı.
  • [SSH_SERVER_IP]: uzak SSH sunucusunun IP adresi veya hostname'i.
  • -N: uzak komut çalıştırmayı engeller. Yalnızca port yönlendirme istendiğinde, etkileşimli kabuk olmadan kullanılır.
  • -f: komut çalıştırılmadan önce ssh işlemini arka plana alır. Böylece SSH tüneli arka plan süreci olarak çalışır. Verilmezse SSH bağlantısı ön planda kalır.
  • -q: uyarı ve tanılama mesajlarının çoğunu bastırır.
  • -C: tüm verilerin sıkıştırılmasını ister (stdin, stdout, stderr ile yönlendirilen X11 ve TCP verileri dahil). Yavaş bağlantılarda faydalıdır.

Örnek kurulum:

Yerel 8080 portunu dinleyen ve [email protected] adresine bağlanan bir SOCKS proxy oluşturmak için:

ssh -D 8080 [email protected] -N -f

Bu komut çalıştırıldıktan sonra SSH istemci süreci arka planda çalışır ve localhost:8080 adresini dinler.

İstemcileri SOCKS proxy'yi kullanacak şekilde yapılandırma

SSH SOCKS proxy etkin olduğunda, uygulamaların trafiklerini localhost:[LOCAL_PORT] üzerinden yönlendirecek şekilde yapılandırılması gerekir.

Web tarayıcıları

Firefox:
  1. Firefox ayarlarını açın.
  2. "proxy" araması yapın veya "Ağ Ayarları" bölümüne gidin (genellikle about:preferences#general -> Ağ Ayarları).
  3. "Elle proxy yapılandırması" seçeneğini işaretleyin.
  4. "SOCKS Sunucusu" alanına localhost ve PORT değerini (örneğin 8080) girin.
  5. "SOCKS v5" seçeneğini seçin.
  6. DNS sızıntılarını önlemek için "SOCKS v5 kullanılırken DNS'i proxy üzerinden çöz" seçeneğinin işaretli olduğundan emin olun.
  7. Tamam'a tıklayın.
Chrome/Chromium:

Chrome'da yerleşik SOCKS proxy ayarı yoktur. Genellikle sistem proxy ayarlarına dayanır ya da komut satırı bayrakları veya eklentiler gerektirir.

Komut satırı bayraklarıyla (geçici):

google-chrome --proxy-server="socks5://localhost:8080" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost"

--host-resolver-rules bayrağı, DNS isteklerinin de SOCKS5 proxy üzerinden gitmesini sağlayarak DNS sızıntılarını önler.

Proxy değiştirici eklentilerle:
"Proxy SwitchyOmega" gibi bir tarayıcı eklentisi kurun ve localhost:[LOCAL_PORT] adresindeki SOCKS5 proxy'yi kullanacak şekilde yapılandırın.

İşletim sistemi genelinde proxy ayarları (macOS/Windows/Linux masaüstü ortamları)

Birçok işletim sistemi, sistem genelinde SOCKS proxy tanımlamaya izin verir. Bu, sistem proxy ayarlarına uyan uygulamaların çoğunu etkiler.

  • macOS: Sistem Ayarları -> Ağ -> ağ hizmetini seçin -> Ayrıntılar -> Proxy'ler -> "SOCKS Proxy" kutusunu işaretleyin -> localhost ve PORT girin.
  • Windows: Ayarlar -> Ağ ve İnternet -> Proxy -> elle proxy kurulumu -> "Proxy sunucusu kullan" seçeneğini açın -> "SOCKS proxy" alanına localhost ve PORT yazın.
  • Linux (GNOME/KDE): genellikle sistem ayarlarındaki Ağ veya Proxy bölümünde bulunur; macOS/Windows'a benzer.

Komut satırı araçları

curl:
curl --socks5-hostname localhost:8080 http://example.com

--socks5-hostname kullanmak, DNS çözümlemesinin de SOCKS proxy sunucusu üzerinden yapılmasını sağlar ve olası DNS sızıntılarını önler.

git:

Git'i HTTPS/HTTP veya SSH bağlantılarında SOCKS proxy kullanacak şekilde yapılandırın.

HTTPS/HTTP için:

git config --global http.proxy socks5://localhost:8080
git config --global https.proxy socks5://localhost:8080

SSH için (Git klonlama/push işlemlerinde SSH kullanıyorsa):
~/.ssh/config dosyasını düzenleyin:

Host github.com
    ProxyCommand nc -X 5 -x localhost:8080 %h %p

Bu, SSH'ye github.com adresine yerel SOCKS5 proxy üzerinden bağlanmasını söyler.

proxychains-ng:

SOCKS proxy'leri doğrudan desteklemeyen uygulamalar için proxychains-ng bunları proxy kullanmaya zorlayabilir.
1. proxychains-ng kurun: genellikle paket yöneticileriyle edinilebilir (örneğin sudo apt install proxychains4).
2. Yapılandırın: /etc/proxychains.conf ya da (oluşturulduysa) ~/.proxychains/proxychains.conf dosyasını düzenleyip şunu ekleyin:
socks5 127.0.0.1 8080
3. Uygulamayı çalıştırın:
bash proxychains4 [your_application]

Kullanım senaryoları

SSH SOCKS proxy'leri birkaç pratik avantaj sunar:

  • Ağ kısıtlamalarını aşma: trafiği kısıtlama olmayan bir ağdaki SSH sunucusu üzerinden yönlendirerek yerel güvenlik duvarları veya coğrafi kısıtlamalarla engellenen hizmet ve sitelere erişin.
  • Şifresiz trafiği şifreleme: istemci ile SSH sunucusu arasındaki tüm trafik şifrelenir; bu da özellikle halka açık Wi-Fi ağlarında verileri dinlenmeye karşı korur.
  • Özel ağ kaynaklarına erişim: SSH sunucusu özel bir ağın içindeyse (örneğin kurumsal bir LAN), SOCKS proxy dışarıdan o ağdaki kaynaklara güvenli erişim sağlayabilir.
  • İstemci IP adresini gizleme: hedef sunucuya göre bağlantı, SSH sunucusunun IP adresinden geliyormuş gibi görünür; bu istemciye bir anonimlik katmanı sağlar.
  • Güvenli uzaktan yönetim: hizmetlerin kendisi şifrelemeyi desteklemese bile uzak servislere (örneğin veritabanları, web sunucuları) şifreli bir tünel üzerinden erişin.

SSH tüneli ile VPN karşılaştırması

Hem SSH tünelleri hem de VPN'ler (Virtual Private Network) şifreli ağ erişimi sağlasa da kapsam ve uygulama bakımından farklıdırlar.

Özellik SSH SOCKS proxy (tünel) VPN (örneğin OpenVPN, WireGuard)
Kapsam Uygulamaya özel (SOCKS destekleyen uygulamalar) veya elle yapılandırma. Sistem genelindeki tüm ağ trafiği.
Kurulum karmaşıklığı Nispeten basit (tek bir SSH komutu). Sunucu kurulumu, istemci yapılandırması ve sertifikalar gerektirir.
Protokol SSH üzerinden SOCKS (TCP). Çeşitli (OpenVPN: TCP/UDP, WireGuard: UDP).
Şifreleme SSH'nin güçlü şifrelemesi. VPN protokolünün şifrelemesi (örneğin AES-256).
Ağ katmanı Taşıma katmanı (SSH) üzerinde uygulama katmanı (SOCKS). Ağ katmanı (IP paketleri kapsüllenir).
Trafik türü Ağırlıklı olarak TCP; SOCKS5 UDP'yi de proxy'leyebilir. Tüm IP trafiği (TCP, UDP, ICMP).
DNS çözümleme SOCKS5 DNS'i proxy'leyebilir, SOCKS4 yapamaz. Çoğu zaman elle yapılandırma gerekir. Genellikle tüm DNS isteklerini otomatik olarak proxy'ler.
Ek yük SSH protokol ek yükü; TCP üzerinde TCP performansı düşürebilir. VPN protokol ek yükü, genelde performans için optimize edilmiştir.
Kullanım senaryoları Belirli engelleri aşma, tek uygulamayı proxy'leme, geçici erişim. Genel amaçlı güvenli gezinme, uzaktan ofis erişimi, tam ağ anonimliği.

Güvenlik değerlendirmeleri

SSH SOCKS proxy kullanmak belirli güvenlik hususlarını beraberinde getirir:

  • SSH sunucusuna duyulan güven: SSH sunucusu güven zincirinde kritik bir noktaya dönüşür. Tüm trafik oradan geçtiği için, hedef servis TLS/SSL kullanmıyorsa sunucu operatörü teorik olarak trafiği SSH tünelinden çıktıktan sonra şifresiz biçimde inceleyebilir.
  • SSH sunucusunun güvenliği: SSH sunucusunun kendisi güvenli olmalıdır. Bu; güçlü kimlik doğrulama (parola yerine SSH anahtarları), SSH daemon'unu güncel tutmak ve uygun güvenlik duvarı kurallarını uygulamak anlamına gelir. Ele geçirilmiş bir SSH sunucusu tünelin güvenliğini de ortadan kaldırır.
  • Yerel port açığı: yerel SOCKS proxy portu (LOCAL_PORT) genellikle localhost (127.0.0.1) adresine bağlanır; yani ona yalnızca yerel makinedeki uygulamalar bağlanabilir. 0.0.0.0 kullanılırsa (örneğin ssh -D 0.0.0.0:8080 ...), proxy yerel ağdaki diğer makinelerden de erişilebilir hale gelir ve bu istenmiyorsa güvenlik riski oluşturur.
  • DNS sızıntısı: SOCKS proxy doğru yapılandırılmazsa (örneğin SOCKS4 kullanılırsa veya tarayıcıda "Proxy DNS" açılmazsa), DNS istekleri doğrudan varsayılan DNS sunucusuna gidebilir ve uygulama trafiği tünellense bile gezinme etkinliğinizi açığa çıkarabilir. SOCKS5 uzaktan DNS çözümlemeyi destekler; bunun kullanıldığından emin olun.

Performans değerlendirmeleri

SSH SOCKS proxy kullanımının performansa etkileri:

  • Gecikme: her bağlantı SSH sunucusu üzerinden ek bir sıçrama içerir. Bu, gecikmeye duyarlı uygulamalarda fark edilebilir bir gecikme artışına yol açar.
  • Bant genişliği: azami verim, hem istemcinin SSH sunucusuna olan bağlantısının hem de SSH sunucusunun nihai hedefe olan bağlantısının bant genişliğiyle sınırlıdır.
  • Şifreleme ek yükü: SSH şifreleme ve şifre çözme işlemleri hem istemcide hem sunucuda CPU tüketir ve etkin bant genişliğini düşürebilir.
  • TCP üzerinde TCP: TCP trafiğini zaten TCP tabanlı bir SSH bağlantısı üzerinden tünellemek, "TCP meltdown" olgusu nedeniyle performans düşüşüne yol açabilir. Bu durum, alttaki TCP bağlantısındaki paket kaybının yeniden iletimlere neden olması, bunların da içteki TCP bağlantısı tarafından tekrar iletilmesiyle ortaya çıkar; sonuçta üstel geri çekilme ve düşük verim görülür. UDP tabanlı tüneller (WireGuard gibi) veya UDP üzerinden SSH (sshovudp) kullanmak bunu hafifletebilir, ancak SSH üzerinden SOCKS için standart değildir.
Güncellendi: 04.03.2026
Kategoriye dön

Bunları da okuyun

Guides 2 dk

Nike SNKRS için Proxy: Sınırlı Sürümler ve Çoklu Katılım

Nike SNKRS'ta birden fazla hesapla çekilişlere katılmak, IP limitlerini aşmak ve ban yemeden sınırlı sürümleri kapmak için residential veya mobil proxy kullanın. Hangi türü seçmeli ve nasıl kurmalı.

Guides 2 dk

iPhone'da Proxy Nasıl Kurulur (Wi-Fi ve SOCKS5)

iPhone'da proxy'yi yerleşik Wi-Fi ayarlarından (HTTP/HTTPS) veya SOCKS5 ile hücresel kapsama için Shadowrocket gibi bir uygulamayla kurun. Adım adım iOS kurulumu ve bilinmesi gereken kısıtlar.

Guides 3 dk

Tinder için proxy: çoklu hesap ve ban'lerden kaçınma

Birden fazla profil işletmek ve IP shadowban'lerinden kaçınmak için Tinder'da mobil veya residential proxy kullanın. Mobilin neden kazandığı, kurulumu ve proxy'nin şehri neden değiştirmediği.

Guides 2 dk

StockX için proxy: fiyat takibi ve hesap yönetimi

StockX'te fiyatları izlemek, birden fazla hesap çalıştırmak ve drop'ları yasaklanmadan kapmak için residential, ISP veya mobil proxy kullanın. Hangi türü seçeceğinizi ve nasıl kuracağınızı anlatıyoruz.

Guides 3 dk

OpenAI API için Proxy: Erişim, Hız Limitleri ve Kurulum

OpenAI API'yi residential veya ISP proxy üzerinden yönlendirerek desteklenen bölgelere erişin, 429 hız limitlerinden kaçının ve hesapları izole edin. Hangi proxy'yi seçmeli ve Python kurulum örnekleri.

Guides 1 dk

E2E testleri için Cypress'te proxy kurulumu

Cypress'te proxy kurulumu: HTTP_PROXY değişkenleri, cy-proxy-middleware ve coğrafi konuma bağlı içeriğin test edilmesi.

Proxy'lerimizi deneyin

100+ ülkede 20,000+ proxy

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.