apache正向代理在隔离内网中核心作用是使内网客户端通过它安全拉取yum、apt、pip、npm等软件源;需启用proxy、proxy_connect、proxy_http模块,开启proxyrequests,监听并放行端口,严格限制可信ip访问,并正确配置客户端代理及软件源适配。

在隔离内网中,Apache 正向代理的核心作用是让无法直连外网的客户端(如 Linux 服务器)通过它拉取软件源(yum、apt、pip、npm 等)。这不是简单开启代理,而是要确保协议兼容、端口通达、目标可达、身份可信——尤其 HTTPS 源必须能穿透隧道。
启用必要模块并开启正向代理功能
Apache 默认不加载代理模块,也不启用正向代理。需手动确认并激活以下三项:
- 取消注释或添加这三行(路径以实际安装为准,常见于 httpd.conf 或 mods-enabled/):
LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_connect_module modules/mod_proxy_connect.soLoadModule proxy_http_module modules/mod_proxy_http.so - 显式开启正向代理:
ProxyRequests On - 若需支持 HTTPS 源(如
https://repo.example.com),mod_proxy_connect 是必需的,否则 CONNECT 请求会被拒绝,yum update 或 pip install 会卡在 TLS 握手阶段
监听端口 + 防火墙放行(缺一不可)
Apache 必须监听一个明确端口,且该端口必须被系统防火墙允许入站,否则客户端根本连不上。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 在配置文件末尾添加监听指令,例如:
Listen 8080(避免与 Web 服务冲突,不建议用 80) - 重启 Apache:
sudo systemctl restart httpd(CentOS/RHEL)或sudo systemctl restart apache2(Ubuntu/Debian) - 开放防火墙端口(以 firewalld 为例):
sudo firewall-cmd --permanent --add-port=8080/tcpsudo firewall-cmd --reload - 验证是否生效:
sudo ss -tlnp | grep :8080应看到 httpd/apache2 进程在监听
限制访问范围,只允许可信内网使用
正向代理一旦暴露,极易被扫描滥用。必须从 Apache 层和网络层双重收敛来源 IP。
- 在
<ifmodule mod_proxy.c></ifmodule>块内添加白名单策略:<proxy><br> Require ip 10.10.20.0/24<br> Require ip 172.16.0.0/12<br></proxy>
- 对应地,在防火墙中再加一条富规则(强化兜底):
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.10.20.0/24" port port="8080" protocol="tcp" accept' - 禁止公网网段(如 0.0.0.0/0)出现在 Require ip 列表中;如需单台机器测试,可写成
Require ip 10.10.20.45
客户端配置与软件源适配要点
内网机器不能只设代理就完事,还要处理协议、证书、跳过例外等细节。
- 在目标机(如 CentOS)的 /etc/profile 或 ~/.bash_profile 中设置:
export http_proxy="http://10.10.20.10:8080"export https_proxy="http://10.10.20.10:8080"export no_proxy="localhost,127.0.0.1,10.10.20.10,10.10.20.11" - 注意:https_proxy 值仍用 http:// 开头——这是 Apache 正向代理的约定,不是错误;它表示“通过 HTTP 代理发起 HTTPS 请求”,由 mod_proxy_connect 建立隧道
- yum 用户需额外确认:
– /etc/yum.conf 中未强制禁用代理(无proxy=_none_)
– 若源站用自签名证书,可临时加sslverify=false(仅测试,不推荐生产) - apt 用户在 /etc/apt/apt.conf.d/80proxy 中写:
Acquire::http::Proxy "http://10.10.20.10:8080";Acquire::https::Proxy "http://10.10.20.10:8080";










