Proxy Teknolojileri
Yayın tarihi
Okuma süresi
6 dk okuma

IPv6 Proxy Nasıl Çalışır? İstekten Çıkış Adresine

IPv6 proxy isteği nasıl alır, kimliği nasıl doğrular, çıkış adresini nasıl seçer? HTTP CONNECT ve SOCKS5 el sıkışması, DNS, AAAA ve sorun giderme tablosu.

IPv6 proxy, istemciden aldığı isteği hedefe IPv6 çıkış adresinden iletir. Aradaki adımlar sıralıdır: bağlantı, kimlik doğrulama, hedefin bildirilmesi, çıkış adresinin seçilmesi ve iki bağlantının birleştirilmesi. Bu yazı o sırayı, HTTP ve SOCKS5 protokollerinin ne yaptığını ve bir şey ters gittiğinde nereye bakacağınızı anlatır. Belirli bir sağlayıcının iç altyapısını değil, genel mekanizmayı ele alır.

İstek akışı: istemciden hedefe

Basit bir istekte altı adım olur:

Metin
istemci -> proxy ağ geçidi (gateway) -> kimlik doğrulama
        -> yönlendirme -> çıkış adresi -> hedef sunucu
  1. Bağlantı. İstemci, proxy'nin adresine ve portuna TCP bağlantısı açar. Proxy adresi IPv4 de olabilir, IPv6 da.
  2. Kimlik doğrulama. Proxy kimlik ister. HTTP proxy'de bu Proxy-Authorization başlığıdır; SOCKS5'te kullanıcı adı/parola alt müzakeresidir.
  3. Hedefin bildirilmesi. İstemci gitmek istediği ana makineyi ve portu söyler. Bu bir alan adı da olabilir, IPv6 ya da IPv4 adresi de.
  4. Yönlendirme. Proxy hedef adı çözer ve hangi çıkış adresini kullanacağına karar verir.
  5. Çıkış bağlantısı. Proxy, seçtiği IPv6 çıkış adresinden hedefe kendi TCP bağlantısını kurar.
  6. Aktarım. İki bağlantı arasındaki baytlar iki yönde iletilir. HTTPS ise TLS el sıkışması istemci ile hedef arasında yapılır.

Burada iki ayrı bağlantı vardır: istemci–proxy ve proxy–hedef. Hedef sunucu yalnızca ikincisini görür. Bu nedenle hedefin günlüğüne yazılan adres, proxy'nin çıkış adresidir.

Kimlik doğrulama neden önce gelir?

Doğrulamasız bir proxy herkesin kullanabileceği bir aracı olur ve kötüye kullanılır. Bu yüzden satıcılar genellikle kullanıcı adı ve parola ister; bazıları ek olarak istemci IP'sine göre beyaz liste uygular. IPv6 Proxy ürününde doğrulanan yöntem kullanıcı adı ve parolayla kimlik doğrulamadır.

HTTP CONNECT: tünel nasıl kurulur?

HTTP proxy ile HTTPS siteye gitmek için istemci CONNECT yöntemini kullanır. İstek hedefi yalnızca ana makine ve porttur; varsayılan port yoktur, istemci portu göndermek zorundadır (RFC 9110 §9.3.6 (yeni sekmede açılır)). Hedef bir IPv6 adresiyse köşeli parantez içinde yazılır:

HTTP
CONNECT [2001:db8::1]:443 HTTP/1.1
Host: [2001:db8::1]:443
Proxy-Authorization: Basic S1VMTEFOSUNJOlBBUk9MQQ==

Örnek adres belgelendirme aralığındandır. Proxy-Authorization değeri KULLANICI:PAROLA çiftinin Base64 kodlanmış halidir; gerçek değerlerinizi yazılıma kendiniz girersiniz.

Proxy hedefe bağlanabilirse 200 yanıtı verir:

HTTP
HTTP/1.1 200 Connection Established

