使用unshare或lxc-execute我可以创build单独的networking/安装/任何名称空间的环境。 但是从外面开始编程并不是那么简单。 通常使用network和sshd,我也使用UNIX套接字和socat执行shell来启动新的进程。
是否已经有一个程序,允许轻松地启动内部的应用程序? 预计客户端程序将连接到UNIX套接字并将(SCM_RIGHTS)stdin / stdout / stderr发送到服务器。 服务器预计将在非共享内部启动并接收argv,环境和fds并启动它们。
类似的东西:
# unshare -nm /usr/local/bin/dived /var/run/myunshare.socket # # (Non-abstract unix sockets are preserved across "unshare -m") # dive /var/run/myunshare.socket ping 8.8.8.8 connect: Network is unreachable
创build程序自己做这个:
例:
# umask 0000 # # Create no-network namespace # unshare -n -- dived /var/run/no_network.socket -d $ dive /var/run/no_network.socket bash $ # Now inside unshare. Shell should work well, can start X apps, etc. $ ping 127.0.0.1 connect: Network is unreachable $ # actually no network $ id $ uid=1000(vi) gid=1000(vi) groups=1000(vi),20(dialout),21(fax),... $ # dived set up groups for us $ exit exit $ # "undove" # killall dived