Gemini ağ proxy'si: istemci bağlantısını kurun ve teşhis edin

10 dk

google-genai'yi HTTP CONNECT proxy üzerinden yönlendirin, TLS'i açık tutun ve bir tüneli Google erişimi saymadan ölü atlama ile API reddini ayırın.

Bu rehber google-genai 2.30.1'in bir HTTP CONNECT proxy üzerinden çıkması gereken geliştiriciler içindir. Kontroller bir loopback origin ve dummy atlama kullandı, bir Google hesabı değil. Top Proxy IP satmaz, burada ücretsiz anahtar da yoktur. Çalışan bir tünel API erişimi değildir.

01Tek bir Gemini istemcisi seçin ve sabitleyin

Gemini bir ürün ailesidir. Tüketici web uygulaması, Gemini Developer API, Vertex AI veya Gemini Enterprise Agent Platform ve Gemini CLI ortak bir proxy düğmesi paylaşmaz. Karıştırmak, Python süreciniz hâlâ doğrudan giderken tarayıcıyı hata ayıklamanızın yoludur. Bu anlatım tek istemcide kalır: Gemini Developer API ile konuşan Google Gen AI Python SDK.

Gemini API belgeleri, 15 Ekim 2026'da erişildi, son güncelleme 13 Ekim 2026 UTC, o API'yi istemden üretime giden yol olarak anlatır. Proxy belgelemezler. Proxy kablolaması SDK README'sindedir. Kullanılabilir bölgeler, son güncelleme 28 Nisan 2026, AI Studio ve API için bir ülke listesidir. Proxy eksik bir bölge, doğrulanmış yaş veya fatura hesabı eklemez.

Ne içe aktardığınızı sabitleyin. Bu çalıştırma Python 3.14.6, google-genai 2.30.1, httpx 0.28.1 ve laboratuvar CA'sı için openssl ikilisi olarak LibreSSL 3.3.6 kullandı. PyPI aynı gün 2.30.1 listeliyordu. Kurulu istemci Gemini Developer API'yi varsayılan olarak https://generativelanguage.googleapis.com/ ve v1beta'ya yöneltti. Vertex başka kurucu ve başka ana bilgisayar kullanır. Burada ona dokunmayın.

  1. Gerçekten çalıştıracağınız Python'da bir venv oluşturun. Bu makine /opt/homebrew/bin/python3.14 kullandı.
  2. google-genai==2.30.1 kurun. Daha yeni bir wheel paketinin HTTP yığınını altınızda yeniden yazmasına izin vermeyin.
  3. Proxy'ye dokunmadan önce sürümleri yazdırın. google-genai ve httpx satırlarını tutun.
Sabitlenmiş google-genai 2.30.1, httpx 0.28.1, Python 3.14.6, LibreSSL 3.3.6

README, httpx varsayılanı çevresindeki Proxy bölümünde, SDK'nın hem eşzamanlı hem asenkron istemciler için httpx kullandığını söyler. google-genai[aiohttp] daha hızlı asenkron yol için bir ekstra, httpx ile eşleşmesi için trust_env=True ile. O ekstra bu çalıştırmada kurulmadı. aiohttp'nin bir şey yönlendirdiğini iddia etmeyeceğim. SOCKS5 yalnızca httpx[socks] ve HttpOptions.client_args sonrasında belgelenir. Burada da test edilmedi. Gerçekten hareket eden yol HTTP CONNECT'ti.

api_key'i genai.Client'a geçin veya init'ten önce GEMINI_API_KEY / GOOGLE_API_KEY ayarlayın. API anahtarı kurulumu hesap işidir. Laboratuvar dummy dize lab-not-a-google-key'i bir loopback origin'e karşı kullandı. O anahtar Google'a doğru makineden hiç çıkmadı.

02Client'ı oluşturmadan önce HTTPSPROXY ayarlayın

README açıktır. Hem httpx hem aiohttp ortamdan urllib.request.getproxies okur. İstemciyi oluşturmadan önce proxy'yi ayarlayın:

export HTTPS_PROXY='http://USER:PASS@PROXY_HOST:PROXY_PORT'
export SSL_CERT_FILE='/path/to/extra-ca.pem'

SSL_CERT_FILE isteğe bağlıdır. Genel CA'larda üretim Gemini özel CA dosyası istemez. Laboratuvar birine ihtiyaç duydu çünkü origin sertifikası yerelde basılmıştı. Kurulu 2.30.1 burada ekstra iş yapar. _api_client.py bir SSL bağlamını ssl.create_default_context(cafile=os.environ.get('SSL_CERT_FILE', certifi.where())) ile kurar çünkü SDK yazarlarının deyişiyle httpx SSL_CERT_FILE'ı kendi başına çekmez. Değişkeni Client(...)'tan önce export edin. Sonra export etmek canlı bir istemciye geriye dönük uygulanmaz.

