温馨提示×

ubuntu apache2怎么限制访问

小樊
47
2026-10-02 06:20:43
栏目: 智能运维

在 Ubuntu 上使用 Apache2 限制访问,常见有几种方式,按使用场景给你说明:


一、按 IP 限制访问(最常用)

1. 修改站点配置

编辑你的站点配置(如 000-default.conf 或自定义 conf):

sudo nano /etc/apache2/sites-available/000-default.conf

示例:只允许 192.168.1.0/24 访问

<Directory /var/www/html>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require ip 192.168.1.0/24
</Directory>

禁止某个 IP:

<Directory /var/www/html>
    Require all granted
    Require not ip 10.0.0.5
</Directory>

只允许本机:

Require local

2. 重启 Apache

sudo systemctl restart apache2

二、限制整个网站或某目录

限制某个目录(如 /admin)

<Directory /var/www/html/admin>
    Require ip 203.0.113.10
</Directory>

三、使用 .htaccess 限制(适合不能改主配置)

1. 开启 .htaccess

<Directory /var/www/html>
    AllowOverride All
</Directory>

2. 创建 .htaccess

nano /var/www/html/.htaccess

内容示例:

Require ip 192.168.1.100

或修改后重启 Apache。


四、使用账号密码保护(Basic Auth)

1. 创建密码文件

sudo htpasswd -c /etc/apache2/.htpasswd user1

2. 配置 Apache

<Directory /var/www/html/private>
    AuthType Basic
    AuthName "Restricted Area"
    AuthUserFile /etc/apache2/.htpasswd
    Require valid-user
</Directory>

五、禁止所有访问(维护/内网)

<Directory /var/www/html>
    Require all denied
</Directory>

六、结合防火墙(可选)

Apache 层限制之外,也可用 ufw:

sudo ufw allow from 192.168.1.0/24 to any port 80

常见坑提醒

  • Apache 2.4 用 Require,不要用 Allow/Deny/Order(那是 2.2)
  • 改完配置一定要 apache2ctl configtest
  • 虚拟主机配置错误会导致 403

如果你能说清楚:

  • 限制 整个站点 / 某个目录 / 某个文件
  • 按 IP / 密码 / 时间段
  • 内网还是公网

我可以给你更精确的配置示例。

0 踩