【问题篇】Synology虚拟机安装Debian系统踩坑记录篇

kvin_777
2025-08-14 / 0 评论 / 50 阅读 / 正在检测是否收录...

mpfalyi5.png

一、安装准备

近期博主在群辉虚拟机安装了Debian系统,也踩了不少坑与问题,在此记录一下

首先,准备Debian系统镜像--博主安装版本是Dabian 12,下载链接如下:

二、安装步骤

下载完毕后解压会得到一个ISO镜像文件,接下来进入DSM系统--点击虚拟机--映像--新增,如图所示:

meaz3geq.png

从计算机上传ISO文件,如下图:

meaz4l6q.png

上传文件后,点击虚拟机-新增
meaz6vno.png

选择linux-下一步,配置常用规格:2G即可,存储空间按照自己需求自定义
meaz7n0y.png

启动ISO文件选择刚才上传好的Dabian镜像,分配电源管理权限选择当前群辉登录的用户即可

meazai9u.png

一切准备就绪,点击完成即可自动安装系统,启动并连接进入系统安装界面

三、问题与注意事项

1.系统界面选择

meazk55r.png

2.操作选择

meaznc9t.png

meaznk69.png

meaznq8f.png

3.安装时间

meazp4kh.png

4.root登录

Debian桌面系统,默认不允许root用户登录

首先,使用我们安装debian系统时创建的普通用户登录到系统的桌面,打开终端-切换到root用户 su root 输入密码

修改文件权限,执行以下命令:

sudo chmod  777 /etc/gdm3/daemon.conf
sudo chmod  777 /etc/pam.d/gdm-password

点击activities 找到 files 点击other locations,修改/etc/gdm3/deamon.conf配置文件,在[security]字段后面追加 AllowRoot = ture 一行,注意大小写

修改gdm3--pam文件:/etc/pam.d/gdm-password 将auth required pam_succeed_if.so user != root quiet_success注释掉 //本行前加#

重启系统,恭喜,root用户登录成功

但此时只是设置为系统root可以登录,想要使用shell登录还要继续操作

若不懂可以查看作者原文链接: 虚拟机安装debian

5.SSH登录

由于虚拟机操作过于繁琐与卡顿,博主建议各位采用SSH工具登录后台进行操作

如何打开Debian系统支持SSH,按照作者原文操作会发现系统根本没有sshd.config文件,这就是此处的坑之一:

如何解决:根源是系统没有安装SSH服务器--输入如下命令进行安装即可:

sudo apt-get install openssh-server

安装完毕后你会发现sshd.config文件有了,然后在继续按照原文作者的方法继续执行即可实现SSH登录

6.更换系统源

原因:若不更换系统源会报如下错--

如何做:按顺序执行如下代码---

sudo nano /etc/apt/sources.list

备份/etc/apt/sources.list文件:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

更换镜像源:

