
本文发布于376天前,最后更新于371天前,其中的信息可能有所发展或是发生改变
你会如何在服务器配置和数量方面进行选择呢?
是购买一台配置高的服务器,还是选择购买多台配置低的服务器呢?
夜梦选择后者,毕竟高配服务器对夜梦来说没用。最近夜梦一直在折腾,多点服务器就可以部署多个项目,几个小项目可以同时跑。
此外,最近夜梦 闲的没事干 想要学习学习虚拟化方面的知识,于是找到了一个名为“一键虚拟化项目”的资源,借助该项目可以在一台主机上创建多个虚拟机,实现多“一机多用”!
一键虚拟化项目 | 开源、易于使用的服务器虚拟化项目 (spiritlhl.net)
夜梦使用LXD方法,具体参考:系统与硬件配置要求 | LXD
夜梦使用的服务器为:
夜梦开的小机在两服务商机器上面已经测试成功!
官网给的步骤已经十分详细,夜梦这里仅仅做简单叙述。
fdisk -l和df查看使用后续脚本的务必执行本命令检测宿主机是否符合要求
国际
bash <(wget -qO- --no-check-certificate https://raw.githubusercontent.com/spiritLHLS/lxd/main/scripts/pre_check.sh)国内
bash <(wget -qO- --no-check-certificate https://ghproxy.com/https://raw.githubusercontent.com/spiritLHLS/lxd/main/scripts/pre_check.sh)夜梦这里仅介绍手动安装过程(方便排查Bug)。
apt update
apt install curl wget sudo dos2unix ufw jq -y
ufw disable虚拟内存的大小看你需要开多少台机器。
举个例子:如果你每台机器内存开256M,开8台,则换算下来需要2G内存。但是如果你的宿主机实际内存只有512MB,那么你就至少还需要1.5G的虚拟内存,保守点开2G虚拟内存即可。不就是超开嘛!实际swap开的虚拟内存最好是实际内存的2倍(影响小),按照例子来说也就是1GB。
执行下面命令,输入1,再输入2048,代表开2G虚拟内存
国际
curl -L https://raw.githubusercontent.com/spiritLHLS/lxd/main/scripts/swap.sh -o swap.sh && chmod +x swap.sh && bash swap.sh国内
curl -L https://ghproxy.com/https://raw.githubusercontent.com/spiritLHLS/lxd/main/scriptapt install snapd -y
snap install lxd
/snap/bin/lxd init如果上面的命令中出现下面的错误
(snap "lxd" assumes unsupported features: snapd2.39 (try to update snapd and refresh the core snap))使用命令修补后再进行lxd的安装
snap install core如果无异常,一般的选项回车默认即可。其中两项需要注意一下:
测试lxc有没有软连接上
lxc -h如果报错则执行以下命令软连接lxc命令:
! lxc -h >/dev/null 2>&1 && echo 'alias lxc="/snap/bin/lxc"' >> /root/.bashrc && source /root/.bashrc
export PATH=$PATH:/snap/bin连接后再测试lxc命令是否有报错找不到。
只生成一个NAT服务器,可自定义限制所有内容
脚本下载:
国际
curl -L https://ghproxy.com/https://raw.githubusercontent.com/spiritLHLS/lxd/main/scripts/buildone.sh -o buildone.sh && chmod +x buildone.sh && dos2unix buildone.sh国内
curl -L https://ghproxy.com/https://ghproxy.com/https://raw.githubusercontent.com/spiritLHLS/lxd/main/scripts/buildone.sh -o buildone.sh && chmod +x buildone.sh && dos2unix buildone.sh./buildone.sh 小鸡名称 内存大小 硬盘大小 SSH端口 外网起端口 外网止端口 下载速度 上传速度 是否启用IPV6(Y or N) 系统(留空则为debian11)内存大小以MB计算,硬盘大小以GB计算,下载速度上传速度以Mbit计算,是否启用IPV6不一定要填Y或者N,没有这个参数也行,留空默认不开启IPV6
如果外网起端口和外网止端口都设置为0则不做区间外网端口映射了,只映射基础的SSH端口,注意不能为空,不进行映射需要设置为0
支持自定义小鸡的系统,不填写留空时默认使用debian11,注意传入参数为系统名字+版本号,如:
./buildone.sh test 256 2 20001 20002 20025 500 500 N`小鸡名字` - test
`SSH登录的用户名` - root
`SSH登录的密码` - 随机生成
`CPU核数` - 1
`内存大小` - 256MB
`磁盘大小` - 2G
`内外网映射端口一致的区间` - 20002到20025
`上传带宽` - 500Mbit
`下载带宽` - 500Mbit
`自动设置外网IPV6地址` - N
`系统` - debian11需要查看信息则执行
cat 小鸡名字比如查询示例的信息就是
cat test如果已通过以上方法生成过小鸡,还需要批量生成小鸡,可使用自定义批量生成版本的脚本,但注意先删除测试小鸡再进行批量生成小鸡
lxc stop test
lxc delete test
rm -rf test
rm -rf test_v6
ls开出的小鸡配置:
TIP lxc若命令无问题,执行初始化开小鸡,这一步最好放
screen中后台挂起执行,开小鸡时长与你开几个和母鸡配置相关
执行下面命令加载开机脚本
国际
curl -L https://raw.githubusercontent.com/spiritLHLS/lxd/main/scripts/init.sh -o init.sh && chmod +x init.sh && dos2unix init.sh国内
curl -L https://ghproxy.com/https://raw.githubusercontent.com/spiritLHLS/lxd/main/scripts/init.sh -o init.sh && chmod +x init.sh && dos2unix init.sh下面命令为开小鸡名字前缀为tj的10个小鸡
./init.sh tj 10有时候init.sh的运行路径有问题,此时建议前面加上sudo强制根目录执行
开出的小鸡配置:
TIP lxc若命令无问题,执行初始化开小鸡,这一步最好放
screen中后台挂起执行,开小鸡时长与你开几个和母鸡配置相关
加载开机脚本
国际
curl -L https://raw.githubusercontent.com/spiritLHLS/lxd/main/scripts/least.sh -o least.sh && chmod +x least.sh && dos2unix least.sh国内
curl -L https://ghproxy.com/https://raw.githubusercontent.com/spiritLHLS/lxd/main/scripts/least.sh -o least.sh && chmod +x least.sh && dos2unix least.sh下列命令最后一行为开小鸡名字前缀为tj的10个小鸡
./least.sh tj 10有时候least.sh的运行路径有问题,此时建议前面加上sudo强制根目录执行
如果需要多次批量生成小鸡,可使用
国际
curl -L https://github.com/spiritLHLS/lxd/raw/main/scripts/add_more.sh -o add_more.sh && chmod +x add_more.sh && bash add_more.sh国内
curl -L https://ghproxy.com/https://github.com/spiritLHLS/lxd/raw/main/scripts/add_more.sh -o add_more.sh && chmod +x add_more.sh && bash add_more.sh可多次运行批量生成小鸡,且继承前面已生成的部分在后面添加,可自定义内存和硬盘大小
开完小鸡后,具体信息会生成在当前目录下的log文件中,格式如下
1号服务器名称 密码 ssh端口 外网端口起始 外网端口终止
2号服务器名称 密码 ssh端口 外网端口起始 外网端口终止如果想要查看,只需在当前目录执行以下命令打印log文件即可
cat logWARNING
不要拿该脚本开出的小鸡当生产环境,LXC虚拟化不支持换内核,dd,开启bbr等操作
查看所有
lxc list查看个例
lxc info 服务器名字启动个例
lxc start 服务器名字停止个例
lxc stop 服务器名字删除个例
lxc delete -f 服务器名字进入内部
lxc exec 服务器名字 /bin/bashTIP 在alpine中不用/bin/bash而是用/bin/sh,常规的系统都是/bin/bash 退出则输入
exit回车即可
删除所有LXC容器
lxc list | awk '{print $2}' | grep -v "^$" | xargs -I {} lxc delete -f {}在容器内执行删除无用日志
sudo apt-get autoremove
sudo apt-get clean
sudo find /var/log -type f -delete
sudo find /var/tmp -type f -delete
sudo find /tmp -type f -delete
sudo find /var/cache/apt/archives -type f -delete删除原始配置脚本
rm -rf /usr/local/bin/alpinessh.sh
rm -rf /usr/local/bin/config.sh
rm -rf /usr/local/bin/ssh.sh
rm -rf /usr/local/bin/check-dns.sh
rm -rf /root/alpinessh.sh
rm -rf /root/config.sh
rm -rf /root/ssh.sh
rm -rf /root/buildone.sh
rm -rf /root/add_more.sh下载回新版本的相关配置脚本
wget https://raw.githubusercontent.com/spiritLHLS/lxd/main/scripts/check-dns.sh -O /usr/local/bin/check-dns.sh && chmod +x /usr/local/bin/check-dns.sh
wget https://raw.githubusercontent.com/spiritLHLS/lxd/main/scripts/config.sh -O /usr/local/bin/config.sh && chmod +x /usr/local/bin/config.sh
wget https://raw.githubusercontent.com/spiritLHLS/lxd/main/scripts/ssh.sh -O /usr/local/bin/ssh.sh && chmod +x /usr/local/bin/ssh.sh
wget https://raw.githubusercontent.com/spiritLHLS/lxd/main/scripts/alpinessh.sh -O /usr/local/bin/alpinessh.sh && chmod +x /usr/local/bin/alpinessh.sh其他一键脚本自己对应下载回来就行了
lxc config set core.https_address [::]
lxc config set core.trust_password some-secret-string
snap install lxdmosaic安装完毕后打开宿主机IP地址,按照提示设置admin的密码,其他一路默认就能使用面板了