Skip to content

Instantly share code, notes, and snippets.

@chuyik
Last active Jun 13, 2022
Embed
What would you like to do?
macOS 给 Git(Github) 设置代理(HTTP/SSH)

分辨需要设置的代理

一、HTTP 形式

走 HTTP 代理

git config --global http.proxy "http://127.0.0.1:8080"
git config --global https.proxy "http://127.0.0.1:8080"

走 socks5 代理(如 Shadowsocks)

git config --global http.proxy "socks5://127.0.0.1:1080"
git config --global https.proxy "socks5://127.0.0.1:1080"

取消设置

git config --global --unset http.proxy
git config --global --unset https.proxy

二、SSH 形式

修改 ~/.ssh/config 文件(不存在则新建):

# 必须是 github.com
Host github.com
   HostName github.com
   User git
   # 走 HTTP 代理
   # ProxyCommand socat - PROXY:127.0.0.1:%h:%p,proxyport=8080
   # 走 socks5 代理(如 Shadowsocks)
   # ProxyCommand nc -v -x 127.0.0.1:1080 %h %p
@nomedia
Copy link

nomedia commented Aug 28, 2020

works thanks

@Xib1uvXi
Copy link

Xib1uvXi commented Sep 14, 2020

brew install socat 需要安装这个

@mixbe
Copy link

mixbe commented Sep 15, 2020

mac works, thanks

@oldthreefeng
Copy link

oldthreefeng commented Sep 25, 2020

mac works, thanks~

@cnyyk
Copy link

cnyyk commented Nov 9, 2020

SSH方式加了代理配置后github验证失败了, 关掉这个配置是可以正常使用github的,有人遇到过吗?

遇到这个问题的,都是配置不正确。
1、检查端口。
2、检查依赖命令是否存在

Host *
  ServerAliveInterval 120
  ServerAliveCountMax 5

# macOS 给 Git(Github) 设置代理(HTTP/SSH)
# https://gist.github.com/chuyik/02d0d37a49edc162546441092efae6a1
# 0x00 克隆 repo 的两种方式:https 和 ssh 方式
# https 方式:git clone https://github.com/owner/git.git
# ssh   方式:git clone     git@github.com:owner/git.git

# 0x01 https 方式克隆的 repo,走 http 或 sock5 代理,任选一个
# 0x0101 http 代理
# git config --global http.proxy "http://127.0.0.1:1087"
# git config --global https.proxy "http://127.0.0.1:1087"
# 0x0102 sock5 代理
# git config --global http.proxy "socks5://127.0.0.1:1086"
# git config --global https.proxy "socks5://127.0.0.1:1086"
# 0x0103 取消使用代理
# git config --global --unset http.proxy
# git config --global --unset https.proxy

# 0x02 ssh 克隆方式的代理设置,直接在全局设置文件配置,即 ~/.ssh/config 文件
Host github.com
   HostName github.com
   User git
   # 走 HTTP 代理,需要 brew install socat
   # ProxyCommand socat - PROXY:127.0.0.1:%h:%p,proxyport=1087
   # 走 socks5 代理(如 Shadowsocks)
   ProxyCommand nc -v -x 127.0.0.1:1086 %h %p
   # 走 socks5 代理(如 Shadowsocks),Windows 平台没有 nc 命令
   # ProxyCommand connect -S 127.0.0.1:1086 %h %p

@wangzeping722
Copy link

wangzeping722 commented Nov 20, 2020

好用。

@luchenqun
Copy link

luchenqun commented Nov 30, 2020

windows的 ssh 亲测有效

ProxyCommand connect -S 127.0.0.1:1080 -a none %h %p

Host github.com
  User git
  Port 22
  Hostname github.com
  # 注意修改路径为你的路径
  IdentityFile "C:\Users\luche\.ssh\id_rsa"
  TCPKeepAlive yes

Host ssh.github.com
  User git
  Port 443
  Hostname ssh.github.com
  # 注意修改路径为你的路径
  IdentityFile "C:\Users\luche\.ssh\id_rsa"
  TCPKeepAlive yes

@forliuyifei
Copy link

forliuyifei commented Dec 30, 2020

windows的 ssh 亲测有效

ProxyCommand connect -S 127.0.0.1:1080 -a none %h %p

Host github.com
  User git
  Port 22
  Hostname github.com
  # 注意修改路径为你的路径
  IdentityFile "C:\Users\luche\.ssh\id_rsa"
  TCPKeepAlive yes

Host ssh.github.com
  User git
  Port 443
  Hostname ssh.github.com
  # 注意修改路径为你的路径
  IdentityFile "C:\Users\luche\.ssh\id_rsa"
  TCPKeepAlive yes

感谢, 有效, 用的 clash

# github
Host *github.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_rsa
  ProxyCommand connect -S 127.0.0.1:7890 -a none %h %p

@charlygame
Copy link

charlygame commented Jan 10, 2021

Thanks It's work for me.

@LukeMi
Copy link

LukeMi commented Jan 16, 2021

well done

@coder-free
Copy link

coder-free commented Feb 7, 2021

如何针对域名设置代理? https 我只想针对 github.com 设置代理,其他域名直连

@wangqinggo
Copy link

wangqinggo commented Feb 18, 2021

Thanks,great work.

@mickhan
Copy link

mickhan commented Feb 23, 2021

thx

@lemos1235
Copy link

lemos1235 commented Mar 7, 2021

SSH方式加了代理配置后github验证失败了, 关掉这个配置是可以正常使用github的,有人遇到过吗?

俺也一样

@zoucao
Copy link

zoucao commented Mar 11, 2021

