git Guia · 1 min de leitura

git através de um proxy: HTTP e SOCKS5

o git trata proxies de forma diferente sobre HTTPS e sobre SSH. Este guia cobre ambos: http.proxy para remotos HTTPS (incluindo SOCKS5), e um ProxyCommand para remotos SSH — com escopo por host para que apenas o tráfego correto seja roteado.

Remotos HTTPS vs remotos 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.

Com s4m você tem ambos os pontos finais: SOCKS5 na porta 1080 e HTTP na porta 3128, autenticados com USER:PASS contra proxy.s4m.online. Para remotos HTTPS, socks5h:// mantém o DNS remoto; para SSH, um ProxyCommand usando nc ou ncat roteia o fluxo SSH através do SOCKS5. Veja a página de proxy e o que é SOCKS5; a mesma ideia de ProxyCommand aparece na comparação SOCKS5 vs HTTP.

git sobre HTTPS e SSH, com proxy

http.proxy para remotos HTTPS (SOCKS5 ou HTTP), além de um ProxyCommand para SSH. O escopo por URL evita o proxy de tudo. Substitua 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 da maneira certa

Escolha seu tipo remoto primeiro, depois aplique a configuração correspondente.

Identifique seu protocolo remoto

Execute git remote -v. Uma URL https:// usa http.proxy; uma URL git@host: usa SSH, que precisa de um ProxyCommand em vez disso.

Para HTTPS, defina http.proxy

Use git config --global http.proxy com socks5h://proxy.s4m.online:1080 para DNS remoto, ou o endpoint HTTP na porta 3128. Limite por URL se você quiser que apenas um host seja proxy.

Para SSH, adicione um ProxyCommand

Em ~/.ssh/config, adicione ProxyCommand nc -X 5 -x proxy.s4m.online:1080 %h %p sob o bloco Host relevante. Instale nc/ncat se estiver faltando.

Verifique com um clone

Clone um pequeno repositório e confirme que ele foi bem-sucedido. Se travar, verifique novamente o endpoint e as credenciais, e certifique-se de que você definiu o protocolo correto.

Escopo por host, autenticação e honestidade

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.

Proxies s4m são autenticados datacenter SOCKS5 e HTTP, com pagamento por uso — uma boa opção para runners de CI clonando dependências de trás de uma saída controlada, ou para acessar um host git de uma rede restrita. Eles são de datacenter, não residenciais, e um proxy muda apenas seu caminho de rede, não suas credenciais git ou chaves SSH. Quando o CI precisa de um IP de saída permitido, adicione um IP pessoal dedicado. Um 407 sobre HTTPS significa credenciais de proxy ruins — veja o guia 407. Valide os endpoints com as ferramentas e leia a documentação da API.

FAQ

Perguntas, respondidas

Como faço para o git usar um proxy SOCKS5?

Para remotos HTTPS, defina git config --global http.proxy socks5h://USER:PASS@proxy.s4m.online:1080 — git usa libcurl, então aceita SOCKS5 assim como curl. Para remotos SSH, use um ProxyCommand em ~/.ssh/config em vez disso.

O http.proxy funciona para remotos SSH (git@...)?

Não. http.proxy afeta apenas remotos HTTPS. Remotos SSH são proxyados na camada SSH com um ProxyCommand — por exemplo, nc -X 5 -x proxy.s4m.online:1080 %h %p para SOCKS5.

Como faço para usar proxy apenas em um host git?

Use configuração por URL: git config --global http.https://github.com/.proxy . Somente aquele host é roteado através do proxy; todos os outros remotos permanecem diretos.

Como removo um proxy git?

Execute git config --global --unset http.proxy (e qualquer variante por URL), ou delete a linha ProxyCommand de ~/.ssh/config para remotos SSH.

Clonar por trás de um proxy

Proxies SOCKS5 (1080) e HTTP (3128) autenticados em proxy.s4m.online, prontos para http.proxy e SSH ProxyCommand. Pagamento por uso, IP dedicado para listas de permissão CI.

As pessoas encontraram esta página pesquisando por

Frases de busca reais que esta página responde — os links abrem a página que as cobre em profundidade.