HTTPS_PROXY içindeki userinfo proxy kimlik doğrulamasıdır. Gemini API anahtarınız değildir. API anahtarını Client(api_key=...) veya GEMINI_API_KEY içine koyun. Proxy URL'sini bir günlüğe dökerseniz parolayı karartın. Süreç listeleri ortamı bir an yine görür.

Aynı README SOCKS5'i HTTPS_PROXY üzerinden değil, httpx argümanları üzerinden gösterir:

from google import genai
from google.genai import types

client = genai.Client(
    api_key="YOUR_API_KEY",
    http_options=types.HttpOptions(
        client_args={"proxy": "http://USER:PASS@PROXY_HOST:PROXY_PORT"},
        timeout=60000,
        retry_options=types.HttpRetryOptions(attempts=1),
    ),
)

HttpOptions.timeout milisaniyedir. 2.30.1 bunu httpx'ten önce / 1000.0 ile çevirir. Bu yapıda retry_options=None tenacity'nin bir denemeden sonra durması demektir. Sorun giderme hâlâ Python SDK'nın geçici hataları yaklaşık 1s sonra 60s azamiyle dört keze kadar yeniden denediğini söyler. O sayfa 13 Ekim 2026 tarihlidir. Kurulu istemci HttpRetryOptions geçmedikçe bunu yapmaz. Ölü bir porta üstel geri çekilme izlemektense atlamayı teşhis ederken attempts=1 koymayı tercih ederim.

  1. Hedef HTTPS ise, Gemini öyledir, yalnızca HTTPS_PROXY export edin. Bu çalıştırma HTTP_PROXY ayarlamadı. urllib.request.getproxies() o zaman {'https': 'http://127.0.0.1:62748'} döndü.
  2. Proxy'nin loopback görmesini istiyorsanız NO_PROXY'yi boş tutun. Artakalan bir NO_PROXY=localhost atlamayı atlar ve başarı gibi durur.
  3. genai.Client'ı ortam ayarlandıktan sonra oluşturun. Bitince kapatın.

Açık client_args={'proxy': ...} belgelenmiş diğer kapıdır. Bu çalıştırmada o da CONNECT gönderdi. Kabuk zaten HTTPS_PROXY sahibi olduğunda ve onunla savaşmak istemediğinizde kullanın.

03Rotayı kontrol ettiğiniz bir hedefte kanıtlayın

Durum 200 zayıf tanıktır. Doğrudan ve proxy'lenen çağrılar ikisi de 200 dönebilir. Bir atlama günlüğü veya origin damgası gerekir. Laboratuvar HttpOptions.base_url'i https://127.0.0.1:PORT/'a yöneltti, böylece google-genai generativelanguage.googleapis.com'u hiç açmadı. Origin SIMULATED etiketli JSON yanıtladı. Bu yönlendirme kanıtıdır. Model yanıtı, kota kontrolü veya bölge geçişi değildir.

Kendi kontrolünüz genel bir laboratuvardan daha küçük olabilir. Kurulu istemci, sahip olduğunuz bir proxy ve sahip olduğunuz bir hedef gerekir. Loopback yeter. verify'ı kapatmayın. Atlama sıkıcı olana kadar bunu Google'a yöneltmeyin.

import os
from google import genai
from google.genai import types

os.environ["HTTPS_PROXY"] = "http://USER:PASS@PROXY_HOST:PROXY_PORT"

client = genai.Client(
    api_key="YOUR_API_KEY",
    http_options=types.HttpOptions(
        timeout=60000,
        retry_options=types.HttpRetryOptions(attempts=1),
    ),
)
try:
    response = client.models.generate_content(
        model="gemini-flash-latest",
        contents="ping",
    )
    print(response.text)
finally:
    client.close()

Bu parça base_url ayarsız bırakırsanız Google ile konuşur. Loopback kontrolü konuşmadı. Kaydedilen sonuçlardaki portlar ölüdür. Ana bilgisayar ve portu hâlâ ayakta olan bir proxy'den kopyalayın.

  1. Proxy ortamı ve client_args proxy'si olmadan bir kez çağırın. Doğrudan simulated metin döndü. Dummy CONNECT proxy boşta kaldı. proxy_events=0.
  2. HTTPS_PROXY'yi http://127.0.0.1:PROXY_PORT'a export edip yeniden çağırın. Proxy CONNECT 127.0.0.1:ORIGIN_PORT kaydetti. Origin aynı SIMULATED metni döndü. getproxies yalnızca https anahtarını gösterdi.
  3. client_args={'proxy': 'http://127.0.0.1:PROXY_PORT'} ile ve HTTPS_PROXY olmadan tekrarlayın. CONNECT yine oldu. İki kapı, bir tünel türü.
