这是一个工具脚本,用来快速创建隔离的网络环境,可以完成端口映射,避免监听端口冲突等功能。
上学期期末时间数个后端大作业的 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
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.