跳到主要内容

Proxmox 虚拟环境下 1Panel 安装指南

概述

1Panel 是一个现代化的 Linux 服务器运维管理面板,提供了直观的 Web 界面来管理服务器、应用、数据库等资源。本文将详细介绍在 Proxmox 虚拟环境下安装 1Panel 的两种方式:LXC 容器方式和虚拟机方式。

安装方式对比

特性LXC 容器方式虚拟机方式
资源占用中等
启动速度较慢
隔离性进程级隔离完全隔离
兼容性较好最佳
管理复杂度简单中等
推荐场景开发测试、轻量部署生产环境、完整功能需求

系统要求

LXC 容器方式(推荐)

  • 内存:最少 2GB,推荐 4GB
  • 存储:最少 20GB,推荐 40GB
  • CPU:2 核心以上

虚拟机方式

  • 内存:最少 4GB,推荐 8GB
  • 存储:最少 50GB,推荐 100GB
  • CPU:4 核心以上

方式一:LXC 容器安装(推荐)

1. 准备工作

1.1 环境检查

  • Proxmox VE 版本:7.0 或更高版本
  • 可用内存:至少 2GB 空闲内存
  • 存储空间:至少 20GB 可用空间
  • 网络配置:确保桥接网络正常工作

1.2 下载 LXC 模板

  1. 登录 Proxmox Web 管理界面
  2. 导航到:数据中心存储local内容
  3. 点击 模板 选项卡
  4. 下载 ubuntu-22.04-standard 模板

或使用命令行下载:

pveam update
pveam available | grep ubuntu-22.04
pveam download local ubuntu-22.04-standard_22.04-1_amd64.tar.zst

2. 创建 LXC 容器

2.1 通过 Web 界面创建

  1. 点击 创建 CT
  2. 填写以下配置:
选项说明
节点选择目标节点-
CT ID100可自定义
主机名1panel-server容器主机名
密码设置 root 密码强密码
模板ubuntu-22.04-standard已下载的模板
存储local-lvm根据实际情况选择
磁盘大小40 GB推荐大小
CPU 核心2最少 2 核心
内存4096 MB推荐 4GB
网络桥接到 vmbr0-
IPv4静态 IP如:192.168.1.100/24
网关192.168.1.1根据网络环境设置
DNS8.8.8.8可选多个 DNS

2.2 启动并进入容器

# 启动容器
pct start 100

# 进入容器
pct enter 100

3. 系统初始化

3.1 更新系统

# 更新软件包列表
apt update

# 升级系统
apt upgrade -y

# 安装必要工具
apt install -y curl wget git vim htop net-tools ufw

3.2 配置防火墙

# 允许 SSH 连接
ufw allow 22/tcp

# 允许 HTTP/HTTPS
ufw allow 80/tcp
ufw allow 443/tcp

# 允许 1Panel 默认端口
ufw allow 8080/tcp

# 启用防火墙
ufw --force enable

# 查看防火墙状态
ufw status

4. 安装 1Panel

4.1 执行安装脚本

# 使用官方一键安装脚本
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o install.sh
bash install.sh

4.2 安装过程说明