deb [https://mirrors.aliyun.com/debian/](https://mirrors.aliyun.com/debian/) bookworm main non-free non-free-firmware contrib
deb-src [https://mirrors.aliyun.com/debian/](https://mirrors.aliyun.com/debian/) bookworm main non-free non-free-firmware contrib
deb [https://mirrors.aliyun.com/debian-security/](https://mirrors.aliyun.com/debian-security/) bookworm-security main
deb-src [https://mirrors.aliyun.com/debian-security/](https://mirrors.aliyun.com/debian-security/) bookworm-security main
deb [https://mirrors.aliyun.com/debian/](https://mirrors.aliyun.com/debian/) bookworm-updates main non-free non-free-firmware contrib
deb-src [https://mirrors.aliyun.com/debian/](https://mirrors.aliyun.com/debian/) bookworm-updates main non-free non-free-firmware contrib
deb [https://mirrors.aliyun.com/debian/](https://mirrors.aliyun.com/debian/) bookworm-backports main non-free non-free-firmware contrib
deb-src [https://mirrors.aliyun.com/debian/](https://mirrors.aliyun.com/debian/) bookworm-backports main non-free non-free-firmware contrib

更新升级系统:

sudo apt update
sudo apt upgrade

四、总结

Synology虚拟机安装Debian系统很费时间,需要耐心操作

五、进阶系统级优化:压榨群晖VMM极致性能

很多新手在完成上述安装后,就以为万事大吉,直接开始部署业务了。但实际上,此时的 Debian 跑在群晖 VMM 中,性能损耗极其严重,且无法与宿主机(群晖)进行深度的硬件级联动。为了让虚拟机达到“裸机”般的丝滑体验,我们必须进行底层优化。

1. 安装 QEMU Guest Agent (QGA) —— 打通宿主机通信的任督二脉

痛点现象:在群晖 VMM 面板中,你会发现虚拟机的 IP 地址经常显示为“未知”;且当你点击 VMM 面板的“关机”按钮时,Debian 毫无反应,只能强制拔电源(强制关机),这极易导致文件系统损坏。
解决方案:安装 QEMU Guest Agent。这是一款守护进程,能让虚拟机系统与宿主机群晖进行底层通信。

# 安装 QGA
sudo apt-get install qemu-guest-agent -y
# 设置开机自启并立刻运行
sudo systemctl enable --now qemu-guest-agent

效果验证:回到群晖 VMM 界面,你会惊奇地发现原本未知的 IP 地址已经实时显示,并且现在你可以优雅地在群晖面板上点击“关机”或“重启”,Debian 会完美响应软指令。

2. 突破 I/O 瓶颈:切换 VirtIO 虚拟化半驱动

痛点现象:默认情况下,群晖为了兼容所有老旧系统,会模拟出 SATA 硬盘和 e1000(千兆 Intel)网卡。这些全模拟硬件每次读写都需要经过复杂的 CPU 指令翻译,导致磁盘 IOPS 极低,网络吞吐量严重受限。
解决方案:切换为 KVM 原生的 VirtIO 驱动。Debian 12 内核已自带该驱动。

  • 操作方法:先在 Debian 中输入 sudo poweroff 关机。
  • 打开群晖 VMM -> 选中虚拟机 -> 编辑 -> 【存储空间】选项卡,将“虚拟盘控制器”从 SATA 改为 VirtIO
  • 进入 【网络】选项卡,将网卡型号从 e1000 改为 VirtIO
  • 保存后重新开机。输入 lsblk 命令,如果看到硬盘名称从 sda 变成了 vda,说明磁盘 I/O 加速已全面开启。

六、网络与安全高阶防御体系

既然我们已经把 Debian 作为一台正规的服务器来使用了,就不能再用普通桌面电脑的思维来管理,否则一旦暴露端口,极易被黑客黑掉。

1. 配置静态 IP 地址(告别 IP 乱跳)

如果路由器重启,DHCP 分配的 IP 变了,你的 SSH 连接、Web 服务端口映射都会全部失效。
在 GUI 环境下(或通过纯命令行),最简单的修改方式是借助 NetworkManager 自带的伪图形化工具 nmtui

sudo nmtui
  1. 选择 Edit a connection
  2. 选中当前连接的网卡。
  3. IPv4 Configuration<Automatic> (自动获取) 改为 <Manual> (手动配置)。
  4. 点击 <Show>,依次填入:

    • Addresses: 192.168.x.x/24 (你的静态 IP,注意后面的 /24 代表子网掩码)
    • Gateway: 192.168.x.1 (路由器地址)
    • DNS servers: 223.5.5.58.8.8.8
  5. 保存退出后,执行 sudo systemctl restart NetworkManager 重启网络生效。

2. SSH 密钥登录:封杀爆破扫描

开启了外网访问后,你的 22 端口每天会遭受几万次的密码破解扫描。
第一步:生成并上传密钥
在你的个人电脑(Win/Mac 的终端)上执行:

ssh-keygen -t ed25519 -C "your_email@example.com"
ssh-copy-id -p 22 root@192.168.x.x

第二步:禁用密码登录
验证可以使用密钥直接免密登录后,我们必须彻底堵死密码登录的渠道。
编辑 SSH 配置文件:

sudo nano /etc/ssh/sshd_config

找到以下字段,去掉注释 #,并严格修改为 no

PermitRootLogin prohibit-password
PasswordAuthentication no

保存后重启服务:sudo systemctl restart ssh。至此,即使黑客知道了你的 root 密码,没有你电脑里的专属私钥文件,也是绝对无法入侵的。

3. 部署 UFW 极简防火墙

Debian 默认自带 iptables,但配置过于反人类。我们可以安装 UFW (Uncomplicated Firewall) 来管理端口。

sudo apt install ufw
# 默认拒绝所有外部连入
sudo ufw default deny incoming
# 默认允许所有内部连出
sudo ufw default allow outgoing
# 放行 SSH 端口(极其重要,否则自己也被锁在外面)
sudo ufw allow ssh
# 放行 Web 端口
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 启用防火墙
sudo ufw enable

七、生产力环境搭建:原生 Docker 引擎注入

为什么不直接用群晖套件里的 Container Manager?
群晖的底层系统内核极其陈旧(往往是 3.x 或 4.x),且阉割了大量网络模块。而在虚拟机里的 Debian 12 拥有原汁原味的 Linux 6.x 完整内核,网络隔离(macvlan)、资源分配调度将变得无比顺滑,是折腾复杂微服务和旁路网关的最佳试验田。

请摒弃 apt install docker.io 这种安装老旧残缺版本的方法,严格按照 Docker 官方指南部署最新版:

# 1. 安装基础依赖
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

# 2. 导入阿里云 Docker 镜像 GPG 密钥(解决国内被墙无法下载的问题)
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL [https://mirrors.aliyun.com/docker-ce/linux/debian/gpg](https://mirrors.aliyun.com/docker-ce/linux/debian/gpg) | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# 3. 写入阿里云软件源
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] [https://mirrors.aliyun.com/docker-ce/linux/debian](https://mirrors.aliyun.com/docker-ce/linux/debian) \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 4. 更新软件库并安装最新版 Docker 引擎与 Compose 插件
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

验证安装:输入 docker -vdocker compose version,如果输出版本号,则代表安装完美成功。


八、存储桥梁:打通 Debian 与群晖物理数据的任督二脉

虚拟机分配的硬盘通常很小(比如 20G),如果你要在里面跑下载机或者媒体库,很快就会塞满。最高级的玩法是:让 Debian 直接挂载群晖宿主机里的海量存储空间。

实战:通过 NFS 挂载群晖文件夹

  1. 群晖端设置:打开群晖控制面板 -> 文件服务 -> 启用 NFS 服务。
  2. 进入群晖“共享文件夹”,选择你需要共享的文件夹(例如 /volume1/downloads),点击编辑 -> NFS 权限 -> 新增。

    • 服务器名称或 IP 地址:填写你刚才给 Debian 设置的静态 IP(例如 192.168.x.x)。
    • 权限:读写。
    • Squash:映射所有用户为 admin。保存。
  3. Debian 端设置
    安装 NFS 客户端支持包:

    sudo apt install nfs-common -y

    创建一个本地挂载点:

    sudo mkdir -p /mnt/synology_downloads

    执行挂载命令(注意替换群晖的 IP 和路径):

    sudo mount -t nfs 192.168.x.x:/volume1/downloads /mnt/synology_downloads
  4. 实现开机自动挂载
    编辑 /etc/fstab 文件:

    sudo nano /etc/fstab

    在最末尾追加一行:

    192.168.x.x:/volume1/downloads /mnt/synology_downloads nfs defaults 0 0

    现在,你在 Debian 虚拟机的 /mnt/synology_downloads 目录里进行读写,就等同于直接在群晖的物理硬盘上读写,实现了计算资源(虚拟机)与存储资源(NAS)的完美剥离与融合!


九、高阶排障篇:虚拟机硬盘扩容不迷路

如果某天你连虚拟机本身的 20G 系统盘都塞满了,如何在不重装系统的情况下扩容?

  1. 首先在群晖 VMM 面板中关闭虚拟机,编辑配置,把虚拟硬盘从 20G 改为 50G,开机。
  2. 进入 Debian 后,系统虽然看到了 50G 硬盘,但现有的文件系统仍然被困在旧的 20G 边界内。
  3. 安装扩容工具套件:

    sudo apt-get install cloud-guest-utils
  4. 查看块设备(确定你的盘是 vda,分区是 1 还是 3):

    lsblk
  5. 热拉伸分区边界(注意设备名和数字中间有空格,这里以 vda1 为例):

    sudo growpart /dev/vda 1
  6. 刷新 ext4 文件系统容量:

    sudo resize2fs /dev/vda1

    再次输入 df -h,你会发现根目录 / 的可用空间瞬间变大,且全过程业务无需中断,数据毫发无伤。


十、写在最后

折腾群晖虚拟机的终点,绝不仅仅是“能开机、能装上”而已。从替换国内镜像源解决最初的依赖地狱,到深入底层拥抱 VirtIO 与 QGA 的性能优化;从严防死守的 SSH 密钥加固,到搭建正统血脉的 Docker 引擎;再到通过 NFS 打通计算与存储的边界,这背后涵盖了极为广阔的 Linux 运维知识面。

每一次在黑框框(终端)里敲下回车解决一个 Error,都是我们在探索开源世界里迈出的坚实一步。希望这篇万字超详尽的踩坑与进阶优化指南,能成为大家折腾家庭实验室(Homelab)道路上最硬核的参考手册。

注意事项:
  • 版权说明:本站资源博主亲自踩坑记录实践,仅供学习交流,严禁商用。
  • 服务说明:本站提供技术资料分享,请教问题请评论区咨询博主。
  • 引用规范:转载本文请务必注明原文链接,尊重博主劳动成果。
  • 关于隐私:请查看隐私政策。
0

评论 (0)

取消