apache正向代理必须显式启用并严格限制访问来源,否则极易被滥用;需同时完成apache访问控制配置(如中require ip白名单、allowconnect端口)和防火墙端口放行(如firewalld按ip段允许3128/tcp),两者缺一不可。

Apache 正向代理必须显式启用并严格限制访问来源,否则极易被滥用。只允许特定内网 IP 使用,需同时完成 Apache 访问控制配置和防火墙端口放行,两者缺一不可。
启用正向代理并绑定监听端口
默认 Apache 不监听代理端口,需手动添加:
- 在 /etc/httpd/conf/httpd.conf(CentOS/RHEL)或 /etc/apache2/apache2.conf(Ubuntu/Debian)末尾加入:
Listen 3128(建议用非标准端口,避免与 Web 服务冲突) - 确认已加载必要模块:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so - 重启服务:
sudo systemctl restart httpd(CentOS)或 sudo systemctl restart apache2(Ubuntu)
配置白名单:只允许可信内网 IP 发起代理请求
正向代理的白名单必须放在 <proxy></proxy> 块中,并配合 AllowCONNECT 控制 HTTPS 隧道(如需):
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 添加以下配置(推荐置于
<ifmodule mod_proxy.c></ifmodule>块内):
Require all denied
Require ip 192.168.10.0/24
Require ip 10.0.5.100 - 若需支持 HTTPS 网站访问,必须额外放开 CONNECT 方法目标端口:
AllowCONNECT 443 8443(仅允许可信端口建隧道) - 禁止公网暴露:切勿写
Require all granted或遗漏Require all denied
开放防火墙端口并限制来源 IP
Apache 配置再严,防火墙不放行或不限源,也无法生效:
- 以 firewalld 为例,先开放端口:
sudo firewall-cmd --permanent --add-port=3128/tcp
sudo firewall-cmd --reload - 更安全的做法是直接按源 IP 段放行:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" port port="3128" protocol="tcp" accept'
sudo firewall-cmd --reload - 验证监听状态:
sudo ss -tlnp | grep :3128(应看到 httpd/apache2 进程)
验证白名单是否真正生效
不要只靠浏览器测试,分步确认更可靠:
- 语法检查:
sudo apachectl configtest 或 sudo apache2ctl configtest,输出 Syntax OK 再继续 - 从白名单 IP 执行:
curl -x http://your-server-ip:3128 https://httpbin.org/ip —— 应返回真实客户端 IP - 从非白名单 IP 执行相同命令 —— 应返回 403 Forbidden,且 Apache error_log 中可见 “client denied by server configuration”