Bu noktadan sonra bağlantı bir tünele dönüşür. 2xx yanıtında Content-Length veya Transfer-Encoding başlığı gönderilmez; istemci artık TLS el sıkışmasını doğrudan hedefle yapar. Proxy içeriği çözmez, yalnızca baytları iletir.

Sık yapılan hata, köşeli parantezi unutmaktır. CONNECT 2001:db8::1:443 yazarsanız :: yüzünden port ayrılamaz. IPv6 literal'i her zaman [adres]:port biçimindedir. Aynı kural proxy adresinin kendisi için de geçerlidir: http://[2001:db8::1]:8080.

SOCKS5 el sıkışması

SOCKS5 (RFC 1928 (yeni sekmede açılır)) HTTP'den bağımsız, bayt tabanlı bir protokoldür. Kimlik doğrulama için RFC 1929 (yeni sekmede açılır) kullanıcı adı/parola alt müzakeresini tanımlar. Akış üç aşamalıdır.

1. Yöntem seçimi. İstemci hangi yöntemleri desteklediğini bildirir, sunucu birini seçer:

Metin
istemci -> 05 01 02          sürüm 5, 1 yöntem, yöntem 02 (kullanıcı/parola)
sunucu  -> 05 02             yöntem 02 seçildi

2. Kimlik doğrulama. Kullanıcı adı ve parola uzunluk baytlarıyla gönderilir:

Metin
istemci -> 01 09 4b 55 4c 4c 41 4e 49 43 49 06 50 41 52 4f 4c 41
sunucu  -> 01 00             00 = başarı

İstemci satırı sırayla sürüm (01), kullanıcı adı uzunluğu (9), KULLANICI baytları, parola uzunluğu (6) ve PAROLA baytlarıdır.

Parola düz metin gider. RFC 1929 bunu açıkça belirtir ve ağ dinlenebiliyorsa kullanılmamasını önerir. Bu, SOCKS5'in tek başına şifreleme sağlamadığı anlamına gelir.

3. İstek. İstemci CONNECT komutunu ve hedefi bildirir. Adres türü hedefin nasıl yazıldığını söyler: 0x01 IPv4, 0x03 alan adı, 0x04 IPv6. IPv6 hedefi 2001:db8::1, port 443 için istek şöyledir:

Metin
05 01 00 04 | 20 01 0d b8 00 00 00 00 00 00 00 00 00 00 00 01 | 01 bb
VER CMD RSV ATYP |        hedef adres (16 bayt)                  | port 443

Alan adı gönderirseniz (ATYP = 0x03) adı proxy çözer. Adres gönderirseniz (0x01 ya da 0x04) istemci adı kendisi çözmüştür. curl'de alan adının proxy tarafında çözülmesi için socks5h:// şemasını kullanın; socks5:// için bu davranışı varsaymayın.

IPv6 destekli bir proxy ürününde SOCKS5'in bulunup bulunmadığı ayrı bir sorudur. Protokolün IPv6 adres türünü tanımlaması, her paketin SOCKS5 sunduğu anlamına gelmez. IPv6 Proxy ürününde protokol HTTP(S) olarak geçer; SOCKS5 gerekiyorsa sipariş öncesi destekten teyit alın.

HTTP mi SOCKS5 mi?

KonuHTTP proxySOCKS5
KatmanUygulama (HTTP)Oturum katmanı, protokolden bağımsız
HTTPSCONNECT ile tünelDoğrudan TCP bağlantısı
Alan adı çözümlemeGenellikle proxyİstemci ya da proxy, adres türüne göre
Hazır araç desteğiTarayıcı, eklenti, çoğu betikBot, masaüstü uygulaması, HTTP dışı trafik
UDPYokUDP ASSOCIATE ile tanımlı; her ürün sunmayabilir

Çıkış adresi nasıl seçilir?

Bu aşama, IPv6 proxy'yi IPv4 proxy'den ayıran kısımdır. Elinizde bir /64 alt ağ varsa proxy yazılımı bağlantı başına bu bloktan bir adres seçip hedefe o adresten çıkabilir. Çok sayıda adres olduğu için aynı alt ağ içinde farklı çıkışlar kullanılabilir.

