1Panel 是这两年 Linux 服务器运维圈子里声量不小的一个开源面板,很多刚买云服务器的新手都在问怎么装、怎么用。它解决的其实是新手最头疼的问题:不会敲命令行、不想用 SSH 去改 Nginx 配置、不想手动折腾防火墙和 SSL 证书。装上 1Panel 之后,网页上点一点就能管理网站、数据库、Docker 容器、定时备份,甚至还能直接配置反向代理跑多个网站。这篇文章我从服务器初始化的实际经验出发,一步步把 1Panel 的安装前准备、完整安装流程、首次登录配置,以及高频需求“反向代理多站点”的玩法都写清楚,适合刚入手 Linux 服务器、或者以前只用过其他面板想换个新方案的朋友。
1. 1Panel 到底是什么,为什么值得新手用
1.1 一个基于 Docker 的服务器管理面板,能管哪些事
1Panel 是飞致云做的一款开源 Linux 服务器管理面板,代码放 GitHub 上,支持 GitHub 认证、Star 数也不少,社区活跃度挺高。它的核心逻辑是:在服务器上装一个 Web 管理端,通过浏览器访问,用图形化界面接管服务器日常运维工作。底层大量依赖 Docker,所以面板里的应用商店、数据库、网站环境基本都是跑在容器里,隔离性和可移植性比传统直接在系统里装 LNMP 要好。
它的功能模块覆盖得很全:服务器监控(CPU、内存、磁盘、网络流量曲线)、终端、文件管理、Docker 管理(容器、镜像、网络、卷)、应用商店(WordPress、MySQL、Redis、Gitea、Nginx 等一键安装)、网站管理、数据库管理、计划任务、日志审计、防火墙管理、SSL 证书管理等。对新手来说,这些功能足够覆盖 90% 的日常操作,不用再为每件事单独翻教程敲命令。
1.2 哪些人最需要 1Panel,哪些人其实不适合
如果你是这几类人,1Panel 非常适合你:刚买了云服务器打算建站或跑个人项目的新手;会一点 Linux 但不是特别熟练,不太想背命令的运维;需要在一台服务器上维护多个网站但又不想手动改 Nginx 配置的人;有 Docker 基础、想用容器化方式部署应用但缺一个省事的管理界面的开发者。
反过来,如果你是那种原则性很强、坚持所有配置都手写、希望服务器上越干净越好的老派用户,那面板反而可能成为你的负担。1Panel 会在系统里安装 Docker 和 OpenResty 等组件,占用的资源和“侵入性”比较大。另外,如果你只是临时跑一个一次性脚本,完全没必要为一个任务装面板。所以先想清楚需求,再决定要不要装。
1.3 和宝塔这类传统面板比,1Panel 有哪些差异
很多新手第一反应是问“和宝塔比怎么样”。宝塔确实生态成熟、插件多,但 1Panel 有它自己的特点:界面更现代,功能模块清晰,开源程度更高(社区版可以自由使用不少功能);底层默认走 Docker,应用安装和隔离方式更干净;对 Docker 原生支持好,自己装容器镜像很方便;集成了 Let's Encrypt 等 SSL 证书申请和自动续期,建站体验比传统面板更顺手;运维交互上也有 Web 终端、实时监控等现代功能。
当然这不意味着 1Panel 能替代宝塔的所有场景。如果你依赖大量宝塔插件、习惯它的生态,迁移成本还是要考虑的。我的建议是:新项目直接上 1Panel,旧项目不用强行迁。
2. 安装前准备:这些事不做,后面全是坑
2.1 服务器配置要求到底要多高
很多新手担心自己买的服务器配置不够装面板。官方要求是 CPU 至少 1 核、内存至少 1GB、磁盘至少 20GB、系统支持 CentOS 7.9+、Ubuntu 20.04/22.04/23.04、Debian 10+ 等主流 Linux 发行版。但我的实际经验是:1GB 内存装完面板再跑一两个小容器,内存基本就见底了,稍微开个 MySQL 加 WordPress 就可能卡顿甚至被系统 OOM kill。
所以我的建议是至少 2GB 内存起步,预算允许的话 4GB 更舒服。磁盘方面,20GB 是底线,实际跑起来 Docker 镜像、日志、备份文件都很吃空间,50GB 以上比较稳。架构方面 x86_64 和 ARM64 都支持,像腾讯云轻量服务器、阿里云 ECS、AWS Lightsail 这些实例都没问题,买的时候选择 2核4G 或者 2核2G 的套餐即可。
2.2 云服务器安全组和系统防火墙要提前放行端口
这是新手最容易忽略却最影响体验的环节。很多人在面板上看到服务正常启动了,但浏览器就是访问不了,十有八九是云平台安全组没放行对应端口,或者系统防火墙没开。云厂商控制台的“安全组”默认通常只放行 22(SSH)、80(HTTP)、443(HTTPS)等少数端口,1Panel 面板端口是自定义的随机端口,必须先手动加规则放行。
我一般会在跟前把下面几件事都做好:在云控制台的安全组入站规则里加上面板端口(TCP),再加上以后可能用到的网站端口(80、443)和 SSH 端口(22);进服务器后检查系统防火墙,Ubuntu 用 ufw,CentOS 用 firewalld,确认目标端口允许访问;如果是 CentOS 还要注意 SELinux 是否开启,安装脚本通常会对 SELinux 做自动判断,但访问异常时可以优先排查这一项。
2.3 域名准备:装之前就规划好站点名字
如果只是把面板装起来看一眼,其实不需要域名;但如果你想用 1Panel 配置反向代理、跑多个网站,那一定要提前把域名规划好。多个网站共用一个服务器 IP 的核心靠的就是域名区分,没有域名就只能用“IP:端口”这种原始方式访问,既不好看也不方便上 HTTPS。所以在安装前,建议先把自己名下域名解析到服务器 IP,比如主域名 example.com,三个子域名 blog.example.com、git.example.com、next.example.com 都先添加 A 记录指向服务器公网 IP。
解析之后等个几分钟,用ping或在线工具确认域名已经指向服务器 IP,再开始装面板。这个过程不会花太多时间,但它是后面创建反向代理站点、申请 Let's Encrypt 证书的前提条件。域名一旦解析生效,后边的配置就是一马平川。
3. 新手安装 1Panel 完整实操流程
3.1 使用官方一键脚本安装
1Panel 官方提供了非常友好的安装方式,一条命令搞定。首先 SSH 登录服务器,然后执行:
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh这个脚本会先做环境检测,检查你用的发行版、架构、是否已经装了 Docker 等,然后自动安装 Docker、Docker Compose 和 1Panel 主程序。如果服务器在国内,拉取 Docker 官方镜像可能会遇到超时,脚本一般会自动处理镜像源切换,但执行前最好保证服务器网络通畅。
执行过程中需要手动确认一些配置,建议全程用默认值先跑通,后续再在后台改。安装时间取决于服务器性能和网络状况,通常在 1~5 分钟之间。安装完成后终端会打印出面板访问地址、用户名、密码这些关键信息,一定要先截图或复制保存,后面登录要用。
3.2 安装过程中的几个关键参数怎么选
先说说端口。1Panel 安装时会让你设置面板端口,默认是随机生成一个五位端口,比如 38672。这个设计很聪明,因为面板本身就是管理入口,端口越不常规越难被扫描到。我自己一般会手动指定一个五位以上的端口,避开 80、443、8080、8888 这些常用端口,同时也避开 SSH 的 22。注意端口必须小于 65535,且不能被系统其他服务占用。
再说账号和密码。安装时可以指定管理员用户名,默认随机生成一串字母数字。密码强度要求比较高,必须包含大小写字母和特殊字符。第一次输入如果提示太弱,就再组合一次。安装目录默认放在/opt,强烈建议新手保持默认,不要改到不熟悉的位置,否则后续升级、备份、迁移的路径会变得很乱。
3.3 安装完成后首次登录面板
安装完成后,用浏览器打开安装结果里的地址,比如http://服务器IP:端口。第一次访问会加载一个初始化界面,让你设置管理员密码和确认一些基础配置。如果端口是 80 或 443,地址栏里可以省略端口;如果是其他端口,一定要写全。
登录之后建议先做三件事:第一,打开“设置”页修改面板端口,如果还想要更安全可以绑定固定授权 IP;第二,开启两步验证(2FA),用一个 TOTP 工具扫码绑定,这样即使密码泄露也能阻止外部访问;第三,看一眼“监控”页的默认轮询设置,确认统计数据正常。第一次登录的体验很重要,把这些安全基础打好,后面维护起来会省很多麻烦。
3.4 升级、重启和卸载的注意事项
1Panel 的升级非常方便,一般在面板右上角会提示有新版本,点击就能自动完成升级。如果面板打不开了,可以用命令行方式手动升级:在 SSH 里执行1pctl update。重启面板服务用systemctl restart 1panel,查看状态用systemctl status 1panel。这些命令偶尔会遇到,记下来比以后百度快。
卸载方面,如果确定不用面板了,可以用官方脚本或1pctl uninstall处理,但我建议新手不要轻易卸载。Linux 世界里“卸载不干净”带来的问题比“用不上”更头疼。面板装的 Docker 环境其实对后续部署容器也很有用,留着它反而方便。如果只是想停掉面板服务,直接关闭系统服务即可,不用卸载。
4. 进阶必学:用 1Panel 配置反向代理,一台服务器跑多个网站
4.1 反向代理到底解决了什么问题
反向代理这个概念听起来复杂,其实用大白话说就是:用户访问你的域名时,请求先到达服务器上的 Nginx(1Panel 用的是 OpenResty),Nginx 再根据域名把请求转发给后边的真实服务程序。举个例子,你有一个 Node 应用跑在http://127.0.0.1:3000,一个 Java 应用跑在http://127.0.0.1:8080,两个程序都不想直接暴露端口,也不想在地址栏里带端口号,那就可以让 Nginx 监听 80/443,按域名转发到对应端口。
好处非常明显:所有外部流量统一走 80/443,安全控制集中,能随时加 HTTPS,不会出现“访问服务要记一串端口号”的情况;多个服务可以跑在同一台服务器上,互不冲突;后端服务的地址可以对外隐藏,只用反向代理后的域名暴露出去。1Panel 把这种配置封装成了图形界面,新手完全不用手写 Nginx 配置。
4.2 多站点场景规划:域名、端口、服务对应关系
在动手配置之前,先把我最推荐的结构梳理出来。假设你有一台 2 核 4G 的云服务器,IP 为1.2.3.4,想在上面同时跑三个服务:
| 域名 | 后端服务 | 实际监听地址 |
|---|---|---|
| blog.example.com | WordPress(Docker 安装) | 127.0.0.1:8080 |
| git.example.com | Gitea(应用商店安装) | 127.0.0.1:3000 |
| next.example.com | 自建 Next.js 应用 | 127.0.0.1:4000 |
三个域名都提前做 A 记录解析到1.2.3.4。安装 1Panel 之后,通过“网站 - 创建网站 - 反向代理”为每个域名分别创建一个反向代理站点,代理目标分别指向对应服务的监听端口。最终效果是:用户访问 blog.example.com 看到博客、访问 git.example.com 看到代码仓库、访问 next.example.com 看到前端应用,浏览器地址栏完全没有端口号,体验非常干净。
4.3 在 1Panel 里创建反向代理站点的具体步骤
在配置之前,先在应用商店安装 OpenResty(也就是 Nginx 增强版)。安装完之后,打开“网站”页面,点击“创建网站”,类型选择“反向代理”,填主域名,再填一个或两个辅助域名(这里留空也可以),在最下面“代理地址”填实际后端服务地址,比如http://127.0.0.1:8080。
1Panel 会自动处理 Nginx 配置文件,不需要你手动去写 server block。有几个关键选项值得说清楚:如果代理的服务是 WebSocket 服务(比如一些聊天应用或 VSCode Server),要开启 WebSocket 支持;如果后端服务要求真实客户端 IP,不要关闭透传头;如果服务就在本机,代理地址一定用127.0.0.1而不是公网 IP,能减少一层不必要的网络开销和防火墙问题。
创建完成之后,1Panel 会生成一个可独立启停的网站条目。你可以随时点“打开”查看 Nginx 配置内容,但新手不需要改它。如果后端服务换了端口,直接在反向代理编辑里改代理地址,然后点保存即可生效,不用手动 reload Nginx。
4.4 给多个站点开启 HTTPS 并自动续期
1Panel 最省心的功能就是自动申请 Let's Encrypt 免费证书。在某个网站的“配置 - HTTPS”里,勾选“启用 HTTPS”,选择证书来源为 Let's Encrypt,填入一个邮箱即可。前提已经强调过了:域名必须提前解析到服务器,而且 80 端口能从外网访问,否则验证会失败。
多个站点的申请逻辑是分开的,每个域名各自动申请一张证书。如果你觉得每张证书都独立申请太啰嗦,也可以申请一张泛域名证书*.example.com,这样所有子域名都能共用。泛域名申请需要配置 DNS 验证,1Panel 支持阿里云、腾讯云、Cloudflare 等多种 API 方式,对新手稍复杂,我建议先让单个域名各自申请跑通,再优化成泛域名。
1Panel 默认会在证书快到期时自动续期,这是它的一大亮点。你可以在“计划任务”里看到证书自动续期相关任务,不用自己写 cron 脚本。刚开始配置 HTTPS 后,记得用浏览器无痕模式访问一下域名,确认小锁图标出现、证书没有告警。
4.5 多个网站共存时的冲突实例与排查
多站点场景下最经典的问题就是配置错乱。有次我一个客户把两个域名绑到了同一个反向代理站点里,结果访问 A 域名时跳到了 B 域名的页面,排查了很久才发现是辅助域名重复绑定。所以在 1Panel 里创建每个站点时,主域名、辅助域名一定不要和其他站点重复,Nginx 是靠server_name区分请求的,域名冲突直接导致路由错乱。
第二个常见问题是:后端服务绑定了 127.0.0.1,但代理地址填了localhost,这在某些服务器上有双栈 IP 问题,可能解析成::1导致连接被拒。建议一律使用明确的http://127.0.0.1:端口。第三个问题是后端服务没有设置正确的 Host 头,1Panel 默认会带上 Host,但如果你在代理配置里关掉了它,目标服务可能返回错误页面。遇到这类问题,优先去看目标服务的日志,而不是反复改 Nginx。
5. 高频问题排查与避坑经验实录
5.1 外网访问不了面板怎么办
这个问题的出现频率最高。先从最外层开始排查:云控制台安全组有没有放行面板端口。我遇到过太多次“面板明明起来了,但客户说打不开”,结果一看安全组只放了 22 端口。其次检查系统防火墙,CentOS 是firewall-cmd --list-ports,Ubuntu 用ufw status,确认端口没有拦截。
如果安全组和防火墙都通了,再看面板服务本身,systemctl status 1panel确认是 active 状态。如果服务没起来,多半是安装时磁盘空间不足或者端口被占用,可以用df -h和ss -lntp检查。还有一个隐藏问题:部分云厂商的服务器默认开启了 TCP 连接数限制或DDoS 防护,外部访问可能被误杀,这种就只能提工单或换一个端口再试。
5.2 Docker 拉取镜像超时或失败
国内服务器拉取 Docker Hub 官方镜像经常会卡住。1Panel 安装时一般会自动配置国内镜像加速,但不同服务商的加速地址有效性会变化,时而好时而坏。如果拉镜像超时,建议手动在 1Panel 的“设置 - Docker 配置”里加镜像源,也可以直接改/etc/docker/daemon.json后重启 Docker。
这里提醒一下:不要同时叠加太多镜像加速地址,配置格式写错会导致 Docker 启动失败。如果不知道写哪个地址,最稳妥的是先清空配置,让 1Panel 自动设置,或者去查一下当时仍然在维护的公共镜像源。镜像拉不动时,不要用Ctrl+C打断后反复重试,先检查网络连通性再操作,否则容易留下半截镜像占用磁盘。
5.3 反向代理报 502 和 504 怎么处理
502 Bad Gateway 说明 Nginx 和后端服务之间的连接失败,常见原因有:后端服务没启动、端口写错、服务监听在 127.0.0.1 但代理地址指向了公网 IP、服务本身崩溃了。先到“容器”页面看对应容器状态是否 running,再到“终端”里用ss -lntp看端口是否监听。后端是容器时,注意容器映射的端口是不是真的映射到了宿主机,比如容器内 3000 端口映射到宿主机 3001,那代理地址就要写 3001,不是 3000。
504 Gateway Timeout 说明后端接受连接但迟迟没有响应,通常是后端应用执行了长时间任务或者数据库查询太慢,也可能是默认超时时间太短。此时可以调 Nginx 的proxy_read_timeout等参数,但这些在 1Panel 配置文件里已经封装好,一般针对业务场景先优化后端性能,再考虑调整代理超时。查看 Nginx 错误日志最直接,1Panel 的网站配置页里可以直接看到日志入口。
5.4 常见问题速查表
| 现象 | 可能原因 | 排查思路与解决方向 |
|---|---|---|
| 访问面板超时 | 安全组未放行、防火墙拦截 | 检查云控制台入站规则和ufw/firewalld |
| 面板端口被占用 | 安装了其他服务占用同端口 | ss -lntp查看占用进程,换端口重装 |
| 网站域名解析不对 | DNS 没生效或解析到旧 IP | 用dig/ping验证,等待解析生效 |
| HTTPS 申请失败 | 80 端口不可外网访问 | 确保安全组放行 80,验证域名已指向本机 |
| 反向代理 502 | 后端服务未运行或端口错误 | 检查容器状态、端口映射、代理地址写法 |
| 反向代理 504 | 后端处理超时 | 优化后端性能,检查数据库慢查询 |
| Docker 镜像拉不动 | 国内网络到 Docker Hub 慢 | 配置镜像加速,重启 Docker 服务 |
| 面板磁盘告警 | 日志或备份文件占用 | 清理 Docker 悬空镜像、日志轮转、备份迁移 |
5.5 我踩过几次坑之后总结的避坑心得
最值得说的一点是:不要在面板安装时才临时去安全组开端口,一定要在购买服务器后、正式安装前就把 80、443、SSH、面板端口规划好。否则安装了半天,浏览器打不开,最容易劝退新手。第二点是:装完面板尽早开两步验证,不要觉得麻烦。服务器被扫描是常态,尤其你暴露了自定义端口后,日志里每天都有大量试探记录。第三点是:反向代理多个网站时,每个服务尽量绑定127.0.0.1并分配独立端口,这样端口台账清晰,出问题好定位,而且容器端口映射记录要单独整理,别全部依赖记忆。
另外,1Panel 更新版本时,建议先看官方 Release 说明再升级,特别是从大版本跨版本时。我遇到过客户直接升级后部分应用容器需要重建,虽然不是灾难,但手忙脚乱确实影响体验。升级前在面板里手动创建一个备份快照,会让你安心很多。
最后再分享一个很实用的小技巧:1Panel 的“计划任务”不只是定时备份,还可以用来定时执行 Shell 命令。比如我想每 5 分钟检查一次某个服务是否存活,通过计划任务写一个几行的健康检查脚本,服务挂了就自动通过 Webhook 通知我。这个能力新手可能不知道,但它能让 1Panel 真正做到“托管”而不仅是“管理”。玩熟了这些,你会发现一台服务器上的事,绝大多数都能用它解决。