git Przewodnik · 1 min czytania

git przez proxy: HTTP i SOCKS5

git traktuje proxy inaczej przez HTTPS i przez SSH. Ten przewodnik obejmuje obie metody: http.proxy dla zdalnych repozytoriów HTTPS (w tym SOCKS5) oraz ProxyCommand dla zdalnych repozytoriów SSH — z zakresem per-host, aby tylko odpowiedni ruch był kierowany.

Zdalne HTTPS vs zdalne SSH

How you proxy git depends entirely on your remote's protocol. For HTTPS remotes (URLs like https://github.com/...), git uses libcurl, so it honours the http.proxy config and the standard http_proxy environment variables — and because it is libcurl, it accepts a SOCKS5 proxy via the socks5h:// scheme just like curl does. For SSH remotes (git@github.com:...), git is not involved in the networking at all; SSH is, so you configure a ProxyCommand in your SSH config to tunnel the connection.

Z s4m masz oba punkty końcowe: SOCKS5 na porcie 1080 i HTTP na porcie 3128, uwierzytelnione za pomocą USER:PASS przeciwko proxy.s4m.online. Dla zdalnych repozytoriów HTTPS, socks5h:// zachowuje zdalne DNS; dla SSH, ProxyCommand używający nc lub ncat kieruje strumień SSH przez SOCKS5. Zobacz stronę proxy i co to jest SOCKS5; ten sam pomysł ProxyCommand pojawia się w porównaniu SOCKS5 vs HTTP.

git przez HTTPS i SSH, z proxy

http.proxy dla zdalnych połączeń HTTPS (SOCKS5 lub HTTP), plus ProxyCommand dla SSH. Zakres per-URL unika proxyfikacji wszystkiego. Zastąp USER:PASS.

bash
# --- HTTPS remotes: SOCKS5 with remote DNS ---
git config --global http.proxy socks5h://USER:PASS@proxy.s4m.online:1080
# or the HTTP proxy:
git config --global http.proxy http://USER:PASS@proxy.s4m.online:3128

# --- Scope the proxy to ONE host only (leave the rest direct) ---
git config --global http.https://github.com/.proxy \
    socks5h://USER:PASS@proxy.s4m.online:1080

# --- Remove the proxy later ---
git config --global --unset http.proxy

# --- SSH remotes: tunnel git@... through SOCKS5 via ~/.ssh/config ---
cat >> ~/.ssh/config <<'CFG'
Host github.com
  HostName github.com
  User git
  ProxyCommand nc -X 5 -x proxy.s4m.online:1080 %h %p
CFG
# -X 5 = SOCKS5; nc/ncat must be installed.

# --- One-off, no persistent config ---
git -c http.proxy=socks5h://USER:PASS@proxy.s4m.online:1080 clone https://example.com/repo.git

Proxy git w odpowiedni sposób

Najpierw wybierz swój typ zdalny, a następnie zastosuj odpowiadającą konfigurację.

Zidentyfikuj swój zdalny protokół

Uruchom git remote -v. Adres https:// używa http.proxy; adres git@host: używa SSH, który potrzebuje ProxyCommand.

Dla HTTPS ustaw http.proxy

Użyj git config --global http.proxy z socks5h://proxy.s4m.online:1080 dla zdalnego DNS lub punktu końcowego HTTP na 3128. Ogranicz to do konkretnego URL, jeśli chcesz, aby tylko jeden host był proxy.

Dla SSH dodaj ProxyCommand

W ~/.ssh/config dodaj ProxyCommand nc -X 5 -x proxy.s4m.online:1080 %h %p pod odpowiednim blokiem Host. Zainstaluj nc/ncat, jeśli brakuje.

Zweryfikuj za pomocą klona

Sklonuj małe repozytorium i potwierdź, że się powiodło. Jeśli się zawiesza, sprawdź ponownie punkt końcowy i dane uwierzytelniające, a także upewnij się, że wybrałeś odpowiedni protokół.

Zakres per-host, autoryzacja i uczciwość

You rarely want to route all git traffic through a proxy. git supports per-URL proxy config — http.https://github.com/.proxy applies a proxy only to that host, leaving other remotes direct. That keeps internal mirrors fast while an external host goes through the proxy. Credentials live inline in the proxy URL; if your password has special characters, URL-encode them.

Proxysy s4m są uwierzytelniane w centrum danych jako punkty końcowe SOCKS5 i HTTP, płatne na zasadzie pay-as-you-go — doskonałe dla runnerów CI klonujących zależności z za kontrolowanym wyjściem lub dla dotarcia do hosta git z ograniczonej sieci. Są to punkty w centrum danych, a nie mieszkalne, a proxy zmienia tylko twoją ścieżkę sieciową, a nie twoje poświadczenia git ani klucze SSH. Gdy CI potrzebuje jednego dozwolonego adresu IP wyjściowego, dodaj dedykowany osobisty adres IP. Błąd 407 przez HTTPS oznacza złe poświadczenia proxy — zobacz przewodnik 407. Waliduj punkty końcowe za pomocą narzędzi i przeczytaj dokumentację API.

FAQ

Pytania, odpowiedzi

Jak sprawić, aby git używał proxy SOCKS5?

Dla zdalnych połączeń HTTPS, ustaw git config --global http.proxy socks5h://USER:PASS@proxy.s4m.online:1080 — git używa libcurl, więc akceptuje SOCKS5 tak jak curl. Dla zdalnych połączeń SSH, użyj ProxyCommand w ~/.ssh/config.

Czy http.proxy działa dla zdalnych SSH (git@...)?

Nie. http.proxy wpływa tylko na zdalne połączenia HTTPS. Zdalne połączenia SSH są proxy na poziomie SSH z użyciem ProxyCommand — na przykład nc -X 5 -x proxy.s4m.online:1080 %h %p dla SOCKS5.

Jak mogę używać proxy tylko dla jednego hosta git?

Użyj konfiguracji per-URL: git config --global http.https://github.com/.proxy . Tylko ten host jest kierowany przez proxy; każdy inny zdalny pozostaje bezpośredni.

Jak usunąć proxy git?

Uruchom git config --global --unset http.proxy (i wszelkie warianty per-URL), lub usuń linię ProxyCommand z ~/.ssh/config dla zdalnych SSH.

Klonuj z za proxy

Uwierzytelnione proxy SOCKS5 (1080) i HTTP (3128) na proxy.s4m.online, gotowe do http.proxy i SSH ProxyCommand. Płatność na zasadzie pay-as-you-go, dedykowany adres IP dla list dozwolonych CI.

Ludzie znaleźli tę stronę, szukając

Rzeczywiste frazy wyszukiwania, na które ta strona odpowiada — powiązane otwierają stronę, która je szczegółowo omawia.