132. 代理

Git设置

分辨需要设置的代理

  • HTTP形式:

    git clone https://github.com/user/test.git

  • SSH形式

    git clone git@github.com:user/test.git

HTTP形式

我的端口为

HTTP 代理

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

socks5 代理(如 Shadowsocks

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

取消设置

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

建议

建议走 HTTP 代理,socks代理不知道为啥,还是慢

  • HTTP 代理

  • socks5 代理

SSH 形式

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

1
2
3
4
5
6
7
8
9
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
# 私钥位置
IdentityFile ~/.ssh/id_rsa
# 设置代理, 127.0.0.1:8080 换成你自己代理软件监听的本地地址
# HTTPS使用-H,SOCKS使用-S
ProxyCommand connect -H 127.0.0.1:8080 -a none %h %p
  • HTTPS 代理速度

  • socks 代理速度

或者

1
2
3
4
5
6
7
8
9
# github.com
Host github.com
Hostname ssh.github.com
User git
Port 443
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa # id_rsa改成你的ssh密钥的文件名
ProxyCommand nc -X connect -x 127.0.0.1:3128 %h %p # 127.0.0.1:3128改成你的代理的ip:port
ServerAliveInterval 20

Note:

  • gitee 不一定支持 443 接口

总结

  • HTTP 形式和 SSH形式速度相差不大

  • 一定要保证端口号和你的电脑的端口号一致

  • HTTP 形式的缺点:需要认证 GitHub,而 SSH形式则不需要

  • SSH形式的缺点:目前表现为:hexo d部署速度慢

    • 使用 SSH形式:

    • 若不使用 SSH形式

如何查看端口号

设置 - 网络和Internet - 代理,如下所示

Reference

linux 系统设置代理

图形界面GUI设置方式

打开 设置 -> 网络 -> 网络代理 -> 手动Settings -> Network -> Network Proxy -> Manual

设置完点击Apply system wide

命令行CLI设置方式

系统代理设置

虚拟机设置使用宿主机(10.10.1.10)的代理

我们将在 /etc/profile.d/proxy.sh 下添加一个shell脚本文件,这将确保设置适用于所有已登录的用户:

1
sudo vim  /etc/profile.d/proxy.sh

将以下内容写到文档中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# set proxy config via profie.d - should apply for all users
export http_proxy="http://10.10.1.10:7890/"
export https_proxy="http://10.10.1.10:7890/"
export ftp_proxy="http://10.10.1.10:7890/"
export no_proxy="127.0.0.1,localhost"

# For curl
export HTTP_PROXY="http://10.10.1.10:7890/"
export HTTPS_PROXY="http://10.10.1.10:7890/"
export FTP_PROXY="http://10.10.1.10:7890/"
export NO_PROXY="127.0.0.1,localhost"

#将要从代理中排除的其他IP添加到NO_PROXY和no_proxy环境变量中


PS: 附本地机器如下设置 (本地机器是虚拟机, 设置使用宿主机(10.10.1.10)的代理)

1
2
3
4
5
6
7
8
9
10
11
export HTTP_PROXY="http://10.10.1.10:7890/"
export HTTPS_PROXY="http://10.10.1.10:7890/"
export FTP_PROXY="http://10.10.1.10:7890/"
export ALL_PROXY="socks://10.10.1.10:7890/"
export NO_PROXY="localhost,127.0.0.0/8,::1"

export http_proxy="http://10.10.1.10:7890/"
export https_proxy="http://10.10.1.10:7890/"
export ftp_proxy="http://10.10.1.10:7890/"
export all_proxy="socks://10.10.1.10:7890/"
export no_proxy="localhost,127.0.0.0/8,::1"

为该文件填加执行权限:

1
sudo chmod +x  /etc/profile.d/proxy.sh

激活文件以开始使用代理设置,或者注销并重新登录:

1
2
3
source /etc/profile.d/proxy.sh
#查看环境变量进行确认是否生效
env | grep -i proxy