如果你是在内网环境,并且你知道一台服务器可以链接外网,可以通过Squid代理的方式更新apt、pypi、docker源。
你可以通过在服务器A(172.16.16.122,可上外网)上设置代理服务器来实现服务器B通过服务器A访问外部APT源的需求。以下是具体步骤:
内网环境下
1.在可以访问外网的服务器A上
-
安装代理服务
假设你使用的是
Squid作为代理服务器,因为它是Linux下常用的代理服务器软件之一。在服务器A上安装Squid:
sudo apt update sudo apt install squid -
配置Squid代理服务器
编辑Squid的配置文件
/etc/squid/squid.conf,使其允许服务器B的访问请求:sudo vim /etc/squid/squid.conf在文件中添加或修改以下行:
http_access allow all这将允许所有的HTTP请求通过代理,你也可以设置更细粒度的访问控制。
保存并关闭文件后,重启Squid服务以应用新的配置:
sudo systemctl restart squid
2.在其他无法访问外网的B服务器下
对于APT:
你已经得到了关于如何通过代理服务器进行APT更新的说明,这里我再概述一遍:
-
在服务器A上安装并配置好Squid代理服务器。
-
在服务器B上配置APT代理,创建或编辑
/etc/apt/apt.conf.d/proxy.conf文件,并添加:Acquire::http::Proxy "http://172.16.16.122:3128"; Acquire::https::Proxy "https://172.16.16.122:3128";
注意,HTTPS代理可能需要Squid进行额外的SSL配置。
对于PyPI:
对于Python包管理器,你需要配置pip以使用代理。在服务器B上,你可以为pip添加代理设置:
- 在用户主目录下创建或编辑
.pip/pip.conf(对于全局配置则是/etc/pip.conf),添加:
[global]
index-url = http://mirrors.aliyun.com/pypi/simple
trusted-host = mirrors.aliyun.com
proxy = http://172.16.16.122:3128
如果你需要通过HTTPS使用代理,确保Squid配置支持SSL,并使用相应的https://代理地址。
也可以使用类似下面命令指定代理:
python3 -m pip install fdt xlrd jinja2 -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com --proxy http://172.16.16.122:3128
对于Docker:
对于Docker,需要在服务器B上配置Docker守护程序以使用HTTP/HTTPS代理:
-
创建或编辑
/etc/systemd/system/docker.service.d/http-proxy.conf文件,添加:[Service] Environment="HTTP_PROXY=http://172.16.16.122:3128/" Environment="HTTPS_PROXY=http://172.16.16.122:3128/" Environment="NO_PROXY=localhost,127.0.0.1" -
重新加载Daemon配置,重启Docker服务:
sudo systemctl daemon-reload sudo systemctl restart docker
这样配置后,服务器B的Docker守护程序会通过服务器A的Squid代理进行外网访问。把这个几个配置给我封装成一个自动化执行的shell脚本。
配置封装成一个自动化执行的shell脚本proxy_setup.sh
#!/bin/bash
# 变量定义
TODAY=$(

最低0.47元/天 解锁文章
319

被折叠的 条评论
为什么被折叠?



