Nginx屏蔽某个国家地区或IP段的简单实用方法
- Nginx
- 2023-05-07
- 303热度
- 0评论
本文以Nginx为例,宝塔面板(BT.CN和aaPanel)自带的免费防火墙屏蔽指定的国家IP段基本无效,只好自己动手找解决方法。
1、下载IP数据库
打开下方链接:
https://www.ip2location.com/free/visitor-blocker
中国大陆地区访问会一直提示
Verifying your request, please wait...
⚆_⚆ 所以你必须要用魔法。
在该页面中间的Download List,选择要屏蔽阻止的国家/地区、IP 地址版本(IPv4 或 IPv6)、输出格式,然后按“DOWNLOAD”按钮下载。如果看不懂,下面的操作就没必要了。
下载后解压firewall.txt.gz,解压后用记事本打开firewall.txt:
# -------------------------------------------------------
# Free IP2Location Firewall List by Country
# Source: https://www.ip2location.com/free/visitor-blocker
# Last Generated: 07 May 2023 17:45:10 GMT
# [Important] Please update this list every month
# -------------------------------------------------------
location / {
deny 1.0.16.0/20;
…
}
删除
# -------------------------------------------------------
# Free IP2Location Firewall List by Country
# Source: https://www.ip2location.com/free/visitor-blocker
# Last Generated: 07 May 2023 17:45:10 GMT
# [Important] Please update this list every month
# -------------------------------------------------------
location / {
注意:
最后一行的}也要删除,只保留deny IP部分
文件另存为:
blocksip.conf
2、上传blocksip.conf
我使用的是宝塔面板,所以直接登录面板,面板左侧:文件,将blocksip.conf上传到/www/server/nginx/conf目录下。
3、Nginx设置
在控制面板左侧导航:网站,打开你要屏蔽访问的站点 - 设置,在配置文件中添加:
include blocksip.conf;
重启Nginx服务,结束。
4、其他
需要添加新的屏蔽IP则编辑blocksip.conf文件;
blocksip.conf文件格式还有许多种,可以配置只允许的IP或者IP段访问
deny IP; 拒绝 IP
allow IP; 允许 IP