V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要把任何和邀请码有关的内容发到 NAS 节点。

邀请码相关的内容请使用 /go/in 节点。

如果没有发送到 /go/in,那么会被移动到 /go/pointless 同时账号会被降权。如果持续触发这样的移动,会导致账号被禁用。
xuegy
V2EX  ›  NAS

公网开 nginx proxy manager 是不是太作死了?

  •  
  •   xuegy · 54 天前 · 5309 次点击
    这是一个创建于 54 天前的主题,其中的信息可能已经有所发展或是发生改变。
    网上铺天盖地的都是 nginx proxy manager 的教程,我就装了一个,确实挺方便。路由器只映射 80 和 443 ,别的都没开,nginx 这边除了一个 webdav 都限制内网访问。
    昨天 QNAP 突然给我发报警邮件说防火墙拦截的记录达到阈值,我点进去一看过去的一周内每小时都是 20+次记录。再上网一搜这个 nginx proxy manager 的安全性也存疑。约等于自己在公网上裸奔了一个星期。
    换自定义端口能有用吗?还是完全就不应该开这种东西?
    第 1 条附言  ·  53 天前
    我现在甚至怀疑网上这些 npm 的配置文章都是黑产写的。如果用 DNS challenge 的话根本就不需要开 80/433 ,非蠢即坏了。
    34 条回复    2025-04-26 09:44:01 +08:00
    PerFectTime
        1
    PerFectTime  
       54 天前   ❤️ 4
    用 caddy, 一个配置文件就解决了, 少用这种面板
    f1ynnv2
        2
    f1ynnv2  
       54 天前
    npm 问题太多了,不仅仅是安全性问题,还有很多稳定性问题,经常是某天重启一下就不行了,遇到版本升级完全看运气,不知道网上为啥这么多吹 npm 的。最后换了 caddy 。
    dodakt
        3
    dodakt  
       54 天前
    直接用 nginx 配置,比用面板方便多了。现在和前几年不一样,哪怕不会配问 AI 解决。
    lengrongec
        4
    lengrongec  
       53 天前
    如果单纯只是图方便,npm 这种东西不要直接安装在 nas 上,最好装在 arm 架构的二三十块钱的 armbian 系统上,反向代理要访问内网的 nas 端口。
    npm 直接安装在你最重要的 nas 上,小心给你戳爆
    roygong
        5
    roygong  
       53 天前 via iPhone
    手搓 Nginx 配置文件呗,那个 GUI 都是非官方的
    Yang2635
        6
    Yang2635  
       53 天前 via Android
    这些面板用的很少,个人管理自己 nginx 一般先写好两个配置,一个配置用于反代的,一个用于正常 web 的。需要用哪个就复制哪一份,简单修改一下里面域名等参数就行了
    duzhuo
        7
    duzhuo  
       53 天前
    你只映射 80 443 也会有问题吗,被扫了不可避免吧
    dilidilid
        8
    dilidilid  
       53 天前
    要高级的就手搓 nginx ,省事就用 caddy ,我不知道为啥要用 NPM 这种面板,有什么漏洞也不会有人及时修的
    AhFei
        9
    AhFei  
       53 天前 via Android
    我一开始也用的这个面板,后来试着直接用 Nginx 去反代 docker 容器之类的,其实配置也挺简单,写了个文章记录 https://yanh.tech/2024/09/tutorial-of-nginx-reverse-proxy-and-redirection/
    kekylin
        10
    kekylin  
       53 天前   ❤️ 1
    推荐直接使用 Nginx ,加个访问地理位置限制,比如限制国外 IP 访问。
    参考教程(打开链接下拉在教程汇总): https://github.com/kekylin/Debian-HomeNAS

    如果说对配置不熟悉,可以部署 Nginx-UI ,这个面板可以给 Nginx 提供可视化配置管理,还有 SSL 证书自动续签等功能,面板与 Nginx 是分离的,互相独立。
    项目地址: https://github.com/0xJacky/nginx-ui

    如果需要监控访问流量,访问来源等数据,还可以部署一个 NixVis ,轻量级 Nginx 日志分析工具,以可视化界面展示访问数据。
    项目地址: https://github.com/BeyondXinXin/nixvis
    jiayouzl
        11
    jiayouzl  
       53 天前   ❤️ 4
    明显服务器被扫了,跟 nginx proxy manager 有毛关系。
    sfdev
        12
    sfdev  
       53 天前
    跟 nginx proxy manager 没关系
    tunggt
        13
    tunggt  
       53 天前
    一小时 20 次,多吗?
    你服务器哪天不受到攻击的。
    PatchouliTC
        14
    PatchouliTC  
       53 天前
    NPM 是给完全小白用的,但凡你需要一些微调 diy 配置 NPM 就是受大罪;
    真希望用 GUI 处理不如隔壁的 nginx-ui ,至少每个配置都是可以手搓,而且类似 nginx.conf 或者需要第三方 module 你可以直接 clone git 自己写 dockerfile 去弄;
    最多就是 certbot 整的烦,可以用 nginx-certbot 这个项目,纯 nginx ,就是加了个读取配置文件自动识别 https 然后帮你去自动续签
    最后或者就是用 caddy
    bao3
        15
    bao3  
       53 天前
    我推荐你一个安全的方法,用虚拟机支持群晖,然后在虚拟群晖,系统自带了安全可靠的反向代理,也可以用群晖来申请证书。这样直接就实现同一个端口,绑定 N 个域名,然后 https 访问。

    这个方式安全稳定,可靠。
    MarkP
        16
    MarkP  
       53 天前
    个人愚见,如果一定要用这种 nginx 管理器的话,还不如用宝塔或者 1panel 之类的。
    canitnamechange
        17
    canitnamechange  
       53 天前 via Android
    还好,网上更有些部分游戏服务器搭建教程是直接让你开全端口(or 关闭防火墙)
    alfawei
        18
    alfawei  
       53 天前
    为何你还能开 80443 端口? 这个才是关键不是 npm 的问题
    lizhien
        19
    lizhien  
       53 天前
    个人觉得那几个 web ui 都不好用,不如自己手写配置文件
    jpyl0423
        20
    jpyl0423  
       52 天前
    我就公网开 NPM 啊,有啥问题,以前也手搓 nginx 配置,自建服务太多了还是图形化的方便
    he1293024908
        21
    he1293024908  
       52 天前
    公网就尽量别用 80 和 443 吧,感觉被扫的概率会比自定义端口大很多
    yuhuai
        22
    yuhuai  
       52 天前
    第一,npm 允许你自定 Nginx Configuration
    第二,如果你把面板暴露在外是你的问题
    第三,就算你开了 80 和 443 ,这是你内部 Nginx 主机的端口,而不是外部映射端口,如果你外部映射端口有本事开了 80 和 443 ,那也是你的问题
    第四,如果你非要跟我们谈安全,你就不要谈什么公网映射端口的问题,直接 ddns ,只允许 vpn 连回专用网,做好内部隔离才是真的
    grady8866
        23
    grady8866  
       52 天前
    可以去看 npm 官方文档,对映射的端口有说明。有教程说 80/443 是因申请证书而必须映射出来的吗?“如果用 DNS challenge 的话根本就不需要开 80/433 ,非蠢即坏了。”如果不映射 npm 容器的 80 或 443 端口,客户端应该访问哪个端口来访问经过反代的服务呢?感觉楼主部署时并不清楚所映射端口的具体作用。

    - '80:80' # Public HTTP Port
    - '443:443' # Public HTTPS Port
    - '81:81' # Admin Web Port
    neptuno
        24
    neptuno  
       52 天前
    不要开放端口就好了,走内网访问
    SakuraYuki
        25
    SakuraYuki  
       52 天前
    80 ,443 没被封?你那运营商不管的吗
    TimPeake
        26
    TimPeake  
       52 天前
    ai 未流行之前,这种可视化 NG 配置面板确实非常有用。但是现在看来....emmm, 你要是能上手 可视化的配置 大大概率也是能看懂 ng 的配置的,再加上 ai 的配置输出,综合上手成本甚至不如 ng....配置也更灵活
    Zhousiru
        27
    Zhousiru  
       52 天前
    也可以试试 Traefik
    xuegy
        28
    xuegy  
    OP
       52 天前 via Android
    @alfawei
    @SakuraYuki
    墙外运营商不封 80 443
    alfawei
        29
    alfawei  
       52 天前
    @xuegy 那就更容易被人家扫了,你看人家网站都是配置防火墙的
    bronyakaka
        30
    bronyakaka  
       51 天前
    nginx 直接写配置也不麻烦。。。别用 caddy
    zyp38263547
        31
    zyp38263547  
       51 天前
    说 npm 有安全问题的。如果不把管理端口开放外网访问,实际上 80/443 有的安全性漏洞,也是来自 nginx 的。
    zyp38263547
        32
    zyp38263547  
       51 天前
    无论如何,不需要公网访问的所有页面都不要暴露在公网。我看了下“CVE-2023-27224”、“CVE-2024-39935”、“CVE-2024-46256”、“CVE-2024-46257”,就是大家说的 npm 安全性问题,这几个漏洞是来自 npm 的管理页面的。
    qinqiuxu
        33
    qinqiuxu  
       51 天前
    看到评论区提到 NPM ,一直以为说的是 nodejs package manager ,我想前文也没讲到这个啊。
    再看一会儿才知道是 nginx proxy manager 的缩写。
    Achophiark
        34
    Achophiark  
       48 天前
    为什么没有人说最近如火如荼的 pangolin
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5619 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 02:33 · PVG 10:33 · LAX 19:33 · JFK 22:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.