1、注册阿里云并实名认证
2、下载qcow2格式系统镜像
1、验证可用的镜像下载
下载地址:https://nwt2vfwrjfh.feishu.cn/drive/folder/HrhLfSOIzl0Iyyd9gAEcOMrynRe?from=from_copylink
2、以下镜像都是官网下载的,apline不可用
下载地址:下载 Debian
文件名:debian-13-generic-amd64.qcow2 大小412MB
下载链接:https://gemmei.ftp.acc.umu.se/images/cloud/trixie/latest/debian-13-generic-amd64.qcow2
或者使用apline linux的镜像,我这里都是使用x86_64架构的。使用apline linux的镜像创建服务器后无法登陆,不推荐使用apline linux的镜像。
文件名:generic_alpine-3.22.0-x86_64-bios-cloudinit-r0.qcow2 大小186MB
下载地址:alpine-v3.22-releases-cloud安装包下载_开源镜像站-阿里云
或者从Apline 官网下载以下镜像
官网地址:cloud | Alpine Linux
文件名:generic_alpine-3.22.1-x86_64-bios-cloudinit-r0.qcow2 大小186MB
我们这里是虚拟机,所以metal的不适用。
还可以使用immortalwrt的镜像。
下载地址:https://immortalwrt.kyarucloud.moe/releases/24.10.2/targets/x86/64/
文件名:immortalwrt-24.10.2-x86-64-generic-ext4-combined-efi.qcow2.gz
immortalwrt-24.10.2-x86-64-generic-ext4-combined-efi.qcow2 大小52MB
3、上传镜像到阿里云对象存储-以debian为例
打开阿里云对象存储控制台,创建桶,将debian qcow2镜像上传到桶里面。
在桶里面找到镜像文件,查看详情,得到文件的URL链接
https://debian-os-qcow2.oss-cn-wulanchabu.aliyuncs.com/debian-13-generic-amd64.qcow2
4、导入镜像
打开ECS控制台,镜像,导入镜像。
在云盘配置里面配置云盘大小为1G或者3G,然后点击确定导入。
如果使用apline镜像,导入时候平台选择Customized Linux,启动方式选择BIOS
如果使用immortalwrt镜像,导入时候平台选择Other Linux,启动方式选择UEFI
5、购买云服务
1、如果使用debian-13-generic-amd64.qcow2 镜像,使用流量流量计费,系统盘至少3GB,购买成功后再控制台重置实例密码,重启服务器。
2、如果使用generic_alpine-3.22.1-x86_64-bios-cloudinit-r0.qcow2 镜像,使用流量流量计费,系统盘可以设置成1G。
3、如果使用immortalwrt.qcow2 镜像,使用流量流量计费,系统盘可以设置成1G。
因为debian镜像默认禁止root SSH登录,首先得在阿里云控制台使用VNC远程登录服务器,创建一个普通用户,并且为普通用户创建密码。
可以只先购买一周,如果觉得好用,就继续续费。
打开云数据传输控制台,升级CDT流量(每月有20G免费额度):
6、SSH连接服务器并安装docker
使用普通用户SSH连接服务器,如需要root,可以自行修改SSH配置文件,使得能使用ROOT ssh登录。
/etc/ssh/sshd_config
在这个配置文件中加入如下一行
PermitRootLogin yes # 允许root用户登录
重启SSHd
systemctl restart sshd
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
# step 2: 信任 Docker 的 GPG 公钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Step 3: 写入软件源信息
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Step 4: 安装Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# apt-cache madison docker-ce
# docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1~ce-0~ubuntu-xenial)
# sudo apt-get -y install docker-ce=[VERSION]
7、最后删除桶以及删除导入的自定义镜像
如果不删除,可能会扣费。
镜像可以直接删除。对象存储先删除桶里面的文件,再删除桶。
8、演示视频 已上传B站
https://space.bilibili.com/670207031?spm_id_from=333.337.0.0
配置alpine软件源
配置方法
a. 编辑 /etc/apk/repositories
b. 将里面 dl-cdn.alpinelinux.org 的 改成 mirrors.aliyun.com ; 保存退出即可
vi /etc/apk/repositories
localhost:~# cat /etc/apk/repositories
https://mirrors.aliyun.com/alpine/v3.21/main
https://mirrors.aliyun.com/alpine/v3.21/community
#https://dl-cdn.alpinelinux.org/alpine/v3.21/
#https://dl-cdn.alpinelinux.org/alpine/v3.21/community
#https://dl-cdn.alpinelinux.org/alpine/v3.21/testing
localhost:~#
9、附录:使用immortalwrt镜像后续配置
1、immortalwrt服务器启动后需要在阿里云控制台通过VNC远程服务器,然后按以下步骤修改/etc/config/network配置后重启服务器,才可以通过SSH登录。
vi /etc/config/network
root@ImmortalWrt:~# cat /etc/config/network
config interface 'loopback'
option device 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fdf0:a266:564b::/48'
option packet_steering '1'
config device
option name 'br-lan'
option type 'bridge'
list ports 'eth0'
config interface 'lan'
option device 'br-lan'
option proto 'dhcp'
# option ipaddr '192.168.1.1'
# option netmask '255.255.255.0'
option ip6assign '60'
主要修改成以下部分
option proto 'dhcp'
# option ipaddr '192.168.1.1'
# option netmask '255.255.255.0'
2、控制台安全组放开80端口,扩容软件安装空间
#ssh连接immortalwrt,依次输入以下命令:
fdisk /dev/vda #回车
n #回车 3次
w##回车 1次
#格式化
mkfs.ext4 /dev/vda3
然后可以看到多出来了一个vda3
最后在web界面挂载vda3到/overlay ,操作步骤如下:
在 ImmortalWrt 的 Web 管理界面,进入 系统 -> 挂载点
找到挂载点 ,点击 添加。UUID选择
/dev/vda3
挂载点 选择 作为外部文件系统使用 (
/overlay
)。勾选启用,然后保存并应用完成挂载,直接重启路由器检查空间变大
3、控制台安全组放开80端口,路由器访问immortalwrt web管理界面设置密码;安装主题包、安装FRPS插件以及其他自己所需插件。
4、在 ImmortalWrt 中让二进制软件以守护进程方式运行,核心是确保程序能在后台持续稳定工作,并在系统启动时自动运行。ImmortalWrt 作为 OpenWrt 的分支,提供了 procd
(OpenWrt 的进程管理守护进程)这一强大工具来简化管理。
使用 procd (推荐)
procd
是 OpenWrt/ImmortalWrt 专用的进程管理守护进程,用于控制服务的启动、停止和重启,并提供守护功能。这是最推荐的方法,因为它能很好地与系统集成。
创建服务配置文件:
服务文件通常存放在 /etc/init.d/
目录下,命名遵循习惯,例如 my_daemon
。
#!/bin/sh /etc/rc.common
# 使用 procd 的初始化脚本示例
START=95 # 启动顺序,数字越大越晚启动
STOP=10 # 停止顺序,数字越小越早停止
USE_PROCD=1 # 明确使用 procd
DESC="My Custom Daemon" # 服务描述
start_service() {
procd_open_instance # 开启一个 procd 实例
procd_set_param command /usr/bin/my_daemon # 要执行的命令或二进制文件路径
procd_set_param respawn # 进程意外退出时自动重启
procd_set_param stdout 1 # 重定向标准输出到系统日志(logread)
procd_set_param stderr 1 # 重定向标准错误到系统日志
procd_set_param user nobody # 以 nobody 用户身份运行(可选,增强安全性)
procd_close_instance # 关闭 procd 实例
}
/usr/bin/my_daemon
是你的二进制文件的路径。respawn
参数确保你的进程退出后会自动重新启动。输出的日志可以通过
logread
命令查看。
设置权限并启用服务:
上传你的二进制文件到 /usr/bin/
并赋予可执行权限后,这样操作:
chmod +x /usr/bin/my_daemon # 赋予二进制文件可执行权限
chmod +x /etc/init.d/my_daemon # 赋予服务脚本可执行权限
/etc/init.d/my_daemon enable # 启用服务,使其在系统启动时自动运行
/etc/init.d/my_daemon start # 立即启动服务
之后,你可以使用以下命令管理服务:
service my_daemon start # 启动
service my_daemon stop # 停止
service my_daemon restart # 重启
service my_daemon status # 查看状态
10、修改qcow2格式镜像密码脚本
将镜像文件和脚本放在/opt目录下载,切换到/opt目录,运行脚本,然后再将qcow2镜像文件下载回去
你可以运行以下脚本来一次性解决大多数常见问题:
#!/bin/bash
# 安装必要依赖
if [ -f /etc/redhat-release ]; then
sudo yum install -y libvirt virt-install libguestfs-tools
elif [ -f /etc/debian_version ]; then
sudo apt-get update
sudo apt-get install -y libvirt-daemon-system libvirt-clients libguestfs-tools
fi
# 启动 libvirt 服务
sudo systemctl start libvirtd
sudo systemctl enable libvirtd
# 设置用户组
sudo usermod -a -G libvirt $(whoami)
sudo usermod -a -G kvm $(whoami)
# 设置 KVM 设备权限
sudo chmod 666 /dev/kvm
# 设置环境变量
export LIBGUESTFS_DEBUG=1
export LIBGUESTFS_TRACE=1
# 重新运行命令#将root密码修改为root
echo "尝试重新运行 virt-customize 命令..."
sudo virt-customize -v -x -a generic_alpine-3.21.2-x86_64-uefi-tiny-r0.qcow2 --root-password password:root