使用docker架设NAT机器
docker
通过docker批量或单独开设NAT服务器(Bulk or individual NAT server provisioning via docker)
默认使用debian系统,每个容器自带1个外网ssh端口,25个内外网一致端口
默认创建的是非特权容器,且不挂载与宿主机的docker的守护进程之间的通信,所以宿主机创建的docker虚拟化的NAT服务器内无法再嵌套虚拟化docker
由于只是在宿主机进行了CPU和内存的限制未在容器内使用cgroup驱动,所以在容器内使用服务器测试脚本检测容器的可用资源是无效的,显示的会是宿主机的资源
由于大部分云服务器xfs文件系统不启用pquota选项,所以默认共享宿主机硬盘,无法限制每个容器的磁盘大小
原作者项目地址:点击跳转
配置要求
系统可安装docker即可用,网络能连接Github的raw界面就能用,硬件配置只要不拉跨就行,空闲硬盘有3G就行
推荐在开设NAT服务器前先增加部分SWAP虚拟内存,避免突发的内存占用导致母鸡卡死 跳转
环境预设
- 检测环境
- 安装docker
- 下载预制脚本
1 | curl -L https://raw.githubusercontent.com/spiritLHLS/docker/main/scripts/pre_build.sh -o pre_build.sh && chmod +x pre_build.sh && bash pre_build.sh |
单独开设
下载脚本
1 | curl -L https://raw.githubusercontent.com/spiritLHLS/docker/main/scripts/onedocker.sh -o onedocker.sh && chmod +x onedocker.sh |
运行
1 | ./onedocker.sh name cpu memory password sshport startport endport system |
目前system仅支持选择alpine或debian,默认是debian
示例
将开设1核512MB内存,root的密码是123456,SSH端口映射至外网25000,批量映射的端口区间为34975到35000,此区间内外网端口一致,系统为debian
1 | ./onedocker.sh test 1 512 123456 25000 34975 35000 debian |
删除示例
1 | docker rm -f test |
进入示例
1 | docker exec -it test /bin/bash |
查询信息
1 | cat 容器名字 |
输出格式
1 | 容器名字 SSH端口 登陆的root密码 核数 内存 外网端口起 外网端口止 |
批量开设
- 批量多次运行继承配置生成
- 生成多个时为避免SSH连接中断建议在screen中执行
1 | curl -L https://raw.githubusercontent.com/spiritLHLS/docker/main/scripts/dockers.sh -o dockers.sh && chmod +x dockers.sh && bash dockers.sh |
卸载所有docker容器和镜像
1 | docker rm -f $(docker ps -aq); docker rmi $(docker images -aq) |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 六爺的博客!
评论