guía git · 1 min de lectura

git a través de un proxy: HTTP y SOCKS5

git habla de proxies de manera diferente a través de HTTPS y SSH. Esta guía cubre ambos: http.proxy para remotos HTTPS (incluyendo SOCKS5), y un ProxyCommand para remotos SSH — con un alcance por host para que solo el tráfico correcto sea dirigido.

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.

Con s4m tienes ambos extremos: SOCKS5 en el puerto 1080 y HTTP en el puerto 3128, autenticado con USER:PASS contra proxy.s4m.online. Para remotos HTTPS, socks5h:// mantiene DNS remoto; para SSH, un ProxyCommand usando nc o ncat enruta el flujo SSH a través de SOCKS5. Consulta la página de proxy y qué es SOCKS5; la misma idea de ProxyCommand aparece en la comparación entre SOCKS5 y HTTP.

git sobre HTTPS y SSH, con proxy

http.proxy para remotos HTTPS (SOCKS5 o HTTP), además de un ProxyCommand para SSH. El alcance por URL evita el proxy de todo. Reemplace 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 de la manera correcta

Elige tu tipo remoto primero, luego aplica la configuración correspondiente.

Identifique su protocolo remoto

Ejecuta git remote -v. Una URL https:// utiliza http.proxy; una URL git@host: utiliza SSH, que necesita un ProxyCommand en su lugar.

Para HTTPS, establece http.proxy

Usa git config --global http.proxy con socks5h://proxy.s4m.online:1080 para DNS remoto, o el punto final HTTP en 3128. Limítalo por URL si solo deseas que un host sea proxied.

Para SSH, añade un ProxyCommand

En ~/.ssh/config, agregue ProxyCommand nc -X 5 -x proxy.s4m.online:1080 %h %p bajo el bloque de Host relevante. Instale nc/ncat si falta.

Verifica con un clon

Clona un pequeño repositorio y confirma que tenga éxito. Si se queda colgado, revisa el punto final y las credenciales, y asegúrate de haber configurado el protocolo correcto.

Alcance por host, autenticación y honestidad

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.

Los proxies s4m están autenticados datacenter SOCKS5 y HTTP, con pago por uso medido — una opción sólida para los runners de CI que clonan dependencias desde detrás de un egreso controlado, o para acceder a un host de git desde una red restringida. Son de datacenter, no residenciales, y un proxy solo cambia tu ruta de red, no tus credenciales de git o claves SSH. Cuando CI necesita una IP de egreso permitida, añade una IP personal dedicada. Un 407 sobre HTTPS significa credenciales de proxy incorrectas — consulta la guía 407. Valida los puntos finales con las herramientas y lee la documentación de la API.

FAQ

Preguntas, respondidas

¿Cómo hago que git use un proxy SOCKS5?

Para remotos HTTPS, establece git config --global http.proxy socks5h://USER:PASS@proxy.s4m.online:1080 — git usa libcurl, así que acepta SOCKS5 igual que curl. Para remotos SSH, usa un ProxyCommand en ~/.ssh/config en su lugar.

¿Funciona http.proxy para remotos SSH (git@...)?

No. http.proxy solo afecta a los remotos HTTPS. Los remotos SSH se envían a través del proxy en la capa SSH con un ProxyCommand — por ejemplo nc -X 5 -x proxy.s4m.online:1080 %h %p para SOCKS5.

¿Cómo hago proxy solo para un host git?

Usa configuración por URL: git config --global http.https://github.com/.proxy . Solo ese host se enruta a través del proxy; cada otro remoto permanece directo.

¿Cómo elimino un proxy git?

Ejecuta git config --global --unset http.proxy (y cualquier variante por URL), o elimina la línea ProxyCommand de ~/.ssh/config para remotos SSH.

Clonar desde detrás de un proxy

Proxies SOCKS5 (1080) y HTTP (3128) autenticados en proxy.s4m.online, listos para http.proxy y SSH ProxyCommand. Pago por uso, IP dedicada para listas de permitidos de CI.

Las personas encontraron esta página buscando

Frases de búsqueda reales que esta página responde — los enlaces abren la página que las cubre en profundidad.