Skip to content

Instantly share code, notes, and snippets.

@chuyik
Last active February 9, 2023 08:45
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
@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

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

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

@songyule
Copy link

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

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

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

it works on me!thx

@Domonlee
Copy link

Works for me! thanks.

@xijaja
Copy link

xijaja commented Dec 24, 2021

Works for me! thanks.

@Zhenshan-Jin
Copy link

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

@lipi2022
Copy link

好用

@whatacold
Copy link

socat not works on my side, but ncat did:

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

@Arman19941113
Copy link

nice!

@huanlirui
Copy link

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

兄弟怎么样,解决了吗?

@Jackiexiao
Copy link

感觉这个帖最靠谱了,终于找到能用的

@ahlixinjie
Copy link

works for me 阿里嘎多

@Nriver
Copy link

Nriver commented Jan 29, 2023

解决了大问题,感谢

@zhangyangeng
Copy link

还是得用谷歌,感谢有用!!!!!!!!

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