ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Debian服务器安装1Panel面板:从系统准备到首次登录完整教程

Debian服务器安装1Panel面板:从系统准备到首次登录完整教程 最近几个月我身边跑 Debian 服务器的朋友讨论最多的管理面板已经从传统的 LNMP 一键包换成了 1Panel。这个开源面板用 Go 语言开发把服务器里的网站、数据库、容器、计划任务和监控统一收进一个 Web 界面装好之后绝大多数日常运维都可以在浏览器里点按完成不用再为装个 Nginx 或给 MySQL 做个备份去翻一长串命令。这篇教程围绕 Debian 系统从装面板之前的系统准备到安装脚本的每一步输出再到第一次登录时最容易卡住的几个问题按我实际操作的顺序完整走一遍。适合刚拿到 Debian VPS、想快速用上可视化面板的读者也适合已经装过、但在服务器地址未设置这类报错上碰壁的人。1. 为什么Debian上推荐1Panel功能定位与装前准备1.1 1Panel到底解决了什么问题1Panel 可以理解成一个跑在浏览器里的服务器控制台。它的核心设计是面板 Docker 应用商店的组合面板本身也是一个容器所有通过应用商店安装的 Nginx、MySQL、Redis、WordPress 等服务也各自跑在 Docker 容器里互相隔离想删哪个就删哪个不会把系统搞乱。这一点和传统面板有本质区别。传统面板往往把所有服务直接装进系统升级 PHP 或者换个 MySQL 小版本折腾半天还可能把其他站点带崩。1Panel 用容器管理后单个应用的启停、删除、迁移都变成容器操作系统层面始终保持干净。对 Debian 这种默认安装就很精简的系统来说这种隔离机制特别合适系统升级和面板升级不会互相牵连。除了应用管理1Panel 还提供了这些日常高频能力网站管理直接创建反向代理、静态站点、WordPress 站点SSL 证书可以在面板里申请和续期数据库管理支持 MySQL、MariaDB、PostgreSQL、Redis面板内可以做备份和导入导出计划任务定时备份、执行 Shell 脚本、清理日志省掉自己写 cron 的麻烦监控CPU、内存、负载的实时曲线界面干净信息够用终端网页版 SSH 终端紧急情况下不用再开本地终端连上来。1.2 装之前需要确认的硬件和系统条件1Panel 对系统的要求不算高官方支持 Debian 10/11/12、Ubuntu 20.04 以及常见的企业级发行版。装之前我建议先确认下面几项避免装到一半才发现资源不够项目建议配置说明系统版本Debian 12 或 11Debian 10 也能装但新特性支持略差CPU/内存1 核 2GB 最好面板自身空闲占用大约 100~200MB 内存再加上 Docker 和业务容器1GB 会比较紧张磁盘20GB 以上给 Docker 镜像、容器日志和备份留出余量架构amd64 / arm64树莓派这类 ARM 设备也可以装网络能正常访问外网安装时要拉取 Docker 镜像网络不通会卡住这里有个容易忽略的点装之前先确认系统时间正确。时区不对后续申请 SSL 证书和执行计划任务时会遇到各种诡异问题。保险起见先执行apt update apt upgrade -y timedatectl set-timezone Asia/Shanghaiapt 源建议在装面板前就换成离自己近的镜像源不然光是 apt update 就够你等半天的。这一步不展开按你所用发行版对应的镜像站文档配置即可。2. 装面板前先把Debian地基打牢IP、休眠、swap、SSH免密装 1Panel 本身的脚本只有两三步但我发现真正让新手卡住的往往是系统层面的一些基础设置。每次看到debian 设定ipdebian关闭休眠debian 设置虚拟内存debian 免密登录设置这些搜索词都能猜到一个共同画面系统刚装好还没有形成一套固定的初始化流程。所以这部分单独拎出来说建议在跑安装脚本之前一次性处理完。2.1 静态IP改完别把远程连接搞断Debian 的默认网络配置和 Ubuntu 不完全一样它主要使用 /etc/network/interfaces而且不同小版本默认有没有装 NetworkManager 也不相同。最稳的做法是直接编辑接口文件。先查看网卡名ip a假设网卡叫 eth0要把它配成静态 IP 192.168.1.100网关 192.168.1.1可以这样写auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1注意 Debian 10 之后的版本dns-nameservers这个参数经常不生效我习惯在 /etc/resolv.conf 里写 DNS或者用 systemd-resolved 管理。如果远程 SSH 连的就是这台机器改完配置先别急着重启网络最好在有带外管理通道的前提下执行systemctl restart networking否则一旦配置写错SSH 会立刻断开你手上又没有物理终端就只能去云控制台里抢救了。我第一次配静态 IP 就吃过这个亏网关写错后远程直接失联最后在商家控制台里改回来的。远程操作网络配置时永远给自己留一条后路。2.2 关闭休眠服务器不应该睡着VPS 上一般没有休眠问题但如果你是在物理机、迷你主机或者笔记本上装 Debian 来当服务器用休眠和合盖睡眠就是个大坑。面板刚配置到一半合了一下笔记本盖子SSH 直接断服务全停。systemd 下可以用一条命令把睡眠相关目标全部屏蔽systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target同时编辑 /etc/systemd/logind.conf把这两项改成 ignoreHandleLidSwitchignore HandleLidSwitchExternalPowerignore然后重启 logind 让配置生效systemctl restart systemd-logind这里提醒一下重启 logind 会临时中断当前图形会话如果是在远程操作小心把自己踢下线。拿笔记本当服务器的话最好再到 BIOS 里把合盖睡眠关掉双保险。已经屏蔽睡眠目标后想恢复就执行systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target。2.3 swap虚拟内存小内存VPS的保命配置1Panel 加 Docker 再加一两个应用512MB 内存的机器分分钟见底。Linux 内存不够时不一定立刻报错而是会触发 OOM Killer 选一个进程杀掉有时候被杀掉的恰好是 MySQL 或者面板容器。所以内存小的 VPS 在装面板之前务必先配 swap。以最常见的 2GB swap 为例fallocate -l 2G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile这样只是临时生效重启就没了。写入 /etc/fstab 才能永久挂载/swapfile none swap sw 0 0再顺手把系统对 swap 的使用倾向调低一点避免频繁换页影响性能echo vm.swappiness10 /etc/sysctl.conf sysctl -p有些虚拟化环境的文件系统不支持 fallocate这时可以用 dd 创建dd if/dev/zero of/swapfile bs1M count2048后面的 mkswap、swapon 步骤完全一样。这个操作在装好面板之后再补也来得及但先做能让安装过程平稳很多尤其 Docker 镜像解压的时候非常吃内存。2.4 SSH免密登录与私钥口令自动输入的解法经常有人搜debian enter passphere for key,如何能自动输入密码这个场景太常见了。你给 SSH 密钥设了口令每次连接都提示Enter passphrase for key /root/.ssh/id_ed25519:这不是系统出问题而是 OpenSSH 在要求你输入私钥的解锁口令。免密登录的正确姿势是先在本机生成密钥把公钥传到服务器ssh-keygen -t ed25519 ssh-copy-id useryour-server-ip之后登录就不用输账号密码了。但如果你生成密钥的时候设了口令登录时仍然要输这个口令。解决办法是让 ssh-agent 帮你记住口令eval $(ssh-agent -s) ssh-add ~/.ssh/id_ed25519输入一次口令后当前会话内再连接其他服务器都不会再问。如果是用 1Panel 面板里的主机管理功能去连远程服务器面板后端跑在容器里它无法直接读取你本机的 ssh-agent我一般是把私钥内容粘贴到面板的密钥配置里然后把私钥口令移除或者临时启用 ssh-agent 配合操作。还有一种脚本自动化场景比如计划任务里要连服务器跑命令sshpass 可以做到非交互输入口令但它会把口令以明文形式出现在命令行里有被进程列表看到的风险。我只建议在可控环境里使用生产环境还是优先 ssh-agent 或使用无口令密钥。3. 1Panel安装脚本实战下载、执行与输出解读3.1 获取安装脚本1Panel 官方推荐的安装方式是用 curl 拉取安装脚本再执行curl -sSL https://resource.1panel.hk/quick_start.sh -o quick_start.sh sudo bash quick_start.sh如果你的系统里连 curl 都没有先补上apt update apt install -y curl这里多说一句。看到一条命令安装这种形式很多有经验的人会反感因为你不清楚脚本到底做了什么。1Panel 的安装脚本完整下载下来再看一遍是很好的习惯less quick_start.sh脚本内容不算长主要做系统检查、Docker 检测、端口检测这几件事没有发现可疑操作。我第一次装的时候从头到尾读了一遍确认后才执行。如果你的网络访问官方资源比较慢脚本执行过程中会让你选择安装源选国内镜像源那一项即可。这一步选错会导致下载 Docker 或面板镜像时卡很久真遇到也别慌直接 CtrlC 退出重跑脚本就行。3.2 安装交互流程执行脚本后它会先做系统环境检查然后进入交互选择。核心就两个问题。第一个问题是是否安装 Docker。注意1Panel 面板本身以及它管理的应用都跑在 Docker 上这里我建议让脚本自动安装 Docker 并配置开机自启。如果你已经手动装好了 Docker选跳过就行脚本会自动识别。第二个问题是 Docker 和面板镜像用哪个源。国内服务器建议直接选镜像源能省下大量拉取时间。随后脚本会检测并生成面板端口。1Panel 的默认面板端口不是 8080 这种固定常见端口而是每次安装时自动生成一个高位随机端口并写入配置文件。这样做的好处很明显避免默认端口被全网扫描器盯上降低密码爆破风险。看到端口号的那一刻先记下来。如果脚本在装 Docker 阶段反复失败最常见原因是 docker-ce 官方源访问慢。遇到这种情况可以退出脚本手动装 Docker 再回来跑。Debian 上手动装 Docker 的完整命令apt update apt install -y ca-certificates curl gnupg install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg chmod ar /etc/apt/keyrings/docker.gpg echo deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(. /etc/os-release echo $VERSION_CODENAME) stable /etc/apt/sources.list.d/docker.list apt update apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin systemctl enable --now docker如果你的网络环境访问官方源超时把下载地址替换成你实际访问更快的 docker-ce 源也可以。Docker 装好后再执行一次 1Panel 脚本选跳过 Docker 安装很快就能走完。3.3 安装完成后的输出怎么看脚本跑完终端末尾会打印一段安装成功信息大致长这样 1Panel 安装成功 面板地址: http://你的服务器IP:随机端口 面板端口: 随机端口 用户名: admin 密码: 一串随机字符串 这段信息请立刻保存。如果弄丢了也不用重装。1Panel 自带一个 1pctl 命令行工具在系统任意目录执行1pctl --help可以看到查看用户信息、重置密码、修改端口等子命令。具体子命令名称不同版本有一点差异以你机器上的帮助输出为准。这个工具还能对面板服务做重启后文会用到。另外安装后的面板数据和配置都在 /opt/1panel 目录下里面包含 Docker Compose 文件、环境变量和应用数据。备份面板本质上就是备份这个目录。3.4 安装失败的几个高发原因我帮人排查 1Panel 安装问题翻来覆去就那几类。内存不够导致 OOM。脚本正常走完但面板容器一直起不来docker ps 看不到容器dmesg 里全是 Out of memory。这种先按第 2 章把 swap 配上再重装一次。端口占用。面板随机端口理论上不容易冲突但如果你在脚本检测时恰好有其他服务抢占了端口脚本会重新生成。老版本偶尔会卡在端口检测上升级脚本或手动指定端口可以解决。镜像拉取超时。症状是脚本卡在拉取 1Panel 镜像很久最后报网络错误。这是到 Docker Hub 的连接容易出现波动造成的后面第 5 章会专门讲配置镜像加速。时间不同步。面板容器启动后计划任务和 SSL 申请时间错乱看起来像软件 bug实际是系统时区没设置。装之前先执行timedatectl set-timezone Asia/Shanghai能省很多事。4. 首次登录面板与服务器地址未设置的完整处理4.1 第一次打开面板安装完成后在浏览器输入安装脚本输出的那个地址格式是http://你的IP:随机端口。第一次打开可能会有点慢因为面板容器刚启动前端资源需要加载耐心等几秒。登录账号是 admin密码是安装时生成的随机密码。第一次登录系统会强制要求修改密码建议用独立密码不要和服务器 root 密码相同。如果有条件顺手在面板设置 - 安全里开启两步验证 MFA手机装个 TOTP 验证器扫码绑定面板被爆破的概率会低很多。有一点要提前说1Panel 默认走 HTTP浏览器地址栏会显示不安全提示。这是正常的面板自身的数据传输在公网上确实没有加密。如果你把管理端口暴露在公网建议尽快配一个域名并开启 HTTPS或者至少用防火墙把面板端口限制到常用 IP 段。4.2 当前未设置服务器地址到底怎么回事这是很多刚装完新版 1Panel 的人第一个遇到的弹窗提示当前未设置服务器地址请先在面板设置中设置!我第一次看到这个提示也愣了一下不是已经通过 IP 访问面板了吗为什么还说没设置原因在于1Panel 新版在启动某些功能时会去读取一个叫服务器地址的配置字段。这个字段不是自动探测来的因为服务器可能有内网 IP、公网 IP、域名多种访问方式程序无法判断你最终用什么地址访问。没有这个配置像 Lets Encrypt 证书申请、远程备份、部分应用回调这类功能就不知道往哪个地址回写所以直接弹窗提示你处理。解决路径很明确进入面板设置 - 系统设置 - 基础设置找到服务器地址这一项。如果打算直接用 IP 访问就填http://你的服务器公网IP:随机端口如果你之后准备用域名访问面板这里直接填最终访问的域名地址https://panel.example.com填好保存后根据页面提示重启面板服务让新配置生效。之后再回到之前的操作这个弹窗就不会再出现了。这里顺便说下填 IP 和填域名的区别。填 IP 适合只有你自己访问、且 IP 基本不变的情况填域名适合要申请 SSL 证书、做域名转发、对接第三方回调的场景。如果你的服务器 IP 以后会变比如家庭宽带动态 IP强烈建议先配一个域名填进去省得换 IP 后又来改一次。4.3 放行端口和安全组漏了这一步面板打不开安装脚本不会帮你改云厂商的安全组也不会自动配置防火墙。装完面板但浏览器打不开十个里面八个是端口没放行。先在服务器本机验证面板端口是否在监听ss -lntp | grep 面板端口能看到 LISTEN 状态就说明面板在正常监听。接着看防火墙如果之前开启过 ufwufw allow 面板端口/tcp ufw allow 80,443/tcp ufw enable如果你用的是云服务器还要去云厂商控制台的安全组里添加入方向规则放行面板端口和后续要用到的 80、443。这一步在云控制台操作不在服务器系统内部。我的习惯是面板端口只对办公 IP 放行80 和 443 对全网开放。宁可 SSH 登录麻烦一点也不要让管理端口裸露在公网上。5. 装完面板之后四件必做的事与高频排错复盘5.1 先做这四件事面板装好、能登录、弹窗也处理后别急着建站。先把下面几件事做了后面会顺畅很多。第一在应用商店部署一个环境。1Panel 的应用商店里有很多常用软件Nginx、OpenResty、MySQL、MariaDB、PostgreSQL、Redis、WordPress、phpMyAdmin 都有。它的部署逻辑是一个应用对应一个或一组 Docker 容器点安装后会通过 Docker Compose 自动编排。第一次用建议先装一个 Nginx 熟悉流程装的过程中会让你设置端口和资源限制默认值一般够用。第二配置计划任务和备份。进入计划任务页面创建一条数据库备份任务目标选 MySQL 或 PostgreSQL执行时间建议错开业务高峰比如每天凌晨 3 点。1Panel 支持把备份文件发送到本机目录或多种对象存储保留份数我一般设 7 份避免磁盘被备份文件撑爆。第三看一遍监控页面。面板自带的主机监控会显示 CPU、内存、磁盘和网络的历史曲线。刚装完状态还不稳定先盯两天心里有个基线后面应用出现异常时对比曲线能更快定位问题是从哪个时间点开始的。第四检查面板更新。进入面板设置的系统信息页看当前版本是不是最新版。1Panel 更新频率挺高建议一两个月就手动更新一次。我习惯在 UI 里点更新因为能看到更新日志命令行方式也可以但我个人用得少。5.2 四个高频排错现场这里挑四个我在实际使用和帮人排查时最常见的场景直接说结论。场景一面板突然打不开但服务器还活着。先确认端口监听再确认防火墙和安全组没有改动最后看 docker ps 确认 1Panel 容器是否在运行。容器停了就docker ps -a找到它的名字用 docker start 拉起来。这种情况多半是系统重启后 Docker 没自动启动先执行systemctl enable --now docker。场景二应用商店装软件时镜像拉取超时。Docker 从 Docker Hub 拉镜像时网络经常不给力。配置镜像加速的方法是在 /etc/docker/daemon.json 里加 registry-mirrors{ registry-mirrors: [ https://你的镜像加速地址 ] }改完执行 systemctl restart docker。注意这里需要填你自己使用的加速地址不同地区效果差异很大多试几个哪个拉镜像快就保留哪个。场景三SSH 连不上或一直要求输密钥口令。端口问题看 sshd 服务是否正常密钥口令问题回到第 2.4 节的 ssh-agent 方案。如果面板里的终端功能出现密钥口令报错把密钥在面板的凭据管理里重新录入一次确认没有粘贴时多出空格或换行。场景四Lets Encrypt 证书申请失败。先检查第 4.2 节的服务器地址字段有没有填对再确认域名 DNS 已经解析到这台服务器、80 端口对公网可达。1Panel 申请证书时会在 80 端口做验证如果 80 被其他程序占用申请必然失败。5.3 卸载面板怎么保留数据如果哪一天决定不用 1Panel 了执行1pctl uninstall它会按提示停止并删除面板相关容器。卸载前务必确认 /opt/1panel 目录下的数据是否需要保留里面包含数据库备份、网站配置、Docker Compose 文件。我的建议是卸载之前先把整个目录打包带走等新环境稳定后再清理不要一时手快把数据一起删了。另外提一个容易误导人的点1Panel 装好之后它默认不会占用 80 和 443 端口。它只管自己的随机面板端口80 和 443 是留给后面部署的 Nginx 或网站服务用的。所以担心端口冲突的朋友可以放心。我在 Debian 10、11、12 上都实际装过 1Panel最快一次从系统初始化到面板打开只用了不到十分钟。整个流程里最容易出问题的不是脚本本身而是系统基础没准备好内存小没配 swap、时区没改、防火墙放行漏了、服务器地址没填。所以这篇的顺序也设计成先补地基再跑安装最后处理登录和配置。我现在新装一台 Debian 服务器的固定动作就是先 apt update配 swap关休眠改时区然后才跑 1Panel 脚本。这套顺序固定下来之后几乎没再翻过车。
返回列表