LXC虚拟化
单独生成一个NAT容器
- 只生成一个NAT容器,可自定义限制所有内容
下载开机脚本是非必须的,如果你使用过一键安装LXD的命令,自动已下载对应的开机脚本,不需要重复下载该脚本
国际
curl -L https://raw.githubusercontent.com/oneclickvirt/lxd/main/scripts/buildct.sh -o buildct.sh && chmod +x buildct.sh && dos2unix buildct.sh国内
curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/lxd/main/scripts/buildct.sh -o buildct.sh && chmod +x buildct.sh && dos2unix buildct.sh使用方法
./buildct.sh 容器名称 CPU核数 内存大小 硬盘大小 SSH端口 外网起端口 外网止端口 下载速度 上传速度 是否启用IPV6(Y or N) 系统(留空则为debian12)CPU核数需小于或等于宿主机核数;内存单位为 MB,硬盘单位为 GB,下载/上传速度单位为 Mbit。是否启用 IPv6 可填 Y 或 N,也可留空(默认不开启)。
如果外网起端口和外网止端口都设置为 0,则不做区间外网端口映射,只映射基础 SSH 端口。注意这两个参数不能为空,不进行映射时需填写 0。
支持自定义容器的系统,不填写留空时默认使用debian12,注意传入参数为系统名字+版本号,如:
- debian12,debian13
- ubuntu22,ubuntu24
- centos8,centos9 (实际都是Stream版本)
- alpine3.16,alpine3.17,alpine3.18,alpine3.19
- 注意都是小写字母+数字的组合或仅小写字母,自行尝试,如果搜索无该系统则会自动退出脚本
- 版本号可以带英文小数点,为了适配alpine的版本号已支持
- 开不起来的可能是硬盘或内存不够大或者本身就不适配宿主机,自行尝试查看开不起来的报错
- 目前使用的容器系统有三重筛选,优先级:自编译、官方、opsmaru
- 自编译镜像完整的支持系统的列表:x86_64_all_images.txt 和 arm64_all_images.txt
示例
以下为开设的示例容器的信息:
| 属性 | 值 |
|---|---|
| 容器名字 | test |
| SSH登录的用户名 | root |
| SSH登录的密码 | 随机生成 |
| CPU核数 | 1 |
| 内存大小 | 256MB |
| 磁盘大小 | 2G |
| 内外网映射端口一致的区间 | 20002到20025 |
| 上传带宽 | 500Mbit |
| 下载带宽 | 500Mbit |
| 自动设置外网IPV6地址 | N |
| 系统 | debian13 |
./buildct.sh test 1 256 2 20001 20002 20025 500 500 N debian13需要进入容器内部则执行
lxc exec test /bin/bash退出则输入exit回车即可
需要查看信息则执行
cat 容器名字比如查询示例的信息就是
cat test如果已通过以上方法生成过容器,还需要批量生成容器,可使用自定义批量生成版本的脚本,但注意先删除测试容器再进行批量生成容器
删除测试容器
lxc stop test
lxc delete test
rm -rf test
rm -rf test_v6
ls2
3
4
5
普通版本批量生成
开出的容器配置:
- 1核256MB内存1GB硬盘限速300Mbit带宽
- 带1个SSH端口,24个外网端口
- 默认内存和硬盘大小
TIP
lxc若命令无问题,执行初始化开容器,这一步最好放screen中后台挂起执行,开容器时长与你开几个和宿主机配置相关
执行下面命令加载开机脚本
国际
curl -L https://raw.githubusercontent.com/oneclickvirt/lxd/main/scripts/init.sh -o init.sh && chmod +x init.sh && dos2unix init.sh国内
curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/lxd/main/scripts/init.sh -o init.sh && chmod +x init.sh && dos2unix init.sh下面命令为开容器名字前缀为tj的10个容器
./init.sh tj 10init.sh会自动切换到/root目录执行,请使用root权限运行。
纯SSH端口版本批量生成
开出的容器配置:
- 1核128MB内存1GB硬盘限速300Mbit带宽
- 只有一个SSH端口
- 无法挂载warp
TIP
lxc若命令无问题,执行初始化开容器,这一步最好放screen中后台挂起执行,开容器时长与你开几个和宿主机配置相关
加载开机脚本
国际
curl -L https://raw.githubusercontent.com/oneclickvirt/lxd/main/scripts/least.sh -o least.sh && chmod +x least.sh && dos2unix least.sh国内
curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/lxd/main/scripts/least.sh -o least.sh && chmod +x least.sh && dos2unix least.sh下列命令最后一行为开容器名字前缀为tj的10个容器
./least.sh tj 10least.sh会自动切换到/root目录执行,请使用root权限运行。
自定义批量生成版本
- 可自定义内存和硬盘大小
- 有执行过上面的手动批量生成过也没问题,配置是继承的不覆盖
如果需要多次批量生成容器,可使用
国际
cd /root
curl -L https://github.com/oneclickvirt/lxd/raw/main/scripts/add_more.sh -o add_more.sh && chmod +x add_more.sh && bash add_more.sh2
国内
cd /root
curl -L https://cdn.spiritlhl.net/https://github.com/oneclickvirt/lxd/raw/main/scripts/add_more.sh -o add_more.sh && chmod +x add_more.sh && bash add_more.sh2
可多次运行批量生成容器,且继承前面已生成的部分在后面添加,可自定义内存和硬盘大小
查看已批量开设的信息
开完容器后,具体信息会生成在/root/log文件中,普通批量版本的格式如下
1号容器名称 ssh端口 密码 外网端口起始 外网端口终止
2号容器名称 ssh端口 密码 外网端口起始 外网端口终止2
纯SSH端口版本只记录容器名称、ssh端口和密码。自定义批量版本也会追加到/root/log。
如果想要查看普通批量版本的信息,执行以下命令打印log文件即可
cat /root/logWARNING
不要拿该脚本开出的容器当生产环境,LXC虚拟化不支持换内核,dd,开启bbr等操作
部分常用LXD命令
查看所有
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 -c n --format csv | 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 -delete2
3
4
5
6
更新上述所有一键脚本的相关命令
删除原始配置脚本
rm -rf /usr/local/bin/ssh_sh.sh
rm -rf /usr/local/bin/config.sh
rm -rf /usr/local/bin/ssh_bash.sh
rm -rf /usr/local/bin/check-dns.sh
rm -rf /root/ssh_sh.sh
rm -rf /root/config.sh
rm -rf /root/ssh_bash.sh
rm -rf /root/buildct.sh
rm -rf /root/add_more.sh
rm -rf /root/build_ipv6_network.sh2
3
4
5
6
7
8
9
10
下载回新版本的相关配置脚本
curl -sSL https://raw.githubusercontent.com/oneclickvirt/lxd/main/scripts/check-dns.sh -o /usr/local/bin/check-dns.sh && chmod +x /usr/local/bin/check-dns.sh
curl -sSL https://raw.githubusercontent.com/oneclickvirt/lxd/main/scripts/config.sh -o /usr/local/bin/config.sh && chmod +x /usr/local/bin/config.sh
curl -sSL https://raw.githubusercontent.com/oneclickvirt/lxd/main/scripts/ssh_bash.sh -o /usr/local/bin/ssh_bash.sh && chmod +x /usr/local/bin/ssh_bash.sh
curl -sSL https://raw.githubusercontent.com/oneclickvirt/lxd/main/scripts/ssh_sh.sh -o /usr/local/bin/ssh_sh.sh && chmod +x /usr/local/bin/ssh_sh.sh
curl -sSL https://raw.githubusercontent.com/oneclickvirt/lxd/main/scripts/build_ipv6_network.sh -o /root/build_ipv6_network.sh && chmod +x /root/build_ipv6_network.sh
curl -sSL https://raw.githubusercontent.com/oneclickvirt/lxd/main/scripts/buildct.sh -o /root/buildct.sh && chmod +x /root/buildct.sh2
3
4
5
6
其他一键脚本自己对应下载回来就行了