HTTPS_PROXY loopback'te CONNECT gönderdi ve simulated generateContent metni döndü

Bir tarayıcı IP adresim sayfası tarayıcı çıkışını gösterir. Bu Python sürecini göstermez. Proxy kontrolü bir ana bilgisayarın HTTP veya SOCKS5 yanıtlayıp yanıtlamadığını söyler. Bir ucu yapıştırmadan önce işe yarar. Hâlâ google-genai değildir.

04TLS'i açık tutun, kimlik bilgilerini günlüklerden uzak tutun

HTTP proxy üzerinden HTTPS, CONNECT sonra o tünelden origin'e TLS'dir. Proxy URL'si http://... kalır. https:// proxy URL'si proxy'nin kendisine TLS demek olurdu. Bu çalıştırma onu ölçmedi.

Laboratuvar CA'sı 127.0.0.1 için konu alternatif adı olan bir günlük sertifikaydı. SSL_CERT_FILE o CA'yı gösterdi. Doğrulama açık kaldı. Aynı proxy'lenen istemci SSL_CERT_FILE olmadan çalışınca CONNECT yine başarılı oldu, httpx CERTIFICATE_VERIFY_FAILED: unable to get local issuer certificate saran ConnectError yükseltti. Atlama iyiydi. Güven deposu değildi. İnsanların atladığı, sonra verify=False ekleyip bitti dediği durum budur.

CONNECT başarılı oldu, laboratuvar CA'sı olmadan TLS başarısız oldu
  1. Varsayılan doğrulama yolunu tutun. CA dosyasını yalnızca origin'iniz özelken geçin.
  2. TLS izini kutlamadan önce proxy günlüğünde CONNECT'i doğrulayın. İz, proxy'nin atlandığının kanıtı değildir.
  3. Proxy-Authorization, x-goog-api-key ve proxy userinfo'yu karartın. Laboratuvar proxy'si has_proxy_authorization: false kaydetti çünkü dummy atlamanın Basic kimlik doğrulaması yoktu. Satıcı atlamınızda büyük olasılıkla vardır.

Laboratuvar CA'sını sistem güven deposuna kopyalamayın. Bu çalıştırma macOS güvene hiç dokunmadı. Çocuk süreçteki SSL_CERT_FILE yetti.

05Ölü atlamayı Google gibi duran hatadan ayırın

Sorun giderme istemci SDK sorunlarını arka uç sorunlarından ayırır. 429 ve 503'ü yeniden deneyin. 400, 402 veya 403'ü yeniden denemeyin. Bunlar geçersiz anahtar, boş ön ödemeli kredi veya kötü sözdizimidir, kararsız soket değil. TCP hiç tamamlanmazsa bunların hiçbiri ateşlenmez.

Bu çalıştırma aynı kurulu istemcide üç başarısızlığı zorladı.

client_args proxy'si olarak kapalı bir loopback port ConnectError yükseltti: 0,001s içinde [Errno 61] Connection refused. CONNECT günlüğü yok. Origin bir istek görmedi. Ölü atlama budur.

Yaşayan CONNECT atlaması üzerinden simulated origin 403, ClientError yükseltti: gövde metni SIMULATED diyen 403 PERMISSION_DENIED. CONNECT kaydedildi. Origin bir vuruş saydı. Taşıma çalıştı. Uygulama reddetti. Gerçek Google'da bu sınıf hata hesap, faturalama veya politikadır. «Başka proxy alın, model belirir» değildir.

1,5s origin uykusuna karşı 200ms HttpOptions.timeout ReadTimeout yükseltti: 0,205s'de The read operation timed out. CONNECT kaydedildi. Tünel ayaktaydı. Bütçe değildi.

Ölü portta Connection refused, CONNECT sonrası simulated 403
GözlemİstisnaCONNECT kaydıOrigin vuruşuNe değişmeli
Doğrudan, güvenilen laboratuvar CAyokhayırevetKontrol. Proxy boşta kalmalı
Yalnızca HTTPS_PROXYyokevetevetBu istemci için yol kanıtlandı
client_args proxyyokevetevetAçık httpx proxy argümanı
Proxy ayakta, laboratuvar CA yokConnectError TLS issuerevethayırCA'yı düzeltin. verify'ı kapatmayın
Ölü proxy portConnectError refusedhayırhayırAna bilgisayar ve port, API anahtarı değil
Proxy üzerinden simulated 403ClientError 403evetevetHesap veya istek. Atlama zaten çalıştı
200ms zaman aşımı, yavaş originReadTimeoutevetbitmiş gövde yokZaman aşımı bütçesi, CONNECT değil