SSH方式加了代理配置后github验证失败了, 关掉这个配置是可以正常使用github的,有人遇到过吗?

遇到这个问题的,都是配置不正确。
1、检查端口。
2、检查依赖命令是否存在

Host *
  ServerAliveInterval 120
  ServerAliveCountMax 5

# macOS 给 Git(Github) 设置代理(HTTP/SSH)
# https://gist.github.com/chuyik/02d0d37a49edc162546441092efae6a1
# 0x00 克隆 repo 的两种方式:https 和 ssh 方式
# https 方式:git clone https://github.com/owner/git.git
# ssh   方式:git clone     git@github.com:owner/git.git

# 0x01 https 方式克隆的 repo,走 http 或 sock5 代理,任选一个
# 0x0101 http 代理
# git config --global http.proxy "http://127.0.0.1:1087"
# git config --global https.proxy "http://127.0.0.1:1087"
# 0x0102 sock5 代理
# git config --global http.proxy "socks5://127.0.0.1:1086"
# git config --global https.proxy "socks5://127.0.0.1:1086"
# 0x0103 取消使用代理
# git config --global --unset http.proxy
# git config --global --unset https.proxy

# 0x02 ssh 克隆方式的代理设置,直接在全局设置文件配置,即 ~/.ssh/config 文件
Host github.com
   HostName github.com
   User git
   # 走 HTTP 代理,需要 brew install socat
   # ProxyCommand socat - PROXY:127.0.0.1:%h:%p,proxyport=1087
   # 走 socks5 代理(如 Shadowsocks)
   ProxyCommand nc -v -x 127.0.0.1:1086 %h %p
   # 走 socks5 代理(如 Shadowsocks),Windows 平台没有 nc 命令
   # ProxyCommand connect -S 127.0.0.1:1086 %h %p

mac works, thanks

@oceanyeo
Copy link

oceanyeo commented Mar 15, 2021

如何针对域名设置代理? https 我只想针对 github.com 设置代理,其他域名直连

git config --global http.https://github.com.proxy socks5://127.0.0.1:7890

@songyule
Copy link

songyule commented Mar 17, 2021

SSH方式加了代理配置后github验证失败了, 关掉这个配置是可以正常使用github的,有人遇到过吗?

遇到这个问题的,都是配置不正确。
1、检查端口。
2、检查依赖命令是否存在

Host *
  ServerAliveInterval 120
  ServerAliveCountMax 5

# macOS 给 Git(Github) 设置代理(HTTP/SSH)
# https://gist.github.com/chuyik/02d0d37a49edc162546441092efae6a1
# 0x00 克隆 repo 的两种方式:https 和 ssh 方式
# https 方式:git clone https://github.com/owner/git.git
# ssh   方式:git clone     git@github.com:owner/git.git

# 0x01 https 方式克隆的 repo,走 http 或 sock5 代理,任选一个
# 0x0101 http 代理
# git config --global http.proxy "http://127.0.0.1:1087"
# git config --global https.proxy "http://127.0.0.1:1087"
# 0x0102 sock5 代理
# git config --global http.proxy "socks5://127.0.0.1:1086"
# git config --global https.proxy "socks5://127.0.0.1:1086"
# 0x0103 取消使用代理
# git config --global --unset http.proxy
# git config --global --unset https.proxy

# 0x02 ssh 克隆方式的代理设置,直接在全局设置文件配置,即 ~/.ssh/config 文件
Host github.com
   HostName github.com
   User git
   # 走 HTTP 代理,需要 brew install socat
   # ProxyCommand socat - PROXY:127.0.0.1:%h:%p,proxyport=1087
   # 走 socks5 代理(如 Shadowsocks)
   ProxyCommand nc -v -x 127.0.0.1:1086 %h %p
   # 走 socks5 代理(如 Shadowsocks),Windows 平台没有 nc 命令
   # ProxyCommand connect -S 127.0.0.1:1086 %h %p

mac works + 1

@beijingjazzpanda
Copy link

beijingjazzpanda commented May 17, 2021

Thanks

@wizzeng
Copy link

wizzeng commented May 29, 2021

Works for me. Thanks

@RRRoger
Copy link

RRRoger commented Jun 14, 2021

it works, yeah!!

@SunJun8
Copy link

SunJun8 commented Jul 19, 2021

works~

@HaHaBird
Copy link

HaHaBird commented Jul 22, 2021

thanks

@djytwy
Copy link

djytwy commented Aug 5, 2021

如何针对域名设置代理? https 我只想针对 github.com 设置代理,其他域名直连

git config --global http.https://github.com.proxy socks5://127.0.0.1:7890

thanks

@gaofeilongdev
Copy link

gaofeilongdev commented Aug 29, 2021

666 大佬感谢

@Rampl1ng
Copy link

Rampl1ng commented Nov 17, 2021

it works on me!thx

@Domonlee
Copy link

Domonlee commented Dec 24, 2021

Works for me! thanks.

@xiwuou
Copy link

xiwuou commented Dec 24, 2021

Works for me! thanks.

@Zhenshan-Jin
Copy link

Zhenshan-Jin commented Jan 6, 2022

我用的是“鹰速666” 的VPN (ShadowSocks), 在mac上port看着是8090,但是还是不管用,请问是不是有什么操作错误? 谢谢!
port:
image
.gitconfig
image

@lipi2022
Copy link

lipi2022 commented Jan 21, 2022

好用

@whatacold
Copy link

whatacold commented May 29, 2022

socat not works on my side, but ncat did:

ProxyCommand ncat --proxy-type http --proxy <ip>:<port> %h %p

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment