Apache基于IP的虚拟主机本身不提供内外网隔离,但可通过为内外网分配不同IP、绑定独立虚拟主机并配置Require访问控制来实现隔离;需配合防火墙、网卡划分和DNS分离等网络层措施协同加固。
apache 基于 ip 的虚拟主机本身不直接提供“内外网隔离”功能,但它可以成为实现该目标的关键基础——关键在于**为内网和外网分配不同 ip 地址,并分别绑定独立的虚拟主机配置,再配合访问控制策略**。整个逻辑是:让 apache 主动识别请求来自哪个 ip(即客户端连接到服务器的哪个监听地址),然后路由到对应站点,并限制其可访问范围。
前提:服务器需绑定多个 IP 地址
这是基于 IP 虚拟主机的硬性要求。例如:
- 外网 IP:
203.0.113.5(假设已映射公网,或用于 DMZ 区测试) - 内网 IP:
192.168.10.100(仅局域网可达) - 本地回环/管理 IP:
127.0.0.1或额外私有地址(可选)
在 Linux 上添加临时 IP 示例:
sudo ip addr add 192.168.10.100/24 dev eth0 sudo ip addr add 203.0.113.5/24 dev eth0:1
确认生效:ip addr show 或 ifconfig 中能看到多个 inet 行。
配置两个独立的 IP 虚拟主机
编辑 /etc/httpd/conf/extra/httpd-vhosts.conf(或对应路径),定义两个 <VirtualHost>,每个绑定唯一 IP 和端口(通常都是 *:80 或 IP:80):
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
# 内网专用站点(只响应 192.168.10.100 的请求)
<VirtualHost 192.168.10.100:80>
ServerName intranet.local
DocumentRoot /var/www/intranet
<Directory "/var/www/intranet">
Require ip 192.168.10.0/24
Require local
</Directory>
</VirtualHost>
<h1>外网公开站点(只响应 203.0.113.5 的请求)</h1><p><VirtualHost 203.0.113.5:80>
ServerName www.example.com
DocumentRoot /var/www/public
<Directory "/var/www/public">
Require all granted
</Directory>
</VirtualHost>注意:
– 不用写 NameVirtualHost(Apache 2.4+ 已废弃);
– Require ip 是核心访问控制,确保即使有人从外网伪造 Host 头,也无法访问内网站点目录;
– 两个站点物理路径分离,内容完全隔离。
阻止跨网误访与默认兜底
若用户直接用外网 IP 访问内网站、或用内网 IP 访问外网站,Apache 可能因匹配顺序问题返回错误内容。建议加一个“拒绝型兜底主机”:
<VirtualHost *:80>
ServerName _default_
DocumentRoot /var/www/empty
<Directory "/var/www/empty">
Require all denied
</Directory>
</VirtualHost>放在所有 VirtualHost 之前,确保未被明确匹配的请求一律 403 拒绝,避免信息泄露或越权路由。
系统与网络层协同加固
仅靠 Apache 配置不够稳妥,需叠加以下措施:
-
防火墙限制:用
firewalld或iptables控制哪些 IP 能连哪个端口。例如只放行内网段访问192.168.10.100:80,外网 IP 仅允许访问203.0.113.5:80; -
路由与网卡划分:将内外网 IP 绑定到不同网卡(如
eth0接内网,eth1接外网),物理隔离更可靠; -
DNS 分离:内网 DNS 解析
intranet.local → 192.168.10.100,外网 DNS 解析www.example.com → 203.0.113.5,用户自然走对路径。
不复杂但容易忽略的是:Apache 只管 HTTP 层的 Host 和监听 IP,真正的隔离必须由网络层(IP、路由、防火墙)和应用层(Require 规则)共同完成。

















