[每周一更]-(第63期):Linux-nsenter命令使用说明

news2024/11/24 1:17:43

在这里插入图片描述

nsenter命令是一个可以在指定进程的命令空间下运行指定程序的命令。它位于util-linux包中。

1、用途

一个最典型的用途就是进入容器的网络命令空间。相当多的容器为了轻量级,是不包含较为基础的命令的,
比如说ip address,ping,telnet,ss,tcpdump等等命令,这就给调试容器网络带来相当大的困扰:
只能通过docker inspect ContainerID命令获取到容器IP,以及无法测试和其他网络的连通性。
这时就可以使用nsenter命令仅进入该容器的网络命名空间,使用宿主机的命令调试容器网络。
此外,nsenter也可以进入mnt,uts,ipc,pid,user命令空间,以及指定根目录和工作目录。

2、用法

nsenter [options] [program [arguments]]

options:

  • -t, --target pid:指定被进入命名空间的目标进程的pid
  • -m, --mount[=file]:进入mount命令空间。如果指定了file,则进入file的命令空间
  • -u, --uts[=file]:进入uts命令空间。如果指定了file,则进入file的命令空间
  • -i, --ipc[=file]:进入ipc命令空间。如果指定了file,则进入file的命令空间
  • -n, --net[=file]:进入net命令空间。如果指定了file,则进入file的命令空间
  • -p, --pid[=file]:进入pid命令空间。如果指定了file,则进入file的命令空间
  • -U, --user[=file]:进入user命令空间。如果指定了file,则进入file的命令空间
  • -G, --setgid gid:设置运行程序的gid
  • -S, --setuid uid:设置运行程序的uid
  • -r, --root[=directory]:设置根目录
  • -w, --wd[=directory]:设置工作目录

如果没有给出program,则默认执行$SHELL。

3、示例

在 Linux 系统里,nsenter 是一个命令行工具,用于进入到另一个 namespace。

譬如,nsenter -n -t 1 bash 就是进入到 pid 为 1 的进程所在的网络 namespace 里。

如果不断的执行 nsenter 命令,就形成了一个 nsenter 套娃。

通过nsenter获取容器ip,可进行docker网络连通性测试

# 查看pid
docker inspect 354 -f '{{.State.Pid}}'
30354

# 执行nsenter命令
nsenter -n -t 30354

