通过LXD/LXC命令批量或单独开设NAT服务器以及维护(简称母鸡开小鸡)(Set up NAT servers in batches or individually through LXD/LXC

本文主要是介绍通过LXD/LXC命令批量或单独开设NAT服务器以及维护(简称母鸡开小鸡)(Set up NAT servers in batches or individually through LXD/LXC,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

lxc

原始仓库:https://github.com/spiritLHLS/lxc

更新时间:2023.01.15

待解决的问题

使得母鸡支持更多的系统版本

一键母鸡开小鸡

  • 已设置同时进行TCP和UDP转发,除了SSH端口其他的映射内网外网端口一致,且只适用于Ubuntu或Debian

  • 已设置支持开出的LXC容器进行docker嵌套虚拟

  • 本套脚本开发使用的Ubuntu20,Ubuntu别的长期维护版本应该也没问题,但debian系列多半有zfs的问题,自行解决

  • 一定要在 /root的路径下运行本仓库脚本

  • 保证你要开的盘为默认的系统盘(sda或者sda1)而不是挂载的盘(sdb之类的),不确定的使用fdisk -ldf查看

挂载其他盘的详看 其他说明

手动安装(新手推荐,避免有bug不知道怎么修)

普通版本(带1个SSH端口,25个外网端口)

开出的小鸡配置:1核256MB内存1GB硬盘限速250MB

自动关闭防火墙

apt update
apt install curl wget sudo dos2unix ufw -y
ufw disable

内存看你开多少小鸡,这里如果要开8个,换算需要2G内存,实际内存如果是512MB内存,还需要开1.5G,保守点开2G虚拟内存即可

执行下面命令,输入1,再输入2048,代表开2G虚拟内存

curl -L https://raw.githubusercontent.com/spiritLHLS/lxc/main/swap.sh -o swap.sh && chmod +x swap.sh && bash swap.sh

实际swap开的虚拟内存应该是实际内存的2倍,也就是开1G是合理的,上面我描述的情况属于超开了

apt 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

如果无异常,上面三行命令执行结果如下

一般的选项回车默认即可

选择配置物理盘大小(提示默认最小1GB那个选项),一般我填空闲磁盘大小减去内存大小后乘以0.95并向下取整

提示带auto的更新image的选项记得选no,避免更新占用

软连接lxc命令

! lxc -h >/dev/null 2>&1 && echo 'alias lxc="/snap/bin/lxc"' >> /root/.bashrc && source /root/.bashrc
export PATH=$PATH:/snap/bin

测试lxc有没有软连接上

lxc -h

lxc命令无问题,执行初始化开小鸡,这一步最好放screen中后台挂起执行,开小鸡时长与你开几个和母鸡配置相关

执行下面命令加载开机脚本

rm -rf init.sh
wget https://github.com/spiritLHLS/lxc/raw/main/init.sh
chmod 777 init.sh
apt install dos2unix -y
dos2unix init.sh

下面命令为开小鸡名字前缀为tj10个小鸡

./init.sh tj 10

有时候init.sh的运行路径有问题,此时建议前面加上sudo强制根目录执行

纯探针版本(只有一个SSH端口)

开出的小鸡配置:1核128MB内存300MB硬盘限速200MB

自动关闭防火墙

apt update
apt install curl wget sudo dos2unix ufw -y
ufw disable

内存看你开多少小鸡,这里如果要开10个,换算需要1G内存,实际内存如果是512MB内存,还需要开0.5G,保守点开1G虚拟内存即可

执行下面命令,输入1,再输入1024,代表开1G虚拟内存

curl -L https://raw.githubusercontent.com/spiritLHLS/lxc/main/swap.sh -o swap.sh && chmod +x swap.sh && bash swap.sh

实际swap开的虚拟内存应该是实际内存的2倍,也就是开1G是合理的,再多就超开了

apt 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

如果无异常,上面三行命令执行结果如下

一般的选项回车默认即可

选择配置物理盘大小(提示默认最小1GB那行),一般我填空闲磁盘大小减去内存大小后乘以0.95并向下取整

提示带auto的更新image的选项记得选no,避免更新占用

软连接lxc命令

! lxc -h >/dev/null 2>&1 && echo 'alias lxc="/snap/bin/lxc"' >> /root/.bashrc && source /root/.bashrc
export PATH=$PATH:/snap/bin

测试lxc有没有软连接上

lxc -h

lxc命令无问题,执行初始化开小鸡,这一步最好放screen中后台挂起执行,开小鸡时长与你开几个和母鸡配置相关

加载开机脚本

rm -rf least.sh
wget https://github.com/spiritLHLS/lxc/raw/main/least.sh
chmod 777 least.sh
apt install dos2unix -y
dos2unix least.sh

下列命令最后一行为开小鸡名字前缀为tj10个小鸡

./least.sh tj 10

有时候least.sh的运行路径有问题,此时建议前面加上sudo强制根目录执行

开完小鸡后,具体信息会生成在当前目录下的log文件中,格式如下

1号服务器名称 密码 ssh端口 外网端口起始 外网端口终止
2号服务器名称 密码 ssh端口 外网端口起始 外网端口终止

如果想要查看,只需在当前目录执行以下命令打印log文件即可

cat log
不要拿该脚本开出的小鸡当生产环境,lxc虚拟化不支持换内核,dd,开启bbr,探针鸡(普通版本无问题)挂载warp等操作

本仓库不提供lxc虚拟化使用的其他问题的解答,非脚本相关问题请自行解决

虚拟小鸡想要查看是否在线

查看所有

lxc list

查看个例

lxc info 服务器名字

启动个例

lxc start 服务器名字

停止个例

lxc stop 服务器名字

删除个例

lxc delete -f 服务器名字

进入内部

lxc exec 服务器名字 /bin/bash

退出则输入exit回车即可

实验性一键脚本(不保证无bug)

环境要求:推荐为Ubuntu系统,Debian系统会出现zfs问题,只能使用手动命令解决

一键安装lxd环境

下载文件

curl -L https://raw.githubusercontent.com/spiritLHLS/lxc/main/lxdinstall.sh -o lxdinstall.sh && chmod +x lxdinstall.sh

设置母鸡内存虚拟化大小以及资源池硬盘大小

./lxdinstall.sh 内存大小以MB计算 硬盘大小以GB计算

一键安装开lxd母鸡所需要的带vnstat环境的常用预配置环境

curl -L https://raw.githubusercontent.com/spiritLHLS/lxc/main/backend.sh -o backend.sh && chmod +x backend.sh && bash backend.sh
只开一个NAT服务器

下载开机脚本

rm -rf buildone.sh
wget https://github.com/spiritLHLS/lxc/raw/main/buildone.sh
chmod 777 buildone.sh
apt install dos2unix -y
dos2unix buildone.sh

开NAT服务器

内存大小以MB计算,硬盘大小以GB计算

./buildone.sh 小鸡名称 内存大小 硬盘大小 SSH端口 外网起端口 外网止端口

致谢

https://github.com/lxc/lxd

https://lxdware.com/

https://discuss.linuxcontainers.org/

https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4

https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3

这篇关于通过LXD/LXC命令批量或单独开设NAT服务器以及维护(简称母鸡开小鸡)(Set up NAT servers in batches or individually through LXD/LXC的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/189066

相关文章

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

JavaWeb-WebSocket浏览器服务器双向通信方式

《JavaWeb-WebSocket浏览器服务器双向通信方式》文章介绍了WebSocket协议的工作原理和应用场景,包括与HTTP的对比,接着,详细介绍了如何在Java中使用WebSocket,包括配... 目录一、概述二、入门2.1 POM依赖2.2 编写配置类2.3 编写WebSocket服务2.4 浏

查询SQL Server数据库服务器IP地址的多种有效方法

《查询SQLServer数据库服务器IP地址的多种有效方法》作为数据库管理员或开发人员,了解如何查询SQLServer数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松... 目录使用T-SQL查询方法1:使用系统函数方法2:使用系统视图使用SQL Server Configu

使用Python实现批量分割PDF文件

《使用Python实现批量分割PDF文件》这篇文章主要为大家详细介绍了如何使用Python进行批量分割PDF文件功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、架构设计二、代码实现三、批量分割PDF文件四、总结本文将介绍如何使用python进js行批量分割PDF文件的方法

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

mysqld_multi在Linux服务器上运行多个MySQL实例

《mysqld_multi在Linux服务器上运行多个MySQL实例》在Linux系统上使用mysqld_multi来启动和管理多个MySQL实例是一种常见的做法,这种方式允许你在同一台机器上运行多个... 目录1. 安装mysql2. 配置文件示例配置文件3. 创建数据目录4. 启动和管理实例启动所有实例

VScode连接远程Linux服务器环境配置图文教程

《VScode连接远程Linux服务器环境配置图文教程》:本文主要介绍如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详... 目录一、安装vscode二、环境配置1.中文汉化包2.安装remote-ssh,用于远程连接2.1安装2

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