安装过程中会提示:

  1. 选择安装目录(默认:/opt/1panel
  2. 设置面板端口(默认:8080
  3. 设置面板用户名和密码
  4. 选择是否安装 Docker(推荐安装)

4.3 安装完成

安装成功后会显示:

================================================================
1Panel 安装完成!

面板地址: http://192.168.1.100:8080
用户名: [您设置的用户名]
密码: [您设置的密码]

如需修改面板端口,请执行:1pctl port [新端口]
如需重置面板密码,请执行:1pctl reset
================================================================

方式二:虚拟机安装

1. 准备工作

1.1 下载系统镜像

推荐使用以下操作系统:

  • Ubuntu Server 22.04 LTS(推荐)
  • Debian 11/12
  • CentOS Stream 9

下载地址:

1.2 上传 ISO 镜像

  1. 在 Proxmox Web 界面中选择存储
  2. 点击 ISO 镜像上传
  3. 选择下载的 ISO 文件上传

2. 创建虚拟机

2.1 创建 VM 配置

选项推荐值说明
VM ID101可自定义
名称1Panel-VM虚拟机名称
操作系统Linux-
ISO 镜像ubuntu-22.04-server选择上传的镜像
系统默认-
硬盘100 GBSCSI 控制器
CPU4 核心host 类型
内存8192 MB-
网络桥接到 vmbr0VirtIO 网卡

2.2 安装操作系统

  1. 启动虚拟机并连接控制台
  2. 按照安装向导进行:
    • 选择语言和键盘布局
    • 配置网络(可选择 DHCP 或静态 IP)
    • 创建用户账户
    • 选择最小化安装
    • 启用 SSH 服务

3. 系统配置

3.1 更新系统

# 更新软件包
sudo apt update && sudo apt upgrade -y

# 安装必要工具
sudo apt install -y curl wget git vim htop net-tools ufw

3.2 配置静态 IP(可选)

如果需要配置静态 IP:

# 编辑网络配置文件
sudo nano /etc/netplan/00-installer-config.yaml

配置示例:

network:
version: 2
ethernets:
ens18:
dhcp4: false
addresses:
- 192.168.1.101/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]

应用配置:

sudo netplan apply

3.3 配置防火墙

# 允许 SSH
sudo ufw allow 22/tcp

# 允许 HTTP/HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# 允许 1Panel 端口
sudo ufw allow 8080/tcp

# 启用防火墙
sudo ufw --force enable

4. 安装 1Panel

4.1 执行安装

# 下载并执行安装脚本
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o install.sh
sudo bash install.sh

4.2 安装完成

安装成功后记录显示的访问信息:

================================================================
1Panel 安装完成!

面板地址: http://192.168.1.101:8080
用户名: [您设置的用户名]
密码: [您设置的密码]
================================================================

首次配置与使用

1. 访问 1Panel

1.1 登录面板

打开浏览器访问:

  • LXC 方式http://192.168.1.100:8080
  • VM 方式http://192.168.1.101:8080

使用安装时设置的用户名和密码登录。

1.2 安全设置

登录后立即进行以下安全配置:

  1. 修改默认端口

    • 导航到:设置面板设置端口设置
    • 建议修改为非标准端口(如 8081、9090 等)
  2. 配置 SSL 证书

    • 导航到:设置面板设置SSL 设置
    • 可选择 Let's Encrypt 免费证书或上传自有证书
  3. 设置访问限制

    • 导航到:设置安全设置
    • 配置允许访问的 IP 地址范围

2. 基础功能配置

2.1 系统信息

概览 页面可以查看:

  • 系统资源使用情况
  • 服务运行状态
  • 网络连接状态
  • 磁盘使用情况

2.2 应用商店

1Panel 提供丰富的应用商店,常用应用包括:

分类应用说明
Web 服务器Nginx、Apache反向代理、静态文件服务
数据库MySQL、PostgreSQL、Redis关系型和缓存数据库
开发工具GitLab、Jenkins、SonarQube代码管理和 CI/CD
监控工具Grafana、Prometheus系统监控和可视化
文件服务NextCloud、MinIO文件存储和共享

2.3 文件管理

文件管理器提供以下功能:

  • 📁 文件和目录的创建、删除、重命名
  • 📤 文件上传和下载
  • ✏️ 在线文件编辑器
  • 🔐 文件权限管理
  • 🗜️ 文件压缩和解压
  • 🔍 文件搜索功能

2.4 数据库管理

支持的数据库类型:

  • MySQL:5.7、8.0 版本
  • PostgreSQL:12、13、14、15 版本
  • Redis:6.x、7.x 版本
  • MongoDB:4.4、5.0、6.0 版本

3. Docker 容器管理

如果安装时选择了 Docker,可以使用以下功能:

3.1 容器操作

  • 创建、启动、停止、删除容器
  • 查看容器日志和统计信息
  • 进入容器终端

3.2 镜像管理

  • 拉取、删除镜像
  • 查看镜像详细信息
  • 构建自定义镜像

3.3 网络和存储

  • 创建和管理 Docker 网络
  • 管理数据卷
  • 配置端口映射

4. 系统监控

4.1 实时监控

监控面板显示:

  • CPU 使用率和负载
  • 内存使用情况
  • 磁盘 I/O 和空间使用
  • 网络流量统计
  • 进程列表

4.2 日志管理

支持查看和管理:

  • 系统日志(syslog)
  • 应用日志
  • Web 服务器访问日志
  • 数据库日志
  • Docker 容器日志

5. 备份策略

5.1 自动备份

配置定时备份任务:

  1. 导航到:计划任务备份
  2. 设置备份频率(每日、每周、每月)
  3. 选择备份内容(数据库、文件、配置)
  4. 配置备份存储位置

5.2 快照备份(Proxmox)

对于 LXC 容器和虚拟机,可以使用 Proxmox 的快照功能:

# 创建快照
pct snapshot 100 backup-$(date +%Y%m%d)

# 恢复快照
pct rollback 100 backup-20240101

故障排除

1. 常见问题诊断

1.1 无法访问 1Panel Web 界面

问题现象:浏览器无法打开 1Panel 管理界面

排查步骤

# 1. 检查 1Panel 服务状态
systemctl status 1panel

# 2. 检查端口监听
ss -tlnp | grep 8080
# 或
netstat -tlnp | grep 8080

# 3. 检查防火墙设置
ufw status

# 4. 查看 1Panel 日志
journalctl -u 1panel -f --lines=50

解决方案

# 重启 1Panel 服务
systemctl restart 1panel

# 如果端口被占用,修改端口
1pctl port 8081

# 开放防火墙端口
ufw allow 8081/tcp

1.2 Docker 服务异常

问题现象:容器无法启动或 Docker 命令失效

排查步骤

# 检查 Docker 服务状态
systemctl status docker

# 查看 Docker 日志
journalctl -u docker --lines=50

# 检查 Docker 存储空间
docker system df

解决方案

# 重启 Docker 服务
systemctl restart docker

# 清理 Docker 资源
docker system prune -a

# 如果存储空间不足,清理无用镜像
docker image prune -a

2. LXC 容器特定问题

2.1 容器无法启动

# 检查容器状态
pct list

# 查看容器配置
pct config 100

# 检查容器日志
pct exec 100 -- journalctl -xe

# 检查宿主机资源
free -h
df -h

2.2 网络连接问题

# 在容器内检查网络
pct enter 100
ip addr show
ping 8.8.8.8

# 在宿主机检查桥接网络
ip addr show vmbr0
brctl show

3. 虚拟机特定问题

3.1 虚拟机性能问题

# 检查虚拟机资源配置
qm config 101

# 监控资源使用
htop
iotop

优化建议

# 调整虚拟机配置
qm set 101 -memory 8192
qm set 101 -cores 4

# 启用 VirtIO 驱动
qm set 101 -net0 virtio,bridge=vmbr0
qm set 101 -scsi0 local-lvm:vm-101-disk-0,iothread=1

4. 系统资源问题

4.1 磁盘空间不足

# 检查磁盘使用情况
df -h

# 清理系统垃圾
apt autoremove -y
apt autoclean

# 清理日志文件
journalctl --vacuum-time=7d
find /var/log -name "*.log" -type f -mtime +30 -delete

# 清理 Docker 资源
docker system prune -a --volumes

4.2 内存不足

# 检查内存使用
free -h
ps aux --sort=-%mem | head -10

# 创建 swap 文件(如果没有)
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab

性能优化建议

1. LXC 容器优化

1.1 资源配置调优

# 根据实际需求调整资源
pct set 100 -memory 8192 # 内存 8GB
pct set 100 -cores 4 # CPU 4核心
pct set 100 -swap 2048 # 交换空间 2GB

# 启用嵌套虚拟化(如需要运行 Docker)
pct set 100 -features nesting=1

# 优化 I/O 性能
pct set 100 -rootfs local-lvm:40,mountoptions=noatime

1.2 系统级优化

# 在容器内执行
# 优化内核参数
cat >> /etc/sysctl.conf << EOF
# 网络优化
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 65536 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

# 内存管理优化
vm.swappiness = 10
vm.dirty_ratio = 15
vm.dirty_background_ratio = 5
EOF

# 应用配置
sysctl -p

2. 虚拟机优化

2.1 硬件配置优化

# 启用 VirtIO 驱动以获得更好性能
qm set 101 -net0 virtio,bridge=vmbr0,firewall=1
qm set 101 -scsi0 local-lvm:vm-101-disk-0,iothread=1,cache=writeback

# 启用 NUMA
qm set 101 -numa 1

# 设置 CPU 类型为 host 以获得最佳性能
qm set 101 -cpu host

2.2 存储优化

# 使用 SSD 存储
# 启用 discard 支持
qm set 101 -scsi0 local-lvm:vm-101-disk-0,discard=on

# 配置 I/O 线程
qm set 101 -scsi0 local-lvm:vm-101-disk-0,iothread=1

3. Docker 优化配置

3.1 Docker 守护进程优化

创建或编辑 /etc/docker/daemon.json

{
"storage-driver": "overlay2",
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"default-ulimits": {
"nofile": {
"Name": "nofile",
"Hard": 64000,
"Soft": 64000
}
},
"live-restore": true,
"userland-proxy": false,
"experimental": false
}

3.2 容器资源限制

# 为容器设置合理的资源限制
docker run -d \
--name myapp \
--memory="1g" \
--cpus="1.0" \
--restart=unless-stopped \
myapp:latest

4. 1Panel 性能优化

4.1 数据库优化

如果使用 MySQL:

# 编辑 MySQL 配置文件
nano /etc/mysql/mysql.conf.d/mysqld.cnf

# 添加优化参数
[mysqld]
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2
query_cache_size = 128M
max_connections = 200

4.2 Web 服务器优化

如果使用 Nginx:

# 编辑 Nginx 配置
nano /etc/nginx/nginx.conf

# 优化工作进程数
worker_processes auto;
worker_connections 1024;

# 启用 gzip 压缩
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_types text/plain text/css application/json application/javascript;

常用管理命令

1. Proxmox 容器管理

1.1 LXC 容器操作

# 基本操作
pct start 100 # 启动容器
pct stop 100 # 停止容器
pct restart 100 # 重启容器
pct destroy 100 # 删除容器
pct enter 100 # 进入容器

# 状态查询
pct list # 列出所有容器
pct status 100 # 查看容器状态
pct config 100 # 查看容器配置

# 资源管理
pct set 100 -memory 8192 # 设置内存为 8GB
pct set 100 -cores 4 # 设置 CPU 核心数
pct set 100 -swap 2048 # 设置交换空间

# 快照管理
pct snapshot 100 snapshot-name # 创建快照
pct listsnapshot 100 # 列出快照
pct rollback 100 snapshot-name # 恢复快照
pct delsnapshot 100 snapshot-name # 删除快照

1.2 虚拟机操作

# 基本操作
qm start 101 # 启动虚拟机
qm stop 101 # 停止虚拟机
qm reset 101 # 重置虚拟机
qm destroy 101 # 删除虚拟机

# 状态查询
qm list # 列出所有虚拟机
qm status 101 # 查看虚拟机状态
qm config 101 # 查看虚拟机配置

# 资源管理
qm set 101 -memory 8192 # 设置内存
qm set 101 -cores 4 # 设置 CPU 核心
qm set 101 -balloon 4096 # 设置内存气球

# 快照管理
qm snapshot 101 snapshot-name # 创建快照
qm listsnapshot 101 # 列出快照
qm rollback 101 snapshot-name # 恢复快照
qm delsnapshot 101 snapshot-name # 删除快照

2. 1Panel 管理命令

2.1 服务管理

# 服务控制
systemctl start 1panel # 启动服务
systemctl stop 1panel # 停止服务
systemctl restart 1panel # 重启服务
systemctl status 1panel # 查看状态
systemctl enable 1panel # 开机自启

# 1Panel 专用命令
1pctl status # 查看面板状态
1pctl restart # 重启面板
1pctl stop # 停止面板
1pctl start # 启动面板
1pctl version # 查看版本
1pctl update # 更新面板
1pctl reset # 重置密码
1pctl port 8081 # 修改端口

2.2 日志查看

# 查看实时日志
journalctl -u 1panel -f

# 查看最近日志
journalctl -u 1panel --lines=100

# 查看指定时间日志
journalctl -u 1panel --since "2024-01-01 00:00:00"

# 1Panel 应用日志
tail -f /opt/1panel/log/1panel.log

3. 系统监控命令

3.1 资源监控

# CPU 和进程监控
htop # 交互式进程查看器
top # 系统进程监控
ps aux --sort=-%cpu # 按 CPU 使用率排序

# 内存监控
free -h # 内存使用情况
cat /proc/meminfo # 详细内存信息

# 磁盘监控
df -h # 磁盘空间使用
du -sh /* # 目录大小统计
iotop # 磁盘 I/O 监控

# 网络监控
ss -tlnp # 网络连接状态
netstat -i # 网络接口统计
iftop # 网络流量监控

3.2 服务状态检查

# 检查关键服务
systemctl status docker
systemctl status nginx
systemctl status mysql
systemctl status redis

# 检查端口监听
ss -tlnp | grep :8080 # 检查 1Panel 端口
ss -tlnp | grep :80 # 检查 HTTP 端口
ss -tlnp | grep :443 # 检查 HTTPS 端口

# 检查防火墙状态
ufw status verbose
iptables -L -n

4. 维护命令

4.1 系统清理

# 清理软件包
apt autoremove -y # 删除不需要的包
apt autoclean # 清理包缓存

# 清理日志
journalctl --vacuum-time=7d # 保留 7 天日志
find /var/log -name "*.log" -type f -mtime +30 -delete

# 清理临时文件
rm -rf /tmp/*
rm -rf /var/tmp/*

# Docker 清理
docker system prune -a # 清理所有未使用资源
docker volume prune # 清理未使用卷

4.2 备份命令

# 备份 1Panel 配置
tar -czf 1panel-backup-$(date +%Y%m%d).tar.gz /opt/1panel

# 备份数据库
mysqldump -u root -p --all-databases > backup-$(date +%Y%m%d).sql

# 创建系统快照(Proxmox)
pct snapshot 100 backup-$(date +%Y%m%d-%H%M)
qm snapshot 101 backup-$(date +%Y%m%d-%H%M)

升级与维护

1. 1Panel 升级

1.1 在线升级(推荐)

# 方法一:通过 Web 界面升级
# 登录 1Panel → 设置 → 面板设置 → 在线升级

# 方法二:命令行升级
1pctl update

# 方法三:使用安装脚本升级
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o update.sh
bash update.sh

1.2 升级前准备

# 1. 备份当前配置
tar -czf 1panel-backup-$(date +%Y%m%d).tar.gz /opt/1panel

# 2. 创建系统快照
pct snapshot 100 pre-upgrade-$(date +%Y%m%d)

# 3. 检查当前版本
1pctl version

# 4. 查看更新日志
curl -s https://api.github.com/repos/1Panel-dev/1Panel/releases/latest

2. 系统维护

2.1 定期维护任务

创建维护脚本 /root/maintenance.sh

#!/bin/bash
# 1Panel 系统维护脚本

echo "开始系统维护 - $(date)"

# 更新系统
apt update && apt upgrade -y

# 清理系统垃圾
apt autoremove -y
apt autoclean

# 清理日志
journalctl --vacuum-time=30d

# 清理 Docker 资源
docker system prune -f

# 检查磁盘空间
df -h

# 检查内存使用
free -h

# 检查服务状态
systemctl status 1panel
systemctl status docker

echo "系统维护完成 - $(date)"

设置定时任务:

# 编辑 crontab
crontab -e

# 添加每周维护任务
0 2 * * 0 /root/maintenance.sh >> /var/log/maintenance.log 2>&1

2.2 监控脚本

创建监控脚本 /root/monitor.sh

#!/bin/bash
# 系统监控脚本

# 检查 1Panel 服务
if ! systemctl is-active --quiet 1panel; then
echo "1Panel 服务异常,尝试重启..."
systemctl restart 1panel
fi

# 检查磁盘空间
DISK_USAGE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')
if [ $DISK_USAGE -gt 80 ]; then
echo "警告:磁盘使用率超过 80%"
fi

# 检查内存使用
MEM_USAGE=$(free | awk 'NR==2{printf "%.0f", $3*100/$2}')
if [ $MEM_USAGE -gt 90 ]; then
echo "警告:内存使用率超过 90%"
fi

3. 备份策略

3.1 自动备份配置

# 创建备份脚本
cat > /root/backup.sh << 'EOF'
#!/bin/bash
BACKUP_DIR="/backup"
DATE=$(date +%Y%m%d_%H%M%S)

# 创建备份目录
mkdir -p $BACKUP_DIR

# 备份 1Panel 配置
tar -czf $BACKUP_DIR/1panel_$DATE.tar.gz /opt/1panel

# 备份数据库(如果有)
if systemctl is-active --quiet mysql; then
mysqldump --all-databases > $BACKUP_DIR/mysql_$DATE.sql
fi

# 删除 7 天前的备份
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete
find $BACKUP_DIR -name "*.sql" -mtime +7 -delete

echo "备份完成:$DATE"
EOF

chmod +x /root/backup.sh

# 设置每日备份
echo "0 3 * * * /root/backup.sh >> /var/log/backup.log 2>&1" | crontab -

3.2 Proxmox 快照策略

# 创建快照脚本
cat > /root/snapshot.sh << 'EOF'
#!/bin/bash
VMID=100 # 容器或虚拟机 ID
SNAPSHOT_NAME="auto-$(date +%Y%m%d-%H%M)"

# 创建快照
pct snapshot $VMID $SNAPSHOT_NAME

# 删除 7 天前的快照
pct listsnapshot $VMID | grep "auto-" | while read line; do
SNAP_DATE=$(echo $line | grep -o "auto-[0-9]\{8\}")
if [ -n "$SNAP_DATE" ]; then
SNAP_TIMESTAMP=$(date -d "${SNAP_DATE:5:4}-${SNAP_DATE:9:2}-${SNAP_DATE:11:2}" +%s)
WEEK_AGO=$(date -d "7 days ago" +%s)
if [ $SNAP_TIMESTAMP -lt $WEEK_AGO ]; then
SNAP_NAME=$(echo $line | awk '{print $1}')
pct delsnapshot $VMID $SNAP_NAME
fi
fi
done
EOF

chmod +x /root/snapshot.sh

# 设置每日快照
echo "0 1 * * * /root/snapshot.sh >> /var/log/snapshot.log 2>&1" | crontab -

安全最佳实践

1. 访问安全

1.1 修改默认配置

# 修改 SSH 端口
sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config
systemctl restart sshd

# 修改 1Panel 端口
1pctl port 8081

# 禁用 root SSH 登录
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config

1.2 配置 SSL 证书

# 使用 Let's Encrypt 免费证书
# 在 1Panel 界面中:
# 设置 → 面板设置 → SSL 设置 → Let's Encrypt

# 或手动申请证书
apt install certbot -y
certbot certonly --standalone -d your-domain.com

1.3 IP 访问限制

# 限制 1Panel 访问 IP
ufw allow from 192.168.1.0/24 to any port 8081

# 配置 fail2ban 防暴力破解
apt install fail2ban -y
systemctl enable fail2ban
systemctl start fail2ban

2. 数据安全

2.1 数据库安全

# MySQL 安全配置
mysql_secure_installation

# 创建专用数据库用户
mysql -u root -p << EOF
CREATE USER '1panel'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON 1panel.* TO '1panel'@'localhost';
FLUSH PRIVILEGES;
EOF

2.2 文件权限

# 设置 1Panel 目录权限
chown -R 1panel:1panel /opt/1panel
chmod -R 750 /opt/1panel

# 设置敏感文件权限
chmod 600 /opt/1panel/conf/app.yaml
chmod 600 /etc/1panel/1panel.conf

# 定期检查文件权限
find /opt/1panel -type f -perm /o+w -exec chmod o-w {} \;

总结

1. 安装方式选择建议

使用场景推荐方式理由
开发测试LXC 容器资源占用少,部署快速
个人学习LXC 容器易于管理,成本低
生产环境虚拟机隔离性好,稳定性高
企业应用虚拟机功能完整,安全性高

2. 关键配置要点

2.1 安全配置

  • ✅ 修改默认端口和密码
  • ✅ 配置 SSL 证书
  • ✅ 设置防火墙规则
  • ✅ 限制访问 IP 范围
  • ✅ 定期更新系统和应用

2.2 性能优化

  • ✅ 合理分配 CPU 和内存资源
  • ✅ 使用 SSD 存储提升 I/O 性能
  • ✅ 优化网络配置
  • ✅ 配置适当的缓存策略
  • ✅ 定期清理系统垃圾

2.3 运维管理

  • ✅ 建立完善的备份策略
  • ✅ 配置系统监控和告警
  • ✅ 制定故障恢复预案
  • ✅ 记录重要操作和配置
  • ✅ 定期进行安全检查

3. 常见问题快速解决

问题快速解决方案
无法访问面板systemctl restart 1panel
Docker 异常systemctl restart docker
磁盘空间不足docker system prune -a
内存不足增加 swap 或调整资源分配
网络连接问题检查防火墙和网络配置

4. 维护检查清单

每日检查

  • 检查系统资源使用情况
  • 查看关键服务运行状态
  • 检查备份任务执行情况

每周检查

  • 更新系统安全补丁
  • 清理系统日志和临时文件
  • 检查磁盘空间使用情况
  • 验证备份文件完整性

每月检查

  • 更新 1Panel 到最新版本
  • 检查 SSL 证书有效期
  • 审查用户访问权限
  • 进行安全漏洞扫描
  • 测试灾难恢复流程

通过本指南,您可以在 Proxmox 虚拟环境中成功部署和管理 1Panel,获得一个功能强大、安全可靠的 Linux 服务器管理面板。记住定期维护和监控是确保系统稳定运行的关键。


参考资源

官方文档

社区支持

相关工具


Proxmox 虚拟环境下 1Panel 安装指南

概述

1Panel 是一个现代化的 Linux 服务器运维管理面板,提供了直观的 Web 界面来管理服务器、应用、数据库等资源。本文将详细介绍在 Proxmox 虚拟环境下安装 1Panel 的两种方式:LXC 容器方式和虚拟机方式。

安装方式对比

特性LXC 容器方式虚拟机方式
资源占用中等
启动速度较慢
隔离性进程级隔离完全隔离
兼容性较好最佳
管理复杂度简单中等
推荐场景开发测试、轻量部署生产环境、完整功能需求

系统要求

LXC 容器方式(推荐)

  • 内存:最少 2GB,推荐 4GB
  • 存储:最少 20GB,推荐 40GB
  • CPU:2 核心以上

虚拟机方式

  • 内存:最少 4GB,推荐 8GB
  • 存储:最少 50GB,推荐 100GB
  • CPU:4 核心以上

方式一:LXC 容器安装(推荐)

1. 准备工作

1.1 环境检查

  • Proxmox VE 版本:7.0 或更高版本
  • 可用内存:至少 2GB 空闲内存
  • 存储空间:至少 20GB 可用空间
  • 网络配置:确保桥接网络正常工作

1.2 下载 LXC 模板

  1. 登录 Proxmox Web 管理界面
  2. 导航到:数据中心存储local内容
  3. 点击 模板 选项卡
  4. 下载 ubuntu-22.04-standard 模板

或使用命令行下载:

pveam update
pveam available | grep ubuntu-22.04
pveam download local ubuntu-22.04-standard_22.04-1_amd64.tar.zst

2. 创建 LXC 容器

2.1 通过 Web 界面创建

  1. 点击 创建 CT
  2. 填写以下配置:
选项说明
节点选择目标节点-
CT ID100可自定义
主机名1panel-server容器主机名
密码设置 root 密码强密码
模板ubuntu-22.04-standard已下载的模板
存储local-lvm根据实际情况选择
磁盘大小40 GB推荐大小
CPU 核心2最少 2 核心
内存4096 MB推荐 4GB
网络桥接到 vmbr0-
IPv4静态 IP如:192.168.1.100/24
网关192.168.1.1根据网络环境设置
DNS8.8.8.8可选多个 DNS

2.2 启动并进入容器

# 启动容器
pct start 100

# 进入容器
pct enter 100

3. 系统初始化

3.1 更新系统

# 更新软件包列表
apt update

# 升级系统
apt upgrade -y

# 安装必要工具
apt install -y curl wget git vim htop net-tools ufw

3.2 配置防火墙

# 允许 SSH 连接
ufw allow 22/tcp

# 允许 HTTP/HTTPS
ufw allow 80/tcp
ufw allow 443/tcp

# 允许 1Panel 默认端口
ufw allow 8080/tcp

# 启用防火墙
ufw --force enable

# 查看防火墙状态
ufw status

4. 安装 1Panel

4.1 执行安装脚本

# 使用官方一键安装脚本
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o install.sh
bash install.sh

4.2 安装过程说明

安装过程中会提示:

  1. 选择安装目录(默认:/opt/1panel
  2. 设置面板端口(默认:8080
  3. 设置面板用户名和密码
  4. 选择是否安装 Docker(推荐安装)

4.3 安装完成

安装成功后会显示:

================================================================
1Panel 安装完成!

面板地址: http://192.168.1.100:8080
用户名: [您设置的用户名]
密码: [您设置的密码]

如需修改面板端口,请执行:1pctl port [新端口]
如需重置面板密码,请执行:1pctl reset
================================================================

方式二:虚拟机安装

1. 准备工作

1.1 下载系统镜像

推荐使用以下操作系统:

  • Ubuntu Server 22.04 LTS(推荐)
  • Debian 11/12
  • CentOS Stream 9

下载地址:

1.2 上传 ISO 镜像

  1. 在 Proxmox Web 界面中选择存储
  2. 点击 ISO 镜像上传
  3. 选择下载的 ISO 文件上传

2. 创建虚拟机

2.1 创建 VM 配置

选项推荐值说明
VM ID101可自定义
名称1Panel-VM虚拟机名称
操作系统Linux-
ISO 镜像ubuntu-22.04-server选择上传的镜像
系统默认-
硬盘100 GBSCSI 控制器
CPU4 核心host 类型
内存8192 MB-
网络桥接到 vmbr0VirtIO 网卡

2.2 安装操作系统

  1. 启动虚拟机并连接控制台
  2. 按照安装向导进行:
    • 选择语言和键盘布局
    • 配置网络(可选择 DHCP 或静态 IP)
    • 创建用户账户
    • 选择最小化安装
    • 启用 SSH 服务

3. 系统配置

3.1 更新系统

# 更新软件包
sudo apt update && sudo apt upgrade -y

# 安装必要工具
sudo apt install -y curl wget git vim htop net-tools ufw

3.2 配置静态 IP(可选)

如果需要配置静态 IP:

# 编辑网络配置文件
sudo nano /etc/netplan/00-installer-config.yaml

配置示例:

network:
version: 2
ethernets:
ens18:
dhcp4: false
addresses:
- 192.168.1.101/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]

应用配置:

sudo netplan apply

3.3 配置防火墙

# 允许 SSH
sudo ufw allow 22/tcp

# 允许 HTTP/HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# 允许 1Panel 端口
sudo ufw allow 8080/tcp

# 启用防火墙
sudo ufw --force enable

4. 安装 1Panel

4.1 执行安装

# 下载并执行安装脚本
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o install.sh
sudo bash install.sh

4.2 安装完成

安装成功后记录显示的访问信息:

================================================================
1Panel 安装完成!

面板地址: http://192.168.1.101:8080
用户名: [您设置的用户名]
密码: [您设置的密码]
================================================================

首次配置与使用

1. 访问 1Panel

1.1 登录面板

打开浏览器访问:

  • LXC 方式http://192.168.1.100:8080
  • VM 方式http://192.168.1.101:8080

使用安装时设置的用户名和密码登录。

1.2 安全设置

登录后立即进行以下安全配置:

  1. 修改默认端口

    • 导航到:设置面板设置端口设置
    • 建议修改为非标准端口(如 8081、9090 等)
  2. 配置 SSL 证书

    • 导航到:设置面板设置SSL 设置
    • 可选择 Let's Encrypt 免费证书或上传自有证书
  3. 设置访问限制

    • 导航到:设置安全设置
    • 配置允许访问的 IP 地址范围

2. 基础功能配置

2.1 系统信息

概览 页面可以查看:

  • 系统资源使用情况
  • 服务运行状态
  • 网络连接状态
  • 磁盘使用情况

2.2 应用商店

1Panel 提供丰富的应用商店,常用应用包括:

分类应用说明
Web 服务器Nginx、Apache反向代理、静态文件服务
数据库MySQL、PostgreSQL、Redis关系型和缓存数据库
开发工具GitLab、Jenkins、SonarQube代码管理和 CI/CD
监控工具Grafana、Prometheus系统监控和可视化
文件服务NextCloud、MinIO文件存储和共享

2.3 文件管理

文件管理器提供以下功能:

  • 📁 文件和目录的创建、删除、重命名
  • 📤 文件上传和下载
  • ✏️ 在线文件编辑器
  • 🔐 文件权限管理
  • 🗜️ 文件压缩和解压
  • 🔍 文件搜索功能

2.4 数据库管理

支持的数据库类型:

  • MySQL:5.7、8.0 版本
  • PostgreSQL:12、13、14、15 版本
  • Redis:6.x、7.x 版本
  • MongoDB:4.4、5.0、6.0 版本

3. Docker 容器管理

如果安装时选择了 Docker,可以使用以下功能:

3.1 容器操作

  • 创建、启动、停止、删除容器
  • 查看容器日志和统计信息
  • 进入容器终端

3.2 镜像管理

  • 拉取、删除镜像
  • 查看镜像详细信息
  • 构建自定义镜像

3.3 网络和存储

  • 创建和管理 Docker 网络
  • 管理数据卷
  • 配置端口映射

4. 系统监控

4.1 实时监控

监控面板显示:

  • CPU 使用率和负载
  • 内存使用情况
  • 磁盘 I/O 和空间使用
  • 网络流量统计
  • 进程列表

4.2 日志管理

支持查看和管理:

  • 系统日志(syslog)
  • 应用日志
  • Web 服务器访问日志
  • 数据库日志
  • Docker 容器日志

5. 备份策略

5.1 自动备份

配置定时备份任务:

  1. 导航到:计划任务备份
  2. 设置备份频率(每日、每周、每月)
  3. 选择备份内容(数据库、文件、配置)
  4. 配置备份存储位置

5.2 快照备份(Proxmox)

对于 LXC 容器和虚拟机,可以使用 Proxmox 的快照功能:

# 创建快照
pct snapshot 100 backup-$(date +%Y%m%d)

# 恢复快照
pct rollback 100 backup-20240101

故障排除

1. 常见问题诊断

1.1 无法访问 1Panel Web 界面

问题现象:浏览器无法打开 1Panel 管理界面

排查步骤

# 1. 检查 1Panel 服务状态
systemctl status 1panel

# 2. 检查端口监听
ss -tlnp | grep 8080
# 或
netstat -tlnp | grep 8080

# 3. 检查防火墙设置
ufw status

# 4. 查看 1Panel 日志
journalctl -u 1panel -f --lines=50

解决方案

# 重启 1Panel 服务
systemctl restart 1panel

# 如果端口被占用,修改端口
1pctl port 8081

# 开放防火墙端口
ufw allow 8081/tcp

1.2 Docker 服务异常

问题现象:容器无法启动或 Docker 命令失效

排查步骤

# 检查 Docker 服务状态
systemctl status docker

# 查看 Docker 日志
journalctl -u docker --lines=50

# 检查 Docker 存储空间
docker system df

解决方案

# 重启 Docker 服务
systemctl restart docker

# 清理 Docker 资源
docker system prune -a

# 如果存储空间不足,清理无用镜像
docker image prune -a

2. LXC 容器特定问题

2.1 容器无法启动

# 检查容器状态
pct list

# 查看容器配置
pct config 100

# 检查容器日志
pct exec 100 -- journalctl -xe

# 检查宿主机资源
free -h
df -h

2.2 网络连接问题

# 在容器内检查网络
pct enter 100
ip addr show
ping 8.8.8.8

# 在宿主机检查桥接网络
ip addr show vmbr0
brctl show

3. 虚拟机特定问题

3.1 虚拟机性能问题

# 检查虚拟机资源配置
qm config 101

# 监控资源使用
htop
iotop

优化建议

# 调整虚拟机配置
qm set 101 -memory 8192
qm set 101 -cores 4

# 启用 VirtIO 驱动
qm set 101 -net0 virtio,bridge=vmbr0
qm set 101 -scsi0 local-lvm:vm-101-disk-0,iothread=1

4. 系统资源问题

4.1 磁盘空间不足

# 检查磁盘使用情况
df -h

# 清理系统垃圾
apt autoremove -y
apt autoclean

# 清理日志文件
journalctl --vacuum-time=7d
find /var/log -name "*.log" -type f -mtime +30 -delete

# 清理 Docker 资源
docker system prune -a --volumes

4.2 内存不足

# 检查内存使用
free -h
ps aux --sort=-%mem | head -10

# 创建 swap 文件(如果没有)
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab

性能优化建议

1. LXC 容器优化

1.1 资源配置调优

# 根据实际需求调整资源
pct set 100 -memory 8192 # 内存 8GB
pct set 100 -cores 4 # CPU 4核心
pct set 100 -swap 2048 # 交换空间 2GB

# 启用嵌套虚拟化(如需要运行 Docker)
pct set 100 -features nesting=1

# 优化 I/O 性能
pct set 100 -rootfs local-lvm:40,mountoptions=noatime

1.2 系统级优化

# 在容器内执行
# 优化内核参数
cat >> /etc/sysctl.conf << EOF
# 网络优化
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 65536 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

# 内存管理优化
vm.swappiness = 10
vm.dirty_ratio = 15
vm.dirty_background_ratio = 5
EOF

# 应用配置
sysctl -p

2. 虚拟机优化

2.1 硬件配置优化

# 启用 VirtIO 驱动以获得更好性能
qm set 101 -net0 virtio,bridge=vmbr0,firewall=1
qm set 101 -scsi0 local-lvm:vm-101-disk-0,iothread=1,cache=writeback

# 启用 NUMA
qm set 101 -numa 1

# 设置 CPU 类型为 host 以获得最佳性能
qm set 101 -cpu host

2.2 存储优化

# 使用 SSD 存储
# 启用 discard 支持
qm set 101 -scsi0 local-lvm:vm-101-disk-0,discard=on

# 配置 I/O 线程
qm set 101 -scsi0 local-lvm:vm-101-disk-0,iothread=1

3. Docker 优化配置

3.1 Docker 守护进程优化

创建或编辑 /etc/docker/daemon.json

{
"storage-driver": "overlay2",
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"default-ulimits": {
"nofile": {
"Name": "nofile",
"Hard": 64000,
"Soft": 64000
}
},
"live-restore": true,
"userland-proxy": false,
"experimental": false
}

3.2 容器资源限制

# 为容器设置合理的资源限制
docker run -d \
--name myapp \
--memory="1g" \
--cpus="1.0" \
--restart=unless-stopped \
myapp:latest

4. 1Panel 性能优化

4.1 数据库优化

如果使用 MySQL:

# 编辑 MySQL 配置文件
nano /etc/mysql/mysql.conf.d/mysqld.cnf

# 添加优化参数
[mysqld]
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2
query_cache_size = 128M
max_connections = 200

4.2 Web 服务器优化

如果使用 Nginx:

# 编辑 Nginx 配置
nano /etc/nginx/nginx.conf

# 优化工作进程数
worker_processes auto;
worker_connections 1024;

# 启用 gzip 压缩
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_types text/plain text/css application/json application/javascript;

常用管理命令

1. Proxmox 容器管理

1.1 LXC 容器操作

# 基本操作
pct start 100 # 启动容器
pct stop 100 # 停止容器
pct restart 100 # 重启容器
pct destroy 100 # 删除容器
pct enter 100 # 进入容器

# 状态查询
pct list # 列出所有容器
pct status 100 # 查看容器状态
pct config 100 # 查看容器配置

# 资源管理
pct set 100 -memory 8192 # 设置内存为 8GB
pct set 100 -cores 4 # 设置 CPU 核心数
pct set 100 -swap 2048 # 设置交换空间

# 快照管理
pct snapshot 100 snapshot-name # 创建快照
pct listsnapshot 100 # 列出快照
pct rollback 100 snapshot-name # 恢复快照
pct delsnapshot 100 snapshot-name # 删除快照

1.2 虚拟机操作

# 基本操作
qm start 101 # 启动虚拟机
qm stop 101 # 停止虚拟机
qm reset 101 # 重置虚拟机
qm destroy 101 # 删除虚拟机

# 状态查询
qm list # 列出所有虚拟机
qm status 101 # 查看虚拟机状态
qm config 101 # 查看虚拟机配置

# 资源管理
qm set 101 -memory 8192 # 设置内存
qm set 101 -cores 4 # 设置 CPU 核心
qm set 101 -balloon 4096 # 设置内存气球

# 快照管理
qm snapshot 101 snapshot-name # 创建快照
qm listsnapshot 101 # 列出快照
qm rollback 101 snapshot-name # 恢复快照
qm delsnapshot 101 snapshot-name # 删除快照

2. 1Panel 管理命令

2.1 服务管理

# 服务控制
systemctl start 1panel # 启动服务
systemctl stop 1panel # 停止服务
systemctl restart 1panel # 重启服务
systemctl status 1panel # 查看状态
systemctl enable 1panel # 开机自启

# 1Panel 专用命令
1pctl status # 查看面板状态
1pctl restart # 重启面板
1pctl stop # 停止面板
1pctl start # 启动面板
1pctl version # 查看版本
1pctl update # 更新面板
1pctl reset # 重置密码
1pctl port 8081 # 修改端口

2.2 日志查看

# 查看实时日志
journalctl -u 1panel -f

# 查看最近日志
journalctl -u 1panel --lines=100

# 查看指定时间日志
journalctl -u 1panel --since "2024-01-01 00:00:00"

# 1Panel 应用日志
tail -f /opt/1panel/log/1panel.log

3. 系统监控命令

3.1 资源监控

# CPU 和进程监控
htop # 交互式进程查看器
top # 系统进程监控
ps aux --sort=-%cpu # 按 CPU 使用率排序

# 内存监控
free -h # 内存使用情况
cat /proc/meminfo # 详细内存信息

# 磁盘监控
df -h # 磁盘空间使用
du -sh /* # 目录大小统计
iotop # 磁盘 I/O 监控

# 网络监控
ss -tlnp # 网络连接状态
netstat -i # 网络接口统计
iftop # 网络流量监控

3.2 服务状态检查

# 检查关键服务
systemctl status docker
systemctl status nginx
systemctl status mysql
systemctl status redis

# 检查端口监听
ss -tlnp | grep :8080 # 检查 1Panel 端口
ss -tlnp | grep :80 # 检查 HTTP 端口
ss -tlnp | grep :443 # 检查 HTTPS 端口

# 检查防火墙状态
ufw status verbose
iptables -L -n

4. 维护命令

4.1 系统清理

# 清理软件包
apt autoremove -y # 删除不需要的包
apt autoclean # 清理包缓存

# 清理日志
journalctl --vacuum-time=7d # 保留 7 天日志
find /var/log -name "*.log" -type f -mtime +30 -delete

# 清理临时文件
rm -rf /tmp/*
rm -rf /var/tmp/*

# Docker 清理
docker system prune -a # 清理所有未使用资源
docker volume prune # 清理未使用卷

4.2 备份命令

# 备份 1Panel 配置
tar -czf 1panel-backup-$(date +%Y%m%d).tar.gz /opt/1panel

# 备份数据库
mysqldump -u root -p --all-databases > backup-$(date +%Y%m%d).sql

# 创建系统快照(Proxmox)
pct snapshot 100 backup-$(date +%Y%m%d-%H%M)
qm snapshot 101 backup-$(date +%Y%m%d-%H%M)

升级与维护

1. 升级1Panel

# 自动升级
# 在1Panel界面中:设置 -> 面板设置 -> 升级

# 手动升级
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start/install.sh | sh -s 1p update

2. 定期维护

# 定期任务
- 系统更新和安全补丁
- 日志清理和归档
- 备份检查和验证
- 性能监控和优化
- 安全扫描和漏洞修复

注意事项

1. 安全注意事项

  1. 及时更新:定期更新系统和1Panel
  2. 强密码:使用强密码并定期更换
  3. 防火墙:配置适当的防火墙规则
  4. SSL证书:使用HTTPS加密传输
  5. 访问控制:限制管理界面访问IP

2. 性能注意事项

  1. 资源监控:定期检查资源使用情况
  2. 备份策略:制定完善的备份策略
  3. 日志管理:定期清理和归档日志
  4. 存储优化:使用SSD存储提高性能
  5. 网络优化:配置适当的网络参数

3. 运维注意事项

  1. 文档记录:记录重要的配置和操作
  2. 测试环境:在生产环境部署前先测试
  3. 监控告警:配置系统监控和告警
  4. 应急预案:制定故障恢复预案
  5. 定期检查:定期检查系统健康状态

通过以上两种方式,您可以根据实际需求选择合适的1Panel安装方法,获得一个功能强大的Linux服务器管理面板。