Total Pageviews

Tuesday, 14 March 2023

通过LXD/LXC命令批量或单独开设NAT服务器以及维护.

 通过LXD/LXC命令批量或单独开设NAT服务器以及维护(简称母鸡开小鸡)(Bulk or individual NAT server provisioning and maintenance via LXD/LXC commands).

https://t.me/VPS_spiders

更新时间:2023.03.04

待解决的问题

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

一键母鸡开小鸡

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

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

  • 已屏蔽容器内可能用于滥用的工具包和IPV4网络的TCP/UDP协议的端口( 3389 8888 54321 65432 ),以防止容器被用于扫描和爆破,且可外置进程检查有问题自动停机

  • 已支持一键为LXC容器配置IPV6地址(前提是母鸡有IPV6子网,无IPV6地址则不配置)

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

  • 一定要在 /root 的路径下运行本仓库脚本,且使用实验性一键脚本不要删除路径下的ssh.shconfig.sh文件

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

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

  • 一键脚本支持自定义限制所有内容

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

  • 批量生成NAT服务器

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

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

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

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

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

  • 环境要求:推荐为Ubuntu系统,Debian系统会出现zfs问题,只能使用手动事先安装zfs解决
  • 只生成一个NAT服务器

一键安装lxd环境

下载文件
curl -L https://raw.githubusercontent.com/spiritLHLS/lxc/main/lxdinstall.sh -o lxdinstall.sh && chmod +x lxdinstall.sh
设置母鸡内存虚拟化大小以及资源池硬盘大小
./lxdinstall.sh 内存大小以MB计算 硬盘大小以GB计算

只开一个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计算,下载速度上传速度以Mbit计算,是否启用IPV6不一定要填Y或者N,没有这个参数也行

如果外网起端口外网止端口都设置为0则不做区间外网端口映射了,只映射基础的SSH端口,注意不能为空,不进行映射需要设置为0

./buildone.sh 小鸡名称 内存大小 硬盘大小 SSH端口 外网起端口 外网止端口 下载速度 上传速度 是否启用IPV6(Y or N)

示例

./buildone.sh test 256 2 20001 20002 20025 300 300 N

这样就是创建一个名为test的小鸡,内存256MB,硬盘2G,SSH端口20001,内外网起止端口20002~20025,下载和上传速度都设置为300Mbit,且不自动设置外网IPV6地址

其他配置

自动配置IPV6地址
  • (非必须,该脚本仅适用于母鸡有给IPV6子网且母鸡绑定了子网的第一个IPV6,不使用的也没问题)
  • 自动为LXD创建的LXC容器配置IPV6地址
  • 已集成到buildone中可使用变量控制,该脚本可不手动使用,在使用buildone时配置Y开启即可

下载脚本

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

自动为容器配置IPV6映射地址

bash build_ipv6_network.sh 容器名称

映射完毕会打印信息

示例(给test容器自动配置IPV6地址,配置完成会写入一个test_v6的文件信息)

bash build_ipv6_network.sh test
屏蔽容易被滥用的端口的出入流量以屏蔽端口和屏蔽滥用工具包
  • (非必须,该脚本仅仅是为了防止容器滥用方便,不装的也没问题)
curl -L https://github.com/spiritLHLS/lxc/raw/main/rules.sh -o rules.sh && chmod +x rules.sh && bash rules.sh
配置监控屏蔽某些进程的执行,遇到某些进程的出现直接关闭容器
  • 如需停止监控可使用screen命令停止lxc_moniter这个名字的窗口并删除
  • (非必须,该脚本仅仅是为了防止容器滥用方便,不装的也没问题)
curl -L https://github.com/spiritLHLS/lxc/raw/main/build_monitor.sh -o build_monitor.sh && chmod +x build_monitor.sh && bash build_monitor.sh
一键安装开lxd母鸡所需要的带vnstat环境的常用预配置环境
  • (非必须,该脚本仅仅是为了站点对接监控方便,不装的也没问题)
curl -L https://raw.githubusercontent.com/spiritLHLS/lxc/main/backend.sh -o backend.sh && chmod +x backend.sh && bash backend.sh

致谢

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

https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028

感谢 @Ella-Alinda @fscarmen 提供的指导

友链

VPS融合怪测评脚本

https://github.com/spiritLHLS/ecs

朋友写的针对合租服务器使用的(需要有一定的LXD或LXC基础,否则你看不懂部分设置)(更新可能有点缓慢)

https://github.com/MXCCO/lxdpro

from https://github.com/spiritLHLS/lxc 

----------------------------------------------------

related posts:

https://briteming.blogspot.com/2021/06/ubuntu.html (LXC Container部分)

https://briteming.blogspot.com/2020/04/lxdweb.html

 

No comments:

Post a Comment