Linux 实例使用 Apache 的 .htaccess 文件限制 IP 访问

185****6786发表于:2018年06月22日 00:11:12更新于:2018年06月22日 00:13:55

在服务器上运行网站时,会遇到大量恶意 IP 的攻击访问,或者出现非法盗链和恶意采集网站资源的情况。如果您使用 Apache 服务运行网站,可以通过其根目录下的 .htaccess 文件限制某些 IP 对网站的访问。


禁止特定 IP 访问

Order Allow,DenyAllow from allDeny from 123.46.7.89   #表示禁止 123.46.7.89 访问,其他 IP 可以正常访问。

禁止部分 IP 访问

Order Allow,DenyAllow from allDeny from IP1 IP2 IP3   #表示禁止 IP1 IP2 IP3 访问,,其他 IP 可以正常访问。

禁止 IP 地址段访问

Order Allow,DenyAllow from allDeny from 192.168.1.   #表示禁止IP地址段 192.168.1.0/24,也就是禁止 192.168.1.1 - 192.168.1.254 的 IP 访问。

注意事项

  • Order 关键字可以决定 Allow 和 Deny 起作用的顺序,简单的说就是谁排在最后,谁就有最终的决定权。Allow 表示允许,Deny 表示拒绝。

  • Order Deny,Allow 意思是先检查是否有 Deny 规则,不论有没有 Deny 规则都会继续检查是否有 Allow 规则,如果有 Allow,Allow 规则的内容可以覆盖掉 Deny 规则。

  • Order Allow,Deny 恰好相反。

例如:

以下代码最终禁止所有 IP 对网站的访问:

 Order Allow,Deny          #先检查 Allow,由 Deny 拥有决定权
 Allow from 123.46.7.89    #允许 123.46.7.89 访问网站。
 Deny from all             #禁止所有 IP 对网站的访问。

以下代码最终只允许 IP1 访问,其他 IP 全部禁止:

 Order Deny,Allow          #先检查 Deny,由 Allow 拥有决定权
 Deny from all             #Deny 规则要求禁止所有 IP 的访问
 Allow from IP1            #Allow 规则只允许 IP1 访问