人们常说,「精神病人思路广,智障儿童欢乐多」。像我这种病得不轻的人,自然就在想有没有办法拿docker来开NAT小鸡呢?
Docker作为一种容器化技术,通过cgroup可以在一定程度上做到资源隔离,虽然不算虚拟化,但是也可以勉强开NAT小鸡玩玩。技术要点大概有如下:
- 小鸡里需要ssh,而且需要一个守护进程
- 需要映射端口
- 需要限制CPU、内存等资源
- 制作各种OS的image
容器sshd
N多年前,当我第一次接触到Docker时,我曾经在网络上搜索“如何ssh到容器内”。
(╯‵□′)╯︵┴─┴ 容器一般不是这么用的啦。
但既然开NAT小鸡,就必然要ssh进去了。通常来说就是在容器里安装配置sshd或者dropbear,然后把端口publish就可以了。直接&可不太好,更好的方案是我们需要一个守护进程。可以用Go port of supervisor,https://github.com/ochinchina/supervisord
映射端口
这个就简单了,跑容器的时候直接 -p就好了,由于是NAT小鸡,直接让docker随机分配端口岂不是更好!
docker run -p 22 image
限制资源
限制CPU和RAM比较容易,run的时候加上-cpus
和-m
就可以了
限制磁盘比较麻烦,可以参考这篇 https://www.lizi.tw/web/21084.html
OS image
这个其实就是个手工活,写好Dockerfile,带好sshd,然后build就可以了。
然后到了真正要开小鸡的时候,一顿查之前的命令,不停地docker run xxx,有没有更好的、鼠标点点点的方案呢?答案当然是有的!
欢迎使用我fork之后魔改的Docker Web,真正实现了鼠标点点点即可开NAT小鸡的功能!
https://github.com/BennyThink/EasyDockerWeb
clone回来,yarn && yarn start
,然后fab prepare
(提前pip3 install fabric3
)即可,默认用户名密码是admin/admin
在Image下面可以选择所有我构建好的image,用户名密码均为root/root
比如这里我们选择Kali,然后给这个小鸡开80和443端口,并映射到宿主机的随机端口,512M内存,0.5个CPU
点击确认,你的NAT小鸡就开好了!
点击确认
你的小鸡好了,赶快ssh一下?
选择Debian Sid,80-90端口
多么亦可赛艇!就是这么愉快!bug多也不修,能开小鸡就挺好
--本评论由Telegram Bot回复~❤️
--本评论由Telegram Bot回复~❤️