最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx通過(guò)配置文件阻止海外ip訪問(wèn)的方法步驟

 更新時(shí)間:2025年07月02日 10:08:54   作者:慕雪華年  
這篇文章主要介紹了Nginx通過(guò)配置文件阻止海外ip訪問(wèn)的方法步驟,為防止海外IP刷評(píng)論,用戶通過(guò)Nginx配置屏蔽海外IP,利用APNIC數(shù)據(jù)提取國(guó)內(nèi)IP并生成deny規(guī)則,測(cè)試后確認(rèn)有效,可手動(dòng)或定時(shí)更新配置以保持防護(hù),需要的朋友可以參考下

說(shuō)明

因?yàn)樽罱l(fā)現(xiàn)有不少刷 評(píng)論的腳本,在nginx請(qǐng)求日志里面看了眼,都是海外的ip,反正我的博客也是全中文。所以干脆把海外ip禁止artalk評(píng)論。

/etc/nginx/nginx.conf中可以看到默認(rèn)的日志路徑,在里面能找到每一個(gè)轉(zhuǎn)發(fā)的請(qǐng)求和其源IP。其中artak新增評(píng)論的請(qǐng)求是/api/add路徑

access_log  /var/log/nginx/access.log  main;

解決

APNIC介紹

后文出現(xiàn)的網(wǎng)站是來(lái)自APNIC (Asia Pacific Network Information Center),其是IP地址管理機(jī)構(gòu)之一,負(fù)責(zé)亞洲、太平洋地區(qū)。

APNIC提供了每日更新的亞太地區(qū)IPv4,IPv6,AS號(hào)分配的信息表:
http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest
該文件的格式與具體內(nèi)容參見(jiàn):
http://ftp.apnic.net/pub/apnic/stats/apnic/README.TXT

腳本獲取ip

可以下載所有海外ip列表并生成一個(gè)nginx配置,寫(xiě)入/etc/nginx/blackip.conf

#!/bin/bash
rm -f legacy-apnic-latest black_`date +%F`.conf && wget http://ftp.apnic.net/apnic/stats/apnic/legacy-apnic-latest

awk -F '|' '{if(NR>2)printf("%s %s/%d%s\n","deny",$4,24,";")}' legacy-apnic-latest > black_`date +%F`.conf && \
rm -f /etc/nginx/blackip.conf && \
ln -s $PWD/black_`date +%F`.conf /etc/nginx/blackip.conf

腳本執(zhí)行后的效果如下

[root@bt-7274:/etc/nginx]# ll
total 88
lrwxrwxrwx 1 root root   34 Dec  9 16:03 blackip.conf -> /root/docker/black_2023-12-09.conf

文件內(nèi)容如下

[root@bt-7274:/etc/nginx/conf.d]# cat ../blackip.conf
deny 128.134.0.0/24;
deny 128.184.0.0/24;
deny 128.250.0.0/24;
deny 129.60.0.0/24;
deny 129.78.0.0/24;
...后面的省略了

nginx屏蔽海外ip

你可以將這個(gè)blackip.conf/etc/nginx/nginx.conf中的http模塊里面include,這樣會(huì)阻止當(dāng)前服務(wù)器所有反代的海外的請(qǐng)求。

include /etc/nginx/blackip.conf;

還可以在單個(gè)配置文件的location里面引用

    location / {
        proxy_redirect off; # artalk的nginx配置中必須有這個(gè)
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_set_header Upgrade-Insecure-Requests 1;
        proxy_set_header X-Forwarded-Proto https;

        include /etc/nginx/blackip.conf; # 引用配置

        proxy_pass http://127.0.0.1:14722;
  }

修改后重啟nginx,沒(méi)有報(bào)錯(cuò)就是ok了

systemctl restart nginx

用海外的服務(wù)器試試能不能請(qǐng)求artalk,用Artalk這個(gè)管理員登錄頁(yè)面來(lái)進(jìn)行測(cè)試。

國(guó)內(nèi)服務(wù)器請(qǐng)求結(jié)果如下,和瀏覽器打開(kāi)的結(jié)果基本是一樣(管理員登錄界面)

[root@bt-7274:/etc/nginx/conf.d]# curl https://artk.musnow.top/sidebar/#/login
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Artalk Sidebar</title>
    <script type="module" crossorigin src="./assets/index-5a0b3a93.js"></script>
    <link rel="stylesheet" href="./assets/index-84fdcf98.css" rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >
  </head>
  <body>
    <div id="app"></div>

  </body>
</html>

海外服務(wù)器請(qǐng)求結(jié)果也是上面這樣……然后發(fā)現(xiàn)是因?yàn)槲业暮M夥?wù)器ip壓根不在那個(gè)black的deny列表里面

嘗試把ip的網(wǎng)段給加進(jìn)去,重啟nginx再試試。完美處理!添加前能正常請(qǐng)求到,添加后就變成403了