Seçimin ayrıntıları uygulamaya bağlıdır:

  • Her bağlantıda yeni adres mi seçilir, yoksa oturum boyunca aynı adres mi korunur?
  • Adres, kullanıcı adındaki bir parametreyle mi, portla mı yoksa sırayla mı belirlenir?
  • Aynı hedefe art arda gelen istekler aynı adresten mi çıkar?

Bu soruların cevabı bu yazıdan değil, kullandığınız ürünün belgesinden çıkar. IPv6 Proxy ürün sayfasında rotasyon yöntemi ve ayarı tanımlı olmadığı için varsayım yapmak yerine sipariş öncesi destekten teyit alın.

Adresin bir alt ağdan seçilmesi başka bir sonuç da doğurur: bir bağlantıdan diğerine geçen çıkış adresinin ön eki aynı kalır, yalnızca arayüz kimliği değişir. Hedef site isterse aynı ön eki tek bir kaynak olarak ele alabilir. Çok adres kullanmak bu yüzden tek başına bir çözüm değildir; istek hızını ve davranışını da yönetmeniz gerekir. Ön ek mantığı için IPv6 prefix nedir yazısına bakın.

DNS, AAAA ve NAT64

Çıkış bağlantısı kurulmadan önce proxy hedefin adresini bilmelidir. Alan adı gelmişse çözümleme yapılır:

  • AAAA sorgusu hedefin IPv6 adresini verir.
  • A sorgusu hedefin IPv4 adresini verir.

Hedef çift yığınlıysa (hem A hem AAAA varsa) IPv6 çıkışla doğrudan bağlanılır. Hedefin yalnızca A kaydı varsa ve proxy yalnızca IPv6 çıkışa sahipse bağlantı kurulamaz: iki adres ailesi arasında doğrudan geçiş yoktur.

NAT64 ve DNS64 bu açığı kapatan çeviri katmanlarıdır. DNS64, A kaydından sentetik bir AAAA üretir; NAT64 ise o adrese gelen paketleri IPv4'e çevirir. Sentetik adres genellikle 64:ff9b::/96 ön ekiyle başlar. Ayrıntıyı NAT64 ve DNS64 yazısında ele aldık. Burada akılda tutulacak kural: yalnızca IPv4 olan hedefe NAT64 üzerinden ulaşırsanız hedef çoğunlukla sizin IPv6 adresinizi değil çeviri katmanının IPv4 adresini görür.

Not

