「runnet」🔀 一个脚本快速创建隔离网络环境,解决端口冲突问题

2020-07-30 19:24:28 +08:00
 imlk

🔀 runnet

这是一个工具脚本,用来快速创建隔离的网络环境,可以完成端口映射,避免监听端口冲突等功能。

背景

上学期期末时间数个后端大作业的 ddl 同时疯狂逼近,又由于俺习惯于从旧的 project 里面 copy 代码,也导致很多 project 端口号都是 8080 。结果导致在服务器上同时部署多个 project 时炸锅了,端口冲突是常事。但是以俺的性格,俺既不想重新打包 project,也不想产生改配置文件这样的无关紧要的 git commit 。遂想到之前学习的 namespace,于是乎,写了一个脚本来实现该想法,并发布到 github 上:

https://github.com/KB5201314/runnet

(不要脸地求 star )

这个脚本完成了 network namespace 的创建、forward 、端口映射一连串的步骤,我想对于在学习 namespace 的人来说,这也会是一个入手的好例子。

Warning

该脚本会操作 iptables,不保证在您的环境中不会出现问题,因此请不要在生产环境偷懒使用该工具,以免造成损失

Q&A

  1. 这个和 docker 有啥关系
    docker 也能完成端口映射,实际上命令参数的形式就是参考了 docker 。docker 不仅实现了 network 的隔离,还实现了其它层次的隔离,但是在我的需求中,只需要隔离 network 。

  2. 只能用来避免端口冲突吗?
    有一个参数可以控制是否允许联网(是否转发容器内流量到外部),如果开启则该应用相当于断网运行。如果还有其它的点子,欢迎提 pr 。鲁迅曾经说过:more features, more code.

  3. 你不会写个 DockerFile 嘛?
    docker 确实可以,但是俺是真的懒 XD

1630 次点击
所在节点    Docker
1 条回复
julyclyde
2020-08-03 11:20:24 +08:00
yet another

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/694421

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX