这是一个工具脚本,用来快速创建隔离的网络环境,可以完成端口映射,避免监听端口冲突等功能。
上学期期末时间数个后端大作业的 ddl 同时疯狂逼近,又由于俺习惯于从旧的 project 里面 copy 代码,也导致很多 project 端口号都是 8080 。结果导致在服务器上同时部署多个 project 时炸锅了,端口冲突是常事。但是以俺的性格,俺既不想重新打包 project,也不想产生改配置文件这样的无关紧要的 git commit 。遂想到之前学习的 namespace,于是乎,写了一个脚本来实现该想法,并发布到 github 上:
https://github.com/KB5201314/runnet
(不要脸地求 star )
这个脚本完成了 network namespace 的创建、forward 、端口映射一连串的步骤,我想对于在学习 namespace 的人来说,这也会是一个入手的好例子。
该脚本会操作 iptables,不保证在您的环境中不会出现问题,因此请不要在生产环境偷懒使用该工具,以免造成损失
这个和 docker 有啥关系
docker 也能完成端口映射,实际上命令参数的形式就是参考了 docker 。docker 不仅实现了 network 的隔离,还实现了其它层次的隔离,但是在我的需求中,只需要隔离 network 。
只能用来避免端口冲突吗?
有一个参数可以控制是否允许联网(是否转发容器内流量到外部),如果开启则该应用相当于断网运行。如果还有其它的点子,欢迎提 pr 。鲁迅曾经说过:more features, more code.
你不会写个 DockerFile 嘛?
docker 确实可以,但是俺是真的懒 XD
1
julyclyde 2020-08-03 11:20:24 +08:00
yet another
|