[root@RainYun-8aNbbsmA:~]# curl https://artk.musnow.top/sidebar/#/login
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Artalk Sidebar</title>
    <script type="module" crossorigin src="./assets/index-5a0b3a93.js"></script>
    <link rel="stylesheet" href="./assets/index-84fdcf98.css" rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >
  </head>
  <body>
    <div id="app"></div>

  </body>
</html>
[root@RainYun-8aNbbsmA:~]#
[root@RainYun-8aNbbsmA:~]# curl https://artk.musnow.top/sidebar/#/login
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.20.1</center>
</body>
</html>
[root@RainYun-8aNbbsmA:~]#

nginx屏蔽非國(guó)內(nèi)ip

我前文提到了我的海外服務(wù)器的ip不在這個(gè)deny的ip列表里面,沒(méi)有被屏蔽。

考慮到網(wǎng)上搜不到legacy-apnic-latest文件存放的是什么ip的信息,我決定換一個(gè)思路:allow國(guó)內(nèi)的ip,拒絕所有非國(guó)內(nèi)的ip

下面這個(gè)url里面的ip地址標(biāo)明了地區(qū),我們只需要將其提取出來(lái)即可

http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest

這個(gè)文件里面的內(nèi)容結(jié)構(gòu)如下

等級(jí)機(jī)構(gòu)|獲得該IP段的國(guó)家/組織|資源類型|起始IP|IP段長(zhǎng)度|分配日期|分配狀態(tài)

我們只需要提取CN的所有IP,然后允許他們,再deny all阻止其他ip就可以了

#!/bin/bash
rm -f delegated-apnic-latest blackcn_`date +%F`.conf && wget http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest

awk -F\| '/CN\|ipv4/ { printf("%s %s/%d%s\n","allow",$4, 32-log($5)/log(2), ";") }' delegated-apnic-latest > blackcn_`date +%F`.conf && \
rm -f /etc/nginx/blackcn.conf && \
ln -s $PWD/blackcn_`date +%F`.conf /etc/nginx/blackcn.conf

執(zhí)行這個(gè)腳本后,會(huì)生成/etc/nginx/blackcn.conf文件

[root@bt-7274:/etc/nginx]# ll
total 88
lrwxrwxrwx 1 root root   42 Dec  9 16:54 blackcn.conf -> /root/docker/nginx/blackcn_2023-12-09.conf
lrwxrwxrwx 1 root root   40 Dec  9 16:56 blackip.conf -> /root/docker/nginx/black_2023-12-09.conf

內(nèi)容如下

allow 223.248.0.0/14;
allow 223.252.128.0/17;
allow 223.254.0.0/16;
allow 223.255.0.0/17;
allow 223.255.236.0/22;
allow 223.255.252.0/23;
....

還是修改nginx單個(gè)站點(diǎn)配置文件的location中的內(nèi)容

    location / {
        proxy_redirect off;
    	proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_set_header Upgrade-Insecure-Requests 1;
        proxy_set_header X-Forwarded-Proto https;
		# 允許所有國(guó)內(nèi)ip
    	include /etc/nginx/blackcn.conf;
    	deny all; # 阻止其他ip

    	proxy_pass http://127.0.0.1:14722;
        }

先來(lái)試試不修改配置文件(不做任何deny和allow操作的情況下)海外ip請(qǐng)求結(jié)果

[root@RainYun-8aNbbsmA:~]# curl https://artk.musnow.top/sidebar/#/login
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Artalk Sidebar</title>
    <script type="module" crossorigin src="./assets/index-5a0b3a93.js"></script>
    <link rel="stylesheet" href="./assets/index-84fdcf98.css" rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >
  </head>
  <body>
    <div id="app"></div>

  </body>
</html>

符合預(yù)期,正常請(qǐng)求出了登錄頁(yè)面的html文件。

添加如上修改后,重啟nginx,再次進(jìn)行測(cè)試。這一次已經(jīng)403阻止了,完美!

[root@RainYun-8aNbbsmA:~]# curl https://artk.musnow.top/sidebar/#/login
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.20.1</center>
</body>
</html>

The end

你可以寫(xiě)個(gè)crontab讓其定時(shí)執(zhí)行腳本并重啟nginx,我個(gè)人還是選擇人工處理了(什么時(shí)候想起來(lái)就去更新一下ip列表)

