使用 docker 开 NAT 小鸡

实用教程 admin 来源:原文链接 3年前 (2022-05-08) 2389次浏览 2个评论

人们常说,「精神病人思路广,智障儿童欢乐多」。像我这种病得不轻的人,自然就在想有没有办法拿 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 随机分配端口岂不是更好!

  1. 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 多也不修,能开小鸡就挺好


VPS小白 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用 docker 开 NAT 小鸡
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 这种方法开的机器的CPU会不会太强了 一核心=真的一核心
    伊藤2022-07-25 06:37 回复
    • 你可以超开,超开很多……
      admin2022-07-25 13:52 回复