1 Star 0 Fork 11

coder_lw / wiki

forked from deepinwiki / wiki 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
代理和镜像网站.md 5.57 KB
一键复制 编辑 原始数据 按行查看 历史
htqx 提交于 2023-04-16 16:20 . 补充git参考资料

代理和镜像网站

前言

网络代理的作用类似路由,就是提供一个数据链路,让客户端可以访问服务器。代理的协议种类有 http,https,socks5,socks5h 等。

注意,socks5 和 socks5h 的差别一般是后者支持代理域名服务器,比如 google.com 国内解析不了 ip ,所以 socks5 代理可能会有问题。

代理服务器,是一个桥梁,它一般是自己架设,或者别人提供的免费服务器。本文就不展开怎么得到代理服务器的地址,请自行解决。

国内有关部门屏蔽了很多技术网站,导致国内的技术人员访问相关技术资源变得和困难(可能也是导致国内技术落后的重要原因,不过本文就不展开讨论了)。因此就诞生了一种叫镜像网站的平台。它是对外网资源进行拷贝复制,在国内假设镜像服务器,因此国内的访客就可以通过这个网站高速访问相关资源。

linux 代理环境变量

linux 可以通过设置以下环境变量,让应用使用代理(不是所有应用都支持),也不是所有应用都支持所有类型的代理,比如 socks5 的代理 wget 不支持。但是这个方式是最通用的,可以优先考虑:

  1. http_proxy
  2. https_proxy
  3. all_proxy

比如:

# 让 wget 使用 http 代理访问网页
http_proxy=http://localhost:12333  wget http://www.google.com

wget 代理设置

wget 不支持 socks5 代理,只支持普通的 http 等代理。如果你没有这种代理服务器,可以通过一个软件来使用 socks5 : proxychains-ng

# 借助 proxychains 使用 socks5 代理
proxychains wget https://www.google.com

proxychains 安装配置

以 arch 系统为例:

# 安装
sudo pacman -S proxychains-ng
# 配置
sudo nano /etc/proxychains.conf 
# 修改配置文件内容的 [ProxyList] 段落
# 注释掉示范代理,如 #socks4 127.0.0.1 9050
# 增加你的代理,如 socks5 127.0.0.1 1080

curl 代理设置

curl 支持丰富的代理设置,可以通过参数设置代理,也可以修改配置文件设置默认代理。不过 curl 的命令参数稍微比较复杂:

  1. -x : 指定代理
  2. -O : 输出到文件(从 url 获取名字)
    1. -JO:输出到文件(从服务器获取)
  3. -o : 输出到指定文件,支持{a,b}[1-5] #1,#2 等匹配符。提供文件名兼容性更高,很多时候自动获取文件名将失败。
  4. -L : 支持重定向,很多网站会自动重定向到另一个url下载实际文件,所以最好使用这个选项
# 编辑配置文件
nano ~/.curlrc
# 添加代理内容: proxy=socks5h://127.0.0.1:1080

# 或者直接在命令行使用
all_proxy=socks5h://localhost:1080 curl -JOL https://www.baidu.com/img/flexible/logo/pc/result.png
#
# 另一种
curl -x socks5h://localhost:1080 -JOL https://www.baidu.com/img/flexible/logo/pc/result.png

git 代理设置

# 设置 git 工具的全局代理
git config --global http.proxy socks5h://127.0.0.1:1080

# 设置当前 .git 仓库
git config http.proxy socks5h://localhost:1080

# 根据网站来设置代理,只对 github.com 域名和 https 的协议生效
git config http.https://github.com.proxy socks5h://localhost:1080

# 关闭 ssl 验证,https 可能有些安全验证对代理来说是有问题的
git config http.sslVerify false

# 临时设置当前命令
git -c http.proxy socks5h://localhost:1080 clone http://xxx.com/xxx.git

# 对于 git@github.com/xxx 的链接,它是使用 ssh 来访问
# ~/.ssh/config 可以配置这个代理,参考 https://gist.github.com/evantoli/f8c23a37eb3558ab8765

# .gitmodules 是 git 的子项目的依赖配置,它并不会使用 .git/config 配置的 http.proxy 代理
# .git/modules/xxx/config 是子项目的配置文档
# 需要分别为每一个子项目设置代理(有点麻烦,所以还是改变环境变量来得比较快)

yay 镜像设置

yay 是自动构建 arch aur 可信用户库的工具。所谓用户库就是第三方用户自行维护的软件仓库,里面大多数是源代码的构建脚本。用过 aur 的人都知道,它非常缓慢,因为源代码脚本经常需要通过网络下载相关的 git 库之类的关联资源。因此建议对 git 和 curl 做全局的代理设置。同时,也可以对 aur 仓库做镜像设置(但是脚本其实很小,真正缓慢的原因应该是关联资源)。

yay 是一个包管理工具,它内部使用的脚本大多数也是使用 wget,curl,git 这类工具来下载相关资源,所以有可能就下载不了资源。可以通过传递 all_proxy 等环境变量来设置代理,有一定概率解决网络问题。

# 配置文件在  ~/.config/yay/config.json 
yay --aururl "https://aur.tuna.tsinghua.edu.cn" --save

# 查看当前配置
yay -Pg

linux 镜像网站

清华大学开源镜像站 https://mirrors.tuna.tsinghua.edu.cn

  1. 常见发行版镜像和官方仓库
  2. linux 内核(linux-stable、linux-firmware)
  3. 第三方仓库(aur、arch4edu、repo-ck、archlinuxcn、epel、Repoforge、RPMFusion、Linuxbrew、openwrt、ros2)
  4. 基础工具(gnu binutils、gbd、gcc、glibc、llvm)
  5. 管理工具(chef、chickhose、docker-ce、grafana、kubernetes、lxc images、proxmox、qemu、Rudder、virtualbox)
  6. 编程语言相关仓库(rust crates.io、rustup、dart pub、flutter、haskell hackage、nodejs、php packagist、pypi、ruby gems)
  7. 数据库(mariadb、mongodb、mysql)

参考

  1. 配置 git 使用代理:https://gist.github.com/evantoli/f8c23a37eb3558ab8765
  2. git 官方文档:https://git-scm.com/book/zh/v2
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/coder_lw/wiki.git
git@gitee.com:coder_lw/wiki.git
coder_lw
wiki
wiki
master

搜索帮助