Mobil ve datacenter katalog sayfaları sizi o tablodan kurtarmaz. Mobil proxy ve datacenter proxy sunduğunuz IP'yi değiştirir. google-genai hata sınıflarını yeniden yazmaz. HTTP bu SDK'nın gerçekten kullandığı protokoldür. SOCKS5 httpx[socks] kurup ölçene kadar README ekstra olarak kalır.

06HTTP CONNECT'i açabileceğiniz bir katalog ucuna uydurun

Satıcının HTTP diye belgelendirdiği, satıcının belgelendirdiği kullanıcı adı ve parolalı bir atlama seçin. Sonra google-genai'yi sahip olduğunuz bir düzenek üzerinde kanıtlayın. Ücretli geçitler çağrılmadı.

Oxylabs residential proxies, 15 Ekim 2026'da erişildi, bir HTTP giriş belgeler. Decodo residential hızlı başlangıç, aynı gün, gate.decodo.com:7000'i HTTP proxy URL'si olarak belgeler. İngilizce katalog o ürünü hâlâ smartproxy-com diye listeler. Bu biçimleri Oxylabs ve Smartproxy / Decodo canlı kartlarında karşılaştırın. Bu katalog uyumudur, havuz testi değil.

  1. Şemayı 2.30.1'in gerçekten gönderdiğine uydurun: HTTP CONNECT. Proxy'nin kendisine HTTPS-proxy URL'si başka üründür.
  2. Satıcı öneklerini proxy kullanıcısına koyun, GEMINI_API_KEY'e değil.
  3. Yalnızca bir ana bilgisayarda HTTP ile SOCKS karşılaştırması gerekiyorsa erişilebilirliğe proxy kontrolü üzerinden bakın. SDK'yı kendi sürecinizde kanıtlayın.
Oxylabs — residential ve datacenter proxy
Oxylabs — residential ve datacenter proxy4.0771

Oxylabs residential, mobil, ISP ve datacenter proxy'leri $30'dan tek aylık abonelik altında satar. Alıcı ödemeleri: kartlar, havale, AliPay, PayPal.

10 ülke
$0,45
1 GB başı
Decodo (Smartproxy) — residential ve datacenter proxy
Decodo (Smartproxy) — residential ve datacenter proxy4.22118

Decodo (eski adı Smartproxy) residential ve datacenter proxy satar. Residential: aylık tarife olmadan $4/GB veya 3 GB için $3.75/GB'dan aylık paketler. Ödeme: kart, PayPal, Alipay, Google/Apple Pay, kripto (sınırlı).

83 ülke
$0,38
1 GB başı
Loopback google-genai kontrolünden sıkıştırılmış yürütülen sonuç tablosu

Bu istemcinin adlandırabileceğiniz bir atlamadan çıkmasını sağlayın, TLS'i açık tutun, bir tüneli hak saymayı bırakın.

Gemini Python SDK için proxy nasıl ayarlanır?

HTTPS_PROXY'yi genai.Client'tan önce bir HTTP proxy URL'sine export edin veya HttpOptions.client_args ile proxy anahtarına http://host:port verin. google-genai 2.30.1 varsayılan olarak httpx kullanır. İstemciyi ortam ayarlandıktan sonra oluşturun, sonra kapatın.

Çalışan bir proxy Gemini'nin yanıt vereceği anlamına mı gelir?

Hayır. CONNECT günlüğü atlamayı kanıtlar. Hesap, faturalama, kota, model ve yayımlanan bölge listesi ayrıdır. Loopback SIMULATED JSON Google sonucu değildir.

TLS doğrulamayı kapatmalı mıyım?

Hayır. Bu çalıştırma verify'ı açık bıraktı. Laboratuvar CA'sı olmadan CONNECT yine başarılı oldu, istemci eksik issuer için ConnectError yükseltti. CA dosyasını düzeltin. Doğrulamayı kapatmayın.

SOCKS5 desteklenir mi?

SDK README'si pip install httpx[socks] ve socks5 URL'li HttpOptions.client_args sonrasında evet der. Bu anlatım o ekstrayı kurmadı, SOCKS ölçmedi.

Sorun giderme neden görmediğim yeniden denemelerden bahsetti?

13 Ekim 2026 sorun giderme sayfası Python SDK'nın geçici hataları dört keze kadar yeniden denediğini söyler. Kurulu 2.30.1 retry_options'ı ayarsız bırakır, o yol bir denemeden sonra durur. Yeniden deneme istiyorsanız HttpRetryOptions geçin. Atlama hata ayıklarken attempts'i 1 tutun.

SDK'yı kanıtlamak için tarayıcıdaki IP adresim sayfasını kullanabilir miyim?

Hayır. /tr/my-ip tarayıcıyı gösterir. google-genai ayrı bir süreçtir. Bu istemciden bir proxy günlüğü veya origin damgası kullanın.