欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)文章

  • Linux環(huán)境下nginx搭建簡(jiǎn)易圖片服務(wù)器

    Linux環(huán)境下nginx搭建簡(jiǎn)易圖片服務(wù)器

    這篇文章主要介紹了Linux環(huán)境下nginx搭建簡(jiǎn)易圖片服務(wù)器,需要的朋友可以參考下
    2014-10-10
  • nginx請(qǐng)求時(shí)找路徑問(wèn)題解決

    nginx請(qǐng)求時(shí)找路徑問(wèn)題解決

    當(dāng)你安裝了nginx的時(shí)候,為nginx配置了如下的location,想要去訪問(wèn)路徑下面的內(nèi)容,可是總是出現(xiàn)404,找不到文件,這是什么原因呢,今天我們就來(lái)解決這個(gè)問(wèn)題,感興趣的朋友一起看看吧
    2023-10-10
  • nginx的配置轉(zhuǎn)發(fā)到其他網(wǎng)站詳解

    nginx的配置轉(zhuǎn)發(fā)到其他網(wǎng)站詳解

    這篇文章主要為大家介紹了nginx的配置轉(zhuǎn)發(fā)到其他網(wǎng)站過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • nginx處理http請(qǐng)求實(shí)現(xiàn)過(guò)程解析

    nginx處理http請(qǐng)求實(shí)現(xiàn)過(guò)程解析

    這篇文章主要介紹了nginx處理http請(qǐng)求實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Nginx轉(zhuǎn)發(fā)鑒權(quán)全過(guò)程

    Nginx轉(zhuǎn)發(fā)鑒權(quán)全過(guò)程

    這篇文章主要介紹了Nginx轉(zhuǎn)發(fā)鑒權(quán)全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • 詳解Nginx如何處理WebSocket連接

    詳解Nginx如何處理WebSocket連接

    在當(dāng)今互聯(lián)網(wǎng)的世界中,實(shí)時(shí)通信變得越來(lái)越重要,WebSocket 作為一種實(shí)現(xiàn)實(shí)時(shí)雙向通信的技術(shù),正被廣泛應(yīng)用于各種場(chǎng)景,而 Nginx 作為一款高性能的 Web 服務(wù)器和反向代理服務(wù)器,在處理 WebSocket 連接方面也有著出色的表現(xiàn),本文介紹了Nginx如何處理WebSocket連接
    2024-07-07
  • 在Debian11上安裝Openresty服務(wù)(Nginx+Lua)的詳細(xì)教程

    在Debian11上安裝Openresty服務(wù)(Nginx+Lua)的詳細(xì)教程

    OpenResty 是一個(gè)基于 Nginx 與 Lua 的高性能 Web 平臺(tái),其內(nèi)部集成了大量精良的 Lua 庫(kù)、第三方模塊以及大多數(shù)的依賴項(xiàng),這篇文章主要介紹了在Debian11上安裝Openresty服務(wù)(Nginx+Lua)?,需要的朋友可以參考下
    2022-10-10
  • nginx日常維護(hù)常用命令

    nginx日常維護(hù)常用命令

    這篇文章主要介紹了nginx日常維護(hù)如nginx啟動(dòng)、重啟、關(guān)閉等常用命令,需要的朋友可以參考下
    2014-03-03
  • Nginx-rtmp實(shí)現(xiàn)直播媒體實(shí)時(shí)流效果

    Nginx-rtmp實(shí)現(xiàn)直播媒體實(shí)時(shí)流效果

    這篇文章主要介紹了Nginx-rtmp實(shí)現(xiàn)直播媒體實(shí)時(shí)流效果,文中給出了總體設(shè)計(jì)圖,為了整合平臺(tái),會(huì)自建RTMP流媒體服務(wù)器和使用云廠商SaaS的RTMP流媒體服務(wù),需要的朋友可以參考下
    2018-08-08
  • 詳解nginx upstream 配置和作用

    詳解nginx upstream 配置和作用

    這篇文章主要介紹了詳解nginx upstream 配置和作用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評(píng)論