Proxy yazılımlarının IPv6 davranışı (AAAA önceliği, IPv4'e geri düşme, UDP desteği) yazılıma bağlıdır ve RFC'lerden çıkarılamaz. Bir davranışı varsaymak yerine kendi ortamınızda sınayın.

Sorun giderme: belirti, olası neden

BelirtiOlası nedenNe yapmalı
407 Proxy Authentication RequiredKullanıcı adı ya da parola yanlış, ya da yetkilendirme yöntemi uyumsuzKimlik bilgisini panelden yeniden kopyalayın
Proxy'ye bağlanma zaman aşımıYanlış adres veya port, ağ erişimi kesikPROXY_HOST ve PROXY_PORT değerlerini kontrol edin
502 Bad Gateway ya da 504Proxy hedefe ulaşamadıHedefin AAAA kaydını ve erişimini kontrol edin
Bir site açılıyor, diğeri açılmıyorHedef yalnızca IPv4 olabilirdig AAAA ile doğrulayın
Çıkış adresi beklediğinizden farklıRotasyon ayarı ya da oturum davranışıÜrün belgesini ve ayarı kontrol edin
Alan adı çözümlenemiyor (SOCKS5)Çözümleme istemcide yapılıyorsocks5h:// şemasını deneyin
IPv6 adresli proxy URL'si çalışmıyorKöşeli parantez eksikhttp://[2001:db8::1]:8080 biçimini kullanın
Hedef site sık sık hata veriyorHız sınırı ya da aralık kısıtıİstek hızını düşürün, bekleme ekleyin

Hata kodlarının bazıları proxy'den, bazıları hedeften gelir. İlk iş, hatanın proxy yanıtında mı yoksa hedef yanıtında mı olduğunu ayırmaktır.

Ölçme: çalışıyor mu?

Ayar yaptıktan sonra proxy'nin gerçekten çalıştığını ve çıkış adresinin beklediğiniz olduğunu doğrulayın. Komut satırından:

Bash
curl -x http://KULLANICI:PAROLA@PROXY_HOST:PROXY_PORT \
  https://api64.ipify.org

Çıktıda proxy'nin çıkış adresi görünür. Hedef çift yığınlı ise ve proxy IPv6 ile çıkıyorsa bu bir IPv6 adresi olur. Çıktıyı IPv6 adres kontrol aracıyla inceleyebilirsiniz.

Tarayıcı üzerinden hızlı bir kontrol için proxy kontrol aracını kullanın; SOCKS5 bağlantıları için SOCKS5 kontrol aracı vardır. Komutların tamamı ve hata ayıklama yöntemleri IPv6 desteği nasıl test edilir yazısında.

IPv6 proxy'nin ne olduğunu ve hangi işler için uygun olduğunu merak ediyorsanız IPv6 proxy nedir yazısıyla başlayabilirsiniz.

Kısa özet

  • İstek, istemci–proxy ve proxy–hedef olmak üzere iki ayrı bağlantı üzerinden akar.
  • HTTP CONNECT ve SOCKS5, hedefi bildirmenin iki yoludur; IPv6 hedefler köşeli parantezle (HTTP) ya da ATYP 0x04 ile (SOCKS5) verilir.
  • Çıkış adresi, size ayrılan alt ağdan seçilir; seçim kuralı ürüne bağlıdır.
  • Hedefin AAAA kaydı yoksa çeviri katmanı olmadan yalnızca IPv6 çıkış hedefe ulaşamaz.
  • SOCKS5 parolası düz metin gider; bağlantıyı güvenilir bir ağda kullanın.

Sık sorulan sorular

IPv6 proxy isteği hangi sırayla işler?

İstemci proxy'ye bağlanır, kimlik bilgisini gönderir, hedef adresi ve portu bildirir. Proxy hedefe çıkış adresinden kendi bağlantısını kurar ve iki bağlantı arasındaki veriyi iletir. Hedef site yalnızca proxy'nin çıkış adresini görür.

HTTPS trafiği proxy'de çözülür mü?

CONNECT yöntemiyle kurulan tünelde proxy yalnızca şifreli baytları iletir. TLS istemci ile hedef arasında kalır; proxy hedef adı ve portu bilir ama sayfa içeriğini görmez.

SOCKS5 parolası şifreli gider mi?

Hayır. RFC 1929 kullanıcı adı ve parolanın düz metin taşındığını belirtir ve ağın dinlenebildiği ortamlarda kullanılmamasını önerir. Bu yüzden proxy bağlantısını güvenilir bir ağda tutun.

Çıkış adresi nasıl seçilir?

Seçim kuralı satıcının uygulamasına bağlıdır. Genel mekanizma, size ayrılan alt ağdan bir adresin bağlantıya atanması ve hedefe o adresten çıkılmasıdır. Rotasyon yöntemi ürün sayfasında tanımlı değilse destekten teyit alın.

Proxy çalışıyor ama bazı siteler açılmıyor, neden?

Hedefin yalnızca IPv4 kullanması olası bir nedendir. AAAA kaydı yoksa ve çıkış ağında NAT64/DNS64 bulunmuyorsa yalnızca IPv6 çıkışlı proxy hedefe ulaşamaz. dig AAAA ile kontrol edin.

/128Ürün

IPv6 Proxy ürününü inceleyin

Adet bazlı fiyatlanan IPv6 proxy paketleri. Satışı Sağlam Proxy (saglamproxy.com) üzerinden yapılır.