「runnet」 一个脚本快速创建隔离网络环境,解决端口冲突问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
imlk
V2EX    Docker

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

  •  
  •   imlk
    KB5201314 2020-07-30 19:24:28 +08:00 2199 次点击
    这是一个创建于 1968 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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

    1 条回复    2020-08-03 11:20:25 +08:00
    julyclyde
        1
    julyclyde  
       2020-08-03 11:20:24 +08:00
    yet another
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2571 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 14:39 PVG 22:39 LAX 06:39 JFK 09:39
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86