# 查看容器IP配置 ifconfig
eth0: flags=4163
<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 172.17.0.3  netmask 255.255.0.0  broadcast 0.0.0.0
inet6 fe80::42:acff:fe11:3  prefixlen 64  scopeid 0x20
<link>
ether 02:42:ac:11:00:03  txqueuelen 0  (Ethernet)
RX packets 0  bytes 0 (0.0 B)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 8  bytes 656 (656.0 B)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73
<UP,LOOPBACK,RUNNING>  mtu 65536
inet 127.0.0.1  netmask 255.0.0.0
inet6 ::1  prefixlen 128  scopeid 0x10
<host>
    loop txqueuelen 1000 (Local Loopback)
    RX packets 0 bytes 0 (0.0 B)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 0 bytes 0 (0.0 B)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    # 退出
    exit

    # 物理机ip配置
    docker0: flags=4163
    <UP ,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0
    ether 02:42:de:5d:bb:55 txqueuelen 0 (Ethernet)
    RX packets 2388 bytes 231674 (226.2 KiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 2517 bytes 1687771 (1.6 MiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    eth0: flags=4163
    <UP ,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 172.27.0.9 netmask 255.255.240.0 broadcast 172.27.15.255
    ether 52:54:00:ee:87:05 txqueuelen 1000 (Ethernet)
    RX packets 11373521 bytes 1780959272 (1.6 GiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 11638601 bytes 3904021709 (3.6 GiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    lo: flags=73
    <UP ,LOOPBACK,RUNNING> mtu 65536
    inet 127.0.0.1 netmask 255.0.0.0
    loop txqueuelen 1000 (Local Loopback)
    RX packets 785897 bytes 389858802 (371.7 MiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 785897 bytes 389858802 (371.7 MiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    veth5a433e9: flags=4163
    <UP ,BROADCAST,RUNNING,MULTICAST> mtu 1500
    ether 02:bd:5e:79:55:c6 txqueuelen 0 (Ethernet)
    RX packets 1056 bytes 136666 (133.4 KiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 1447 bytes 116315 (113.5 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    vethf366923: flags=4163
    <UP ,BROADCAST,RUNNING,MULTICAST> mtu 1500
    ether 5a:fc:ae:17:dc:a5 txqueuelen 0 (Ethernet)
    RX packets 8 bytes 656 (656.0 B)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 0 bytes 0 (0.0 B)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

4、关于 namespace

namespace是Linux中一些进程的属性的作用域,使用命名空间,可以隔离不同的进程。

Linux在不断的添加命名空间,目前有:

  • mount:挂载命名空间,使进程有一个独立的挂载文件系统,始于Linux 2.4.19
  • ipc:ipc命名空间,使进程有一个独立的ipc,包括消息队列,共享内存和信号量,始于Linux 2.6.19
  • uts:uts命名空间,使进程有一个独立的hostname和domainname,始于Linux 2.6.19
  • net:network命令空间,使进程有一个独立的网络栈,始于Linux 2.6.24
  • pid:pid命名空间,使进程有一个独立的pid空间,始于Linux 2.6.24
  • user:user命名空间,是进程有一个独立的user空间,始于Linux 2.6.23,结束于Linux 3.8
  • cgroup:cgroup命名空间,使进程有一个独立的cgroup控制组,始于Linux 4.6

参考:https://staight.github.io/2019/09/23/nsenter%E5%91%BD%E4%BB%A4%E7%AE%80%E4%BB%8B/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1043507.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ENVI IDL:MODIS SWATH产品的点位-像元提取(另附Python代码)

目录 01 说明 1.1 ENVI IDL本小节实验说明 1.2 Python本小节实验说明 02 代码 2.1 我的ENVI IDL代码 2.2 实验给定ENVI IDL代码 2.3 我的python代码 2.4 实验给定python代码 01 说明 实验说明 提取/coarse_data/chapter_3/modis_swath/目录下所有MODIS气溶胶产品中Image…

复杂度(7.23)

1.算法效率 如何衡量算法的好坏&#xff1f; 这里需要引入算法的复杂度 1.2算法的复杂度 算法在编写成可执行程序后&#xff0c;运行时需要耗费时间资源和空间 ( 内存 ) 资源。因此 衡量一个算法的好坏&#xff0c;一般是从时间和空间两个维度来衡量的 &#xff0c; 即时间复…

docker 安装 nessus新版、awvs15-简单更快捷

一、docker 安装 nessus 参考项目地址&#xff1a; https://github.com/elliot-bia/nessus 介绍&#xff1a;几行代码即可一键安装更新 nessus -推荐 安装好 docker后执行以下命令 #拉取镜像创建容器 docker run -itd --nameramisec_nessus -p 8834:8834 ramisec/nessus …

Cisco Packet Tracer的下载与安装+汉化

一、下载 1、思科官网下载 参考连接&#xff1a;Cisco Packet Tracer - Networking Simulation Tool (netacad.com) 2、百度网盘 链接&#xff1a;https://pan.baidu.com/s/18xzqdACkCXngMzYm5UV_zg 提取码&#xff1a;xuyi 二、安装 双击安装包 点击下一步 选择同意条款&…

VUE指令语法解析标签属性

我们可以在标签体中使用插值语法 {{ }} 来直接读取data中的属性 那我们能使用相同的方法将我们的网址给填入a标签的href属性中吗&#xff1f; 我们运行后会发现并没有给我们变为<a href"https://blog.csdn.net/XunLin233">&#xff0c;而是<a href"{{…

个性化定制企业邮件域名的解决方案

随着互联网的快速发展&#xff0c;电子邮件已经成为了商业沟通的主要方式之一。而企业邮箱作为企业进行正式商务交流的重要工具&#xff0c;其域名和后缀的选择也引起了人们的关注。其中一个关键的问题是&#xff1a;企业邮箱的后缀是否可以自定义&#xff1f;企业邮箱的后缀是…

MSF的安装与使用教程,超详细,附安装包和密钥

MSF简介 Metasploit&#xff08;MSF&#xff09;是一个免费的、可下载的框架 它本身附带数百个已知软件漏洞&#xff0c;是一款专业级漏洞攻击工具。 当H.D. Moore在2003年发布Metasploit时&#xff0c;计算机安全状况也被永久性地改变了&#xff0c;仿佛一夜之间&#xff0…

ipad触控笔有必要买原装吗?性价比触控笔排行榜

随着社会经济的发展&#xff0c;越来越多的人需要用到电容笔。国产的平替电器笔&#xff0c;与苹果原装的电容笔差别并不大&#xff0c;无论是在功能上&#xff0c;还是在触感上&#xff0c;都相差无几&#xff0c;写起字来更是行云流水&#xff0c;让我有些意外的是&#xff0…

el-upload实现复制粘贴图片

前言&#xff1a; 在之前的项目中&#xff0c;利用el-upload实现了上传图片视频的预览。项目上线后&#xff0c;经使用人员反馈&#xff0c;上传图片、视频每次要先保存到本地然后再上传&#xff0c;很是浪费时间&#xff0c;公司客服人员时间又很紧迫&#xff08;因为要响应下…

Xmake v2.8.3 发布,改进 Wasm 并支持 Xmake 源码调试

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量&#xff0c;没有任何依赖&#xff0c;因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建&#xff0c;相比 makefile/CMakeLists.txt&#xff0c;配置语法更加简洁直观&#xff0c;对新手非常友好&#x…

描述性统计分析

前言&#xff1a; 本专栏参考教材为《SPSS22.0从入门到精通》&#xff0c;由于软件版本原因&#xff0c;部分内容有所改变&#xff0c;为适应软件版本的变化&#xff0c;特此创作此专栏便于大家学习。本专栏使用软件为&#xff1a;SPSS25.0 本专栏所有的数据文件可在个人主页—…

电脑D盘格式化会有什么影响?电脑D盘格式化了怎么恢复数据

当电脑出现问题时&#xff0c;往往会出现一些提示&#xff0c;例如提示格式化的问题&#xff0c;而最近有位小伙伴也遇到了相似的问题&#xff0c;即D盘一打开就显示格式化&#xff0c;由于不清楚D盘格式化会有什么影响&#xff0c;因此不小心进行了格式化操作&#xff0c;结果…

较真儿学源码系列-PowerJob启动流程源码分析

PowerJob版本&#xff1a;4.3.2-main。 1 简介 PowerJob是全新一代的分布式任务调度与计算框架&#xff0c;官网地址&#xff1a;http://www.powerjob.tech/。其中介绍了PowerJob的功能特点&#xff0c;以及与其他调度框架的对比&#xff0c;这里就不再赘述了。 以上是PowerJob…

基于PSO算法的功率角摆动曲线优化研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

MySQL的执行流程

在聊mysql的执行流程之前&#xff0c;咱们要先聊聊mysql的逻辑架构。 逻辑架构 可以将上图简化为下图 连接层 客服端访问mysql服务器前&#xff0c;要先和mysq建立tcp连接。经过3次握手建立连接成功后&#xff0c;mysql服务器对tcp传输过来的账号密码进行身份认证&#x…

接口测试之文件下载

在工作中对于下载接口&#xff0c;经常会有这样的疑问&#xff1a;这类接口一般功能比较稳定&#xff0c;但是又比较重要&#xff0c;需要占用回归测试时间&#xff0c;有没有可替代的方式&#xff1f; 答案肯定是有的&#xff0c;可以从接口测试/UI自动化测试介入&#xff0c;…

UE5 虚幻引擎 使用编辑器工具进行资产批处理操作 让你的工作效率指数级增长!!!

目录 0 引言1 编辑器工具蓝图1.1 介绍1.2 案例&#xff1a;批量设置静态网格体资产的LOD1.3 进阶用法 2 编辑器工具控件2.1 介绍2.2 案例&#xff1a;随机给场景中Actor添加Yaw旋转值 0 引言 官方教程视频 参考文章 参考视频 UE5提供了两种 编辑器工具 &#xff1a;编辑器工具…

Dubbo学习(二)——dubbo环境搭建

文章目录 dubbo核心简介SpringCloud与Dubbo的区别Dubbo的架构说明dubbo和Feign远程调用的差异共同点&#xff1a;区别&#xff1a; 基于 Spring Boot 开发微服务应用项目介绍1. 启动注册中心2. 新建一个spring boot项目3. 添加 Maven 依赖4. 定义服务接口5. 定义服务端的实现实…

操作系统 --- 进程的描述与控制

&#xff08;一 &#xff09;前趋图和程序的执行 前趋图 前趋图 :有向无循环图 &#xff0c;用于描述 进程之间执行的先后顺序 结点表示进程或程序段&#xff0c;有向边表示前趋关系 前驱图中是不允许有循环的&#xff0c;否则必然会产生无法实现的前驱关系。 &#xff08;二…

浙大公共管理硕士(MPA)提前批面试的题库里到底有哪些内容?

像研究生招生这样严肃的工作&#xff0c;所有的环节和程序都得有章可循&#xff01;浙大公共管理硕士&#xff08;MPA&#xff09;项目提前批面试即将在10月14日举行&#xff0c;已经通过材料审核的考生肯定很想知道面试中会遇到什么样的题目&#xff0c;专注浙大的杭州达立易考…