以上就是Nginx通過(guò)配置文件阻止海外ip訪問(wèn)的方法步驟的詳細(xì)內(nèi)容,更多關(guān)于Nginx阻止海外ip訪問(wèn)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • nginx通過(guò)https部署vue項(xiàng)目的完整步驟

    nginx通過(guò)https部署vue項(xiàng)目的完整步驟

    在實(shí)際開(kāi)發(fā)中,我們會(huì)以https形式進(jìn)行頁(yè)面訪問(wèn),下面這篇文章主要給大家介紹了關(guān)于nginx通過(guò)https部署vue項(xiàng)目的完整步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • 關(guān)于Nginx動(dòng)靜分離詳解以及配置

    關(guān)于Nginx動(dòng)靜分離詳解以及配置

    這篇文章主要介紹了關(guān)于Nginx動(dòng)靜分離詳解以及配置,動(dòng)靜分離是通過(guò)中間件將動(dòng)態(tài)請(qǐng)求和靜態(tài)請(qǐng)求進(jìn)行分離,分離資源,減少不必要的請(qǐng)求消耗,減少請(qǐng)求延時(shí),需要的朋友可以參考下
    2023-04-04
  • Nginx(PHP/fastcgi)的PATH_INFO問(wèn)題

    Nginx(PHP/fastcgi)的PATH_INFO問(wèn)題

    PATH_INFO是一個(gè)CGI 1.1的標(biāo)準(zhǔn),經(jīng)常用來(lái)做為傳參載體. 比如, 我們可以使用PATH_INFO來(lái)代替Rewrite來(lái)實(shí)現(xiàn)偽靜態(tài)頁(yè)面, 另外不少PHP框架也使用PATH_INFO來(lái)作為路由載體.
    2011-08-08
  • 淺談Nginx七層反向代理和負(fù)載均衡

    淺談Nginx七層反向代理和負(fù)載均衡

    這篇文章主要介紹了淺談Nginx七層反向代理和負(fù)載均衡,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • Nginx基本運(yùn)行原理解析

    Nginx基本運(yùn)行原理解析

    這篇文章給大家介紹Nginx基本運(yùn)行原理解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2026-05-05
  • Nginx部署前端靜態(tài)文件指南分享(基于虛擬機(jī)環(huán)境)

    Nginx部署前端靜態(tài)文件指南分享(基于虛擬機(jī)環(huán)境)

    本筆記詳細(xì)介紹了如何使用Nginx部署前端靜態(tài)文件,包括環(huán)境準(zhǔn)備、文件傳輸、配置文件編寫(xiě)、自定義配置加載、驗(yàn)證配置和日志查看等步驟,通過(guò)實(shí)踐操作,用戶可以掌握用Nginx快速部署任意前端靜態(tài)文件的核心技能
    2026-02-02
  • 記一次nginx配置不當(dāng)引發(fā)的499與failover 機(jī)制失效問(wèn)題

    記一次nginx配置不當(dāng)引發(fā)的499與failover 機(jī)制失效問(wèn)題

    近期在非高峰期也存在499超過(guò)告警閾值的偶發(fā)情況,多的時(shí)候一天幾次,少的時(shí)候則幾天一次,持續(xù)一般也就數(shù)分鐘,經(jīng)過(guò)和小伙伴的共同探究,最后發(fā)現(xiàn)之前對(duì)于499是客戶端主動(dòng)斷開(kāi)因而和服務(wù)端關(guān)系不大的想當(dāng)然認(rèn)知是錯(cuò)誤的,這里記錄一下
    2023-05-05
  • linux下安裝Nginx1.16.0的教程詳解

    linux下安裝Nginx1.16.0的教程詳解

    因?yàn)樽罱诘跪vlinux,想安裝新版本的nginx,找了一圈教程沒(méi)有找到對(duì)應(yīng)的教程,在稍微倒騰了一會(huì)之后終于成功的安裝了最新版。這篇文章主要介紹了linux下安裝Nginx1.16.0 ,需要的朋友可以參考下
    2019-06-06
  • Nginx同一個(gè)域名配置多個(gè)項(xiàng)目的實(shí)現(xiàn)方法

    Nginx同一個(gè)域名配置多個(gè)項(xiàng)目的實(shí)現(xiàn)方法

    這篇文章主要介紹了Nginx同一個(gè)域名配置多個(gè)項(xiàng)目的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • nginx?負(fù)載均衡輪詢方式配置詳解

    nginx?負(fù)載均衡輪詢方式配置詳解

    負(fù)載均衡(load-balance)就是將負(fù)載分?jǐn)偟蕉鄠€(gè)操作單元上執(zhí)行,從而提高服務(wù)的可用性和響應(yīng)速度,帶給用戶更好的體驗(yàn),本文給大家介紹nginx?負(fù)載均衡輪詢方式配置,感興趣的朋友一起看看吧
    2022-03-03

最新評(píng)論

南城县| 泸水县| 扶沟县| 满洲里市| 东至县| 灵山县| 景东| 融水| 鄂州市| 上高县| 称多县| 乐都县| 保山市| 鄂州市| 新疆| 汕头市| 鲁山县| 西城区| 沐川县| 阿荣旗| 鄂州市| 柳江县| 保亭| 武强县| 内黄县| 伊川县| 二手房| 新沂市| 孟津县| 南平市| 江油市| 永胜县| 舟曲县| 孝义市| 土默特左旗| 谷城县| 庄河市| 朔州市| 南开区| 张北县| 乐亭县|