jee*_*ebs 1 linux raspberry-pi network-namespaces
我一直在对 Linux 和网络进行一些研究,并且遇到了命名空间。阅读文章并学习如何设置后,我很困惑。
我在我的系统上安装了一个应用程序,当我在全局命名空间(无命名空间)中运行它时,我可以使用主机的 IP 地址从 LAN 连接到 web gui。现在,当我创建命名空间时,在创建任何虚拟适配器或执行任何其他操作之前,如果我在命名空间中打开应用程序,我仍然可以使用相同的 IP 从 LAN 连接到它。
我用来启动服务的命令是:
sudo ip netns exec blue service *application* start
Run Code Online (Sandbox Code Playgroud)
我的理解是“网络”命名空间应该隔离进程。那么我错过了什么?
顺便说一句,我通常对命名空间使用这些说明:
那么我错过了什么?
您缺少的是与service
通信init
,本质上是逃避网络命名空间。应用程序最终在与 init 系统相同的网络命名空间中运行(默认情况下)。
在其核心的问题是,service
不只是fork
和exec
守护进程二进制应用程序(这将保留命名空间)。相反,它只不过是init
通过(我相信)一个 Unix 域套接字传递它的参数。安全容器还隔离文件系统以防止此类事情发生。
我会尝试直接调用应用程序守护程序二进制文件(ip netns exec [namespace]
当然在 下)。或者使用真正的容器软件,其他人已经整理了所有棘手的细节......
归档时间: |
|
查看次数: |
254 次 |
最近记录: |