V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
sunny2580839896
V2EX  ›  NGINX

请教下, nginx 怎么禁止国外的 ip 访问

  •  
  •   sunny2580839896 · 2020-06-01 14:48:25 +08:00 · 6272 次点击
    这是一个创建于 1418 天前的主题,其中的信息可能已经有所发展或是发生改变。

    查看 nginx 的访问日志,不停的有国外的 ip 访问访问,怎么给他禁止了

    22 条回复    2020-06-03 13:48:40 +08:00
    crab
        1
    crab  
       2020-06-01 14:57:34 +08:00
    GEOIP
    tankren
        2
    tankren  
       2020-06-01 15:01:54 +08:00
    不要局限 nginx 啊 iptables 等都可以
    est
        3
    est  
       2020-06-01 15:04:13 +08:00
    deny 国外 ip;
    no1xsyzy
        4
    no1xsyzy  
       2020-06-01 15:09:47 +08:00
    @tankren #2 @est #3
    就是你们两个把我这个只有黑名单不走代理的给拒之门外了?
    至少提示下当前地区不允许访问吧……
    dilu
        5
    dilu  
       2020-06-01 15:17:37 +08:00
    有个思路,可以有个脚本异步分析 nginx 日志,有国外 ip 就放到 redis 中,然后 nginx+lua 从 redis 获取 ip,如果已经被封掉了 直接 deny 即可
    iamverylovely
        6
    iamverylovely  
       2020-06-01 15:50:01 +08:00
    locale != zh_CN
    iamverylovely
        7
    iamverylovely  
       2020-06-01 15:51:29 +08:00
    $http_accept_language
    blakejia
        8
    blakejia  
       2020-06-01 15:58:24 +08:00
    换个思路。域名解析分地域。国外直接解析 127.0.0.1 是不是就稳了。
    xiaoz
        9
    xiaoz  
       2020-06-01 16:11:45 +08:00 via Android
    推荐 8 搂的方法,DNS 智能解析,将国外解析到 127.0.0.1
    sunny2580839896
        10
    sunny2580839896  
    OP
       2020-06-01 17:39:16 +08:00
    @blakejia #8 什么意思???感觉你这种方法最简单
    sunny2580839896
        11
    sunny2580839896  
    OP
       2020-06-01 17:39:55 +08:00
    @dilu #5 有案例吗?┭┮﹏┭┮
    blakejia
        12
    blakejia  
       2020-06-01 17:43:01 +08:00
    去搜索下关键字。一般云服务商都有提供。免费版可能没有。但是一般买个最低级的就有这么个功能
    dilu
        13
    dilu  
       2020-06-01 17:56:11 +08:00
    @sunny2580839896 #11 这个恐怕得自己开发

    不过看楼上好像给出了更简单的方案,如果你的域名支持根据国家来解析,直接把国外全部解析到 127 是个不错的办法
    sunny2580839896
        14
    sunny2580839896  
    OP
       2020-06-01 17:59:15 +08:00
    @dilu #13 好的,明白(o´ω`o)ノ
    visualbasic
        15
    visualbasic  
       2020-06-02 00:14:18 +08:00 via iPad
    @sunny2580839896 嗯,楼上几位说的在理,不过 dns 这种东西毕竟是表层,本地设置一下就绕过去了,如果攻击者真心想打恐怕没什么用
    其他的不太清楚,阿里云免费 dns 也支持国外解析的,国外分解析功能国内应该大部分都有
    如果还不行再尝试服务器端设置呗?
    initd
        16
    initd  
       2020-06-02 01:28:58 +08:00
    Cloudflare 的 Worker 支持屏蔽地区
    ns1.com 的免费 DNS 支持地区解析
    sunny2580839896
        17
    sunny2580839896  
    OP
       2020-06-02 09:44:33 +08:00
    @visualbasic #15 好的,谢谢了。我都搞不明白了,老是大量国外的 ip 和国内一些奇怪 ip 扫我,互联网真的是太大了
    no1xsyzy
        18
    no1xsyzy  
       2020-06-02 11:32:43 +08:00
    @sunny2580839896 #17 公网日常被扫,以前 ADSL 的时候自己控制的路由器拨号,有天跑里面日志一看一周扫了几百个请求。因为没有设置内网映射和 DMZ,所以全被路由拦掉了。
    sunny2580839896
        19
    sunny2580839896  
    OP
       2020-06-02 12:59:04 +08:00
    @no1xsyzy #18 现在应该不需要了吧??
    no1xsyzy
        20
    no1xsyzy  
       2020-06-02 13:01:50 +08:00
    @sunny2580839896 #19 CGNAT 么…… 那确实是不需要了……
    sunny2580839896
        21
    sunny2580839896  
    OP
       2020-06-02 13:58:01 +08:00
    @no1xsyzy #20 是的
    wzly
        22
    wzly  
       2020-06-03 13:48:40 +08:00
    cdn 或者 geoip 库
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   940 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 20:02 · PVG 04:02 · LAX 13:02 · JFK 16:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.