Git代理和代理工具协作指南
1.代理工具清除系统代理时会影响Git代理吗?
不会,两者属于不同的配置体系,互不干扰:
系统代理影响遵循系统设置的应用程序(如浏览器);Git代理通过自身的配置文件独立管理(存储在~/.gitconfig中),是持久性的。
2.Git代理配置方法
# 配置SOCKS5代理
git config --global http.proxy "socks5://127.0.0.1:10808"
git config --global https.proxy "socks5://127.0.0.1:10808"
# 配置HTTP/HTTPS代理
git config --global http.proxy "http://127.0.0.1:10809"
git config --global https.proxy "http://127.0.0.1:10809"
# 查看当前配置
git config --global --get http.proxy
git config --global --get https.proxy
# 取消代理配置
git config --global --unset http.proxy
git config --global --unset https.proxy
# 针对特定域名配置
git config --global http.https://github.com.proxy "socks5://127.0.0.1:10808"
10808/10809端口号延续1080端口历史,可以自己设置端口号。
3.不开代理工具,只配置Git代理,可以访问外网吗?
不可以。
Git 代理只是一个“规则”,它本身没有网络传输能力。配置Git代理是告诉它把网络请求都转发到本机的 10808/10809 端口去处理,代理工具访问目标网站,再把数据返回给 Git。
4.不配置Git代理,打开代理软件的自动配置代理服务,为什么git clone失败?
还是那个问题,系统代理和 Git 使用两套完全不同的机制。
5.代理工具清除系统代理后,可以访问外网吗?
一般不能。
很多人仅仅使用代理工具配置系统代理(正是在下),那么清除后应用软件就不能联网——除非你给每个软件独立配置代理。
6.配置Git代理后,分别在自动配置系统代理、PAC模式、全局模式时,可以访问外网吗?
当然,而且git clone也成功。
因此最佳实践:代理工具选择“自动配置”或“PAC模式”,同时单独配置Git代理。
7.为什么Git采用独立网络通道?
追求跨平台兼容、精细控制、安全可靠性——鱼龙混杂的网络世界中的一股清流。
8.代理工具是怎么访问外网的?
在本地和境外服务器之间,通过“自定义通信协议 + 强加密传输 + 流量伪装”的技术组合,把自己的流量隐藏在海量正常的互联网流量中,骗过防火墙的检测,实现流量的自由转发。
9.PAC模式工作原理
代理自动配置(PAC)通过JavaScript规则决定流量走向:
function FindProxyForURL(url, host) {
// 内网直连
if (isInNet(host, "192.168.0.0", "255.255.0.0")) {
return "DIRECT";
}
// 国内域名直连
if (shExpMatch(host, "*.baidu.com") ||
shExpMatch(host, "*.qq.com")) {
return "DIRECT";
}
// 特定域名走代理
if (shExpMatch(host, "*.github.com")) {
return "PROXY 127.0.0.1:10809";
}
return "DIRECT";
}

浙公网安备 33010602011771号