Linux 网络维护相关命令简介

news2024/12/23 17:00:10

目录

  • 零. 概要
  • 一. ping
  • 二. ip命令
    • 2.1 ip address
    • 2.2 ip route
    • 2.3 ip neighbour
  • 三. traceroute
  • 四. DNS查询
    • 4.1 nslookup
    • 4.2 dig
  • 五. ss 查看网络连接状态


零. 概要

⏹在Linux系统中有2套用于网络管理的工具集

  • net-tools
    • 早期网络管理的主要工具集,缺乏对 IPv6、网络命名空间等现代特性的支持,可能存在与新内核不兼容的问题。
    • 在新版的Ubuntu系统中已经不再默认安装,安装命令:sudo apt install net-tools
    • 适合处理简单网络任务,或用于维护旧系统。
  • iproute2
    • 现代网络管理标准:支持新特性,如网络命名空间(namespace)、多路径路由等。
    • 工具整合:单个工具(如 ip)涵盖多个功能(如管理 IP 地址、路由、链路等)。
    • 性能优越:直接与内核交互,效率高。
    • 跨协议支持:支持 IPv4、IPv6、SCTP、DCCP 等。
    • Ubuntu系统内置

⏹两套工具集对比

功能iproute2 命令net-tools 命令
查看接口信息ip link showifconfig
启用/禁用接口ip link set dev eth0 up/downifconfig eth0 up/down
查看 IP 地址ip addr showifconfig
添加 IP 地址ip addr add 192.168.1.1/24 dev eth0ifconfig eth0 192.168.1.1 netmask 255.255.255.0
删除 IP 地址ip addr del 192.168.1.1/24 dev eth0不支持直接删除
查看路由表ip route showroute -n
添加/删除路由ip route add/del ...route add/del ...
查看套接字信息ss -tulnnetstat -tuln
查看 ARP 表ip neigh showarp -a

⇓⇓⇓下图来源于网络工程师波哥⇓⇓⇓

在这里插入图片描述


一. ping

⏹测试网络连通性

  • ping 会连续发送 ICMP 数据包,直到被手动中断(通常按 Ctrl+C)。
  • 默认每秒发送一个数据包,显示结果包括往返时间(RTT)、数据包丢失率等信息。
ping www.example.com
选项功能示例
-c <次数>指定发送数据包的数量ping -c 5 www.example.com
-i <间隔>设置每次发送数据包的时间间隔(默认 1 秒)ping -i 0.5 www.example.com
-w <时间>设置最大等待时间(秒)ping -w 10 www.example.com
-s <大小>指定 ICMP 数据包的大小(字节)ping -s 128 www.example.com
-t <值>设置 IP 数据包的 TTL(Time to Live)ping -t 64 www.example.com
-4强制使用 IPv4ping -4 www.example.com
-6强制使用 IPv6ping -6 www.example.com

💥注意事项
一些服务器为了安全性可能禁用了 ICMP 协议(不响应 ping 请求),但这并不一定说明网络有问题。


二. ip命令

⏹在 Linux 系统中,ip 命令是 iproute2 工具集中最重要的网络管理工具之一,用于查看和管理网络接口、地址、路由等网络配置。
它功能强大,已经取代了许多传统的网络命令(如 ifconfig、route、arp 等)。

⏹基本用法

  • OPTIONS:命令的全局选项(如 -4、-6,表示 IPv4 或 IPv6)
  • OBJECT:操作的网络对象(如 addr、link、route)
  • COMMAND:对象的具体操作(如 add、del、show)
ip [OPTIONS] OBJECT {COMMAND | help}

2.1 ip address

⏹查看所有接口的IP地址

# 完整写法
ip address show
# 简写
ip addr

⏹简洁的查看模式 → ip -br addr

  • 第1列:接口名称
    • lo:这是回环接口(loopback interface),用于本地通信,通常仅限于 127.0.0.1 地址。
    • ens33:这是物理或虚拟网络接口的名称,具体名字因系统和网络适配器配置而异。这里指的是一块以太网接口。
  • 第2列:接口状态
    • UNKNOWN:接口的状态未知,通常这是回环接口的默认状态。
    • UP:接口处于激活状态,能够发送和接收网络流量。
  • 第3列:IP 地址信息
    • ⭕IPv4 地址

      • 127.0.0.1/8:lo 的 IPv4 地址,是本地回环地址,子网掩码为 /8(即子网范围为 127.0.0.0 至 127.255.255.255)。
      • 192.168.118.136/24:ens33 的 IPv4 地址,是局域网中的地址,子网掩码为 /24(即子网范围为 192.168.118.0 至 192.168.118.255)。
    • ⭕IPv6 地址

      • ::1/128:lo 的 IPv6 地址,是本地回环地址,子网掩码为 /128,即只包含自身。
      • fe80::20c:29ff:fe86:f265/64:ens33 的 IPv6 链路本地地址(link-local address),作用域是当前链接,子网掩码为 /64
    • ⭕metric

      • metric 是路由表中用于决定路径优先级的一个值。它在网络中主要用于路由选择。
        多个路由指向同一个目标时,metric 值较低的路由优先被选择。
      • 仅部分接口包含
      • metric 100:网络接口的优先级,值越小优先级越高(通常用于路由选择时)。
apluser@ubuntu24-01:~$ ip -br addr
lo               UNKNOWN        127.0.0.1/8 ::1/128
ens33            UP             192.168.118.136/24 metric 100 fe80::20c:29ff:fe86:f265/64

⏹仅显示 IPv4 地址

ip -4 addr

⏹仅显示 IPv6 地址

ip -6 addr

2.2 ip route

ip route 是 Linux 系统中用于查看和管理路由表的命令。路由表决定了网络流量如何被发送到目标地址。通过 ip route,可以

  • 查看当前的路由信息
  • 添加或修改路由规则
  • 以及优化网络连接。

⏹基本概念

  • 路由表
    • 路由表存储了从主机到不同网络的路径。
    • 每条路由记录包含目标网络、网关(下一跳)、子网掩码、网络接口等信息。
  • 默认网关
    • 如果目标地址不在任何已知的子网中,流量会被发送到默认网关。

⏹用法示例

  • 默认路由:将未知目标的流量发送到网关 192.168.118.2。
  • 子网路由:通过本地子网 192.168.118.0/24 内的设备时,直接通过接口 ens33 发送,无需网关。
  • 网关路由:网关 192.168.118.2 是通过 ens33 接口直接访问的设备。

主机当前网络配置正常,主要通过网关 192.168.118.2 和外部通信,同时能与 192.168.118.0/24 子网中的其他设备直接通信。

apluser@ubuntu24-01:~$ ip route show
default via 192.168.118.2 dev ens33 proto dhcp src 192.168.118.136 metric 100
192.168.118.0/24 dev ens33 proto kernel scope link src 192.168.118.136 metric 100
192.168.118.2 dev ens33 proto dhcp scope link src 192.168.118.136 metric 100

  • default:表示默认路由,当目标地址无法匹配其他更具体的路由时,流量将使用此路由。
  • via 192.168.118.2:表示流量会通过网关(网关 IP 地址是 192.168.118.2)发送。
  • dev ens33:指定通过网络接口 ens33 发送数据。
  • proto dhcp:表示这条路由是通过 DHCP 动态分配的。
  • src 192.168.118.136:表示默认使用源地址(本机的IP地址) 192.168.118.136
  • metric 100:表示路由的优先级,数值越小优先级越高。这里 100 是一个默认的路由优先级值。
  • 👉这是系统的默认路由,所有不匹配其他路由表规则的流量会通过网关 192.168.118.2,从接口 ens33 发出。👈
default via 192.168.118.2 dev ens33 proto dhcp src 192.168.118.136 metric 100
  • 192.168.118.0/24:表示这是一个子网路由,负责 192.168.118.0192.168.118.255 之间的地址。
  • dev ens33:数据包通过 ens33 接口发送。
  • proto kernel:表示这是由内核自动添加的路由。
  • scope link:路由的作用域是本地链路(即只能到达本地子网中的设备)。
  • src 192.168.118.136:本接口的源地址是 192.168.118.136
  • metric 100:路由优先级是 100。
  • 👉这是本地子网的路由,流量目标是同一子网的设备时,直接通过 ens33 接口发送,不需要经过网关。👈
192.168.118.0/24 dev ens33 proto kernel scope link src 192.168.118.136 metric 100
  • 192.168.118.2:表示这是到网关 192.168.118.2 的路由。
  • dev ens33:通过 ens33 接口发送数据。
  • proto dhcp:这条路由由 DHCP 动态配置。
  • scope link:作用域是本地链路。
  • src 192.168.118.136:使用 192.168.118.136 作为源地址。
  • metric 100:路由优先级是 100。
  • 👉这是到网关设备 192.168.118.2 的路由,通过接口 ens33 发出数据。👈
192.168.118.2 dev ens33 proto dhcp scope link src 192.168.118.136 metric 100

2.3 ip neighbour

ip neighbour命令用于显示当前网络接口的邻居表(ARP 表或 NDP 表),它列出了本机网络接口与其直接连接的设备之间的映射关系,同时显示了与这些网络设备的通信状态。
例如:

  • IP 地址
  • 设备接口
  • 硬件地址(MAC 地址)
  • 网络邻居条目的状态

ip neighbour 是现代系统中管理邻居条目的工具,替代了传统的 arp 命令。

⏹示例

apluser@ubuntu24-01:~$ ip neighbour
192.168.118.2 dev ens33 lladdr 00:50:56:ea:9e:5f STALE
192.168.118.1 dev ens33 lladdr 00:50:56:c0:00:08 REACHABLE
192.168.118.254 dev ens33 lladdr 00:50:56:ec:2c:8b STALE
  • 192.168.118.2:网络邻居设备的 IP 地址。
  • dev ens33:表示邻居设备是通过网络接口 ens33 访问的。
  • lladdr 00:50:56:ea:9e:5f:邻居设备的硬件地址(MAC 地址)。
  • STALE:表示邻居状态为“陈旧”,系统已经知道该设备的 MAC 地址,但最近没有与其通信。如果需要时,系统会重新验证它。
192.168.118.2 dev ens33 lladdr 00:50:56:ea:9e:5f STALE
  • 192.168.118.1:邻居设备的 IP 地址。
  • dev ens33:通过接口 ens33 访问。
  • lladdr 00:50:56:c0:00:08:设备的 MAC 地址。
  • REACHABLE:表示邻居设备是可达的,最近系统已经成功与其通信。
192.168.118.1 dev ens33 lladdr 00:50:56:c0:00:08 REACHABLE

三. traceroute

traceroute 是一个网络诊断工具,用于显示从本地主机到目标主机之间的路径及经过的所有中间节点(路由器或设备)。
该命令会显示中间的路由器或网关,并提供每一跳的延迟信息,是排查网络问题和了解网络路径的重要工具。

  • -I:使用 ICMP Echo 请求(类似 ping),代替默认的 UDP 数据包。
  • 如果 traceroute 显示 *,可能是以下原因
    • 路由器禁用了 ICMP 响应。
    • 数据包被防火墙阻拦。
    • TTL 已到达但没有返回响应。
    • 遇到防火墙阻拦时,可以尝试 -T 使用 TCP 探测。
root@ubuntu24-01:~# traceroute -I www.baidu.com
traceroute to www.baidu.com (119.63.197.151), 30 hops max, 60 byte packets
 1  _gateway (192.168.118.2)  0.079 ms  0.046 ms *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  119.63.197.151 (119.63.197.151)  7.820 ms  7.796 ms  7.772 ms

四. DNS查询

nslookupdig是linux系统中用于查询DNS的命令行工具。

特性nslookupdig
复杂度简单,适合快速查询功能强大,适合高级用户
输出详细信息较少,仅限查询结果输出完整的 DNS 消息结构
记录类型支持支持,但不如 dig 强大支持多种记录类型和自定义查询
脚本支持较弱,输出格式固定较强,支持自定义输出
可用性默认内置于 Windows 和 Unix通常需要额外安装(如 bind-utils

4.1 nslookup

  • nslookup 是一个命令行工具,用于查询域名系统(DNS)记录。
  • 允许你检查域名到 IP 地址的解析、IP 地址到域名的反向解析,以及其他 DNS 信息。
apluser@ubuntu24-01:~$ nslookup www.google.com
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
Name:   www.google.com
Address: 142.250.199.100
Name:   www.google.com
Address: 2404:6800:4004:823::2004

4.2 dig

dig(Domain Information Groper)是一个功能更强大的工具,用于查询 DNS 信息。它能显示更多详细信息,比如

  • DNS 消息头、
  • TTL、
  • 查询时间

是网络管理员的首选工具。

⏹dig命令示例

apluser@ubuntu24-01:~$ dig www.google.com

; <<>> DiG 9.18.28-0ubuntu0.24.04.1-Ubuntu <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44293
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 9

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.google.com.                        IN      A

;; ANSWER SECTION:
www.google.com.         5       IN      A       172.217.31.132

;; AUTHORITY SECTION:
google.com.             5       IN      NS      ns1.google.com.
google.com.             5       IN      NS      ns3.google.com.
google.com.             5       IN      NS      ns2.google.com.
google.com.             5       IN      NS      ns4.google.com.

;; ADDITIONAL SECTION:
ns1.google.com.         5       IN      AAAA    2001:4860:4802:32::a
ns2.google.com.         5       IN      AAAA    2001:4860:4802:34::a
ns3.google.com.         5       IN      AAAA    2001:4860:4802:36::a
ns4.google.com.         5       IN      AAAA    2001:4860:4802:38::a
ns1.google.com.         5       IN      A       216.239.32.10
ns2.google.com.         5       IN      A       216.239.34.10
ns3.google.com.         5       IN      A       216.239.36.10
ns4.google.com.         5       IN      A       216.239.38.10

;; Query time: 8 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Sun Dec 22 11:40:12 UTC 2024
;; MSG SIZE  rcvd: 307

⏹只想获取查询结果而忽略其他信息

apluser@ubuntu24-01:~$ dig +short www.google.com
142.251.42.132

五. ss 查看网络连接状态

ss 是 Linux 系统上一个强大的命令行工具,用于显示套接字统计信息。
它的功能类似于传统的 netstat,但性能更高,且支持更多功能。
ssiproute2 工具包的一部分,适用于查看网络连接状态、套接字信息和网络统计数据。

  • -l:仅显示监听的套接字。
  • -t:显示 TCP 连接。
apluser@ubuntu24-01:~$ ss -lt
State     Recv-Q     Send-Q     Local Address:Port        Peer Address:Port   Process
LISTEN    0          4096       127.0.0.53%lo:domain           0.0.0.0:*
LISTEN    0          4096          127.0.0.54:domain           0.0.0.0:*
LISTEN    0          4096                   *:ssh                    *:*
apluser@ubuntu24-01:~$

⏹仅显示状态为已建立的 TCP 连接

ss -t state ESTABLISHED

⏹配合 watch 命令实时监控

watch -n 1 ss -t state ESTABLISHED

⏹显示所有源端口为 80 的 TCP 连接

  • sport(source port):表示源端口。
ss -t sport = :80

⏹显示所有目标端口为 443 的 TCP 连接

  • dport(destination port):表示目标端口。
ss -t dport = :443

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

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

相关文章

vscode中同时运行两个python文件(不用安装插件)

如何在vscode中同时运行两个python文件呢&#xff1f;今天在工作中遇到了这个问题。 查了网上的方法是安装coder runner插件&#xff0c;后来发现自身就有这个功能。所以记录一下,方便后续查找: 这是我的第一个文件&#xff0c;点击右上角的运行旁边的小箭头&#xff0c;有一…

matlab绘图时设置左、右坐标轴为不同颜色

目录 一、需求描述 二、实现方法 一、需求描述 当图中存在两条曲线&#xff0c;需要对两条曲线进行分别描述时&#xff0c;应设置左、右坐标轴为不同颜色&#xff0c;并设置刻度线&#xff0c;且坐标轴颜色需要和曲线颜色相同。 二、实现方法 2.1、实现目标&#xff1a; 1…

解决Apache/2.4.39 (Win64) PHP/7.2.18 Server at localhost Port 80问题

配置一下apache里面的配置文件&#xff1a;httpd.conf 和 httpd.vhosts.conf httpd.conf httpd-vhosts.conf 重启服务 展示&#xff1a; 浏览器中中文乱码问题&#xff1a;

RunCam WiFiLink连接手机图传测试

RunCam WiFiLink中文手册从这里下载 一、摄像头端 1.连接天线&#xff08;易忘&#xff09; 2.打开摄像头前面的盖子&#xff08;易忘&#xff09; 3.接上直流电源&#xff0c;红线为正&#xff0c;黑线为负 4.直流电源设置电压为14v&#xff0c;电流为3.15A&#xff0c; 通…

用JAVA做了一个登录窗体练习

目 录 说明运行后的效果代码 说明 做了一个登录窗体作为练习&#xff0c;分享给大家&#xff0c;其中涉及到窗体、图板、随机数等内容&#xff0c;为了方便和我一样的小白可以看的比较明白&#xff0c;所以尽量详细的标注了注释&#xff0c;希望能帮到同样在学习路上的朋友 运…

《开启微服务之旅:Spring Boot 从入门到实践》(一)

Spring Boot Spring Boot 入门 Spring Boot 简介&#xff08;脚手架&#xff09; 简化Spring应用开发的一个框架&#xff1b; 整个Spring技术栈的一个大整合&#xff1b; J2EE开发的一站式解决方案&#xff1b; 优点&#xff1a;快速创建独立运行的spring项目以及与主流…

springboot466大学生就业服务平台(论文+源码)_kaic

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统大学生就业服务平台信息管理难度大&#xff0c;容错率低&…

ROS1入门教程2:主题发布和订阅

一、创建发布者 创建源文件publisher.cpp&#xff0c;并写入以下内容&#xff1a; #include <iostream>#include "ros/ros.h" #include "std_msgs/String.h"int main(int argc, char* argv[]) {std::string nodeName "publisher"; // 节…

WALN无线网络的创建和管理-二层组网

⼆层组⽹配置过程&#xff1a; 在AC上配置DHCP 1&#xff0c;先将AP划分到管理vlan&#xff0c;并在相关链路上运⾏vlan数据通过 2&#xff0c;在AC上创建管理vlan的vlanif接⼝&#xff0c;配置IP参数 3&#xff0c;在AC上配置DHCP服务器 4&#xff0c;指定WLAN管理vlan&am…

EasyGBS国标GB28181平台P2P远程访问故障排查指南:客户端角度的排查思路

在现代视频监控系统中&#xff0c;P2P&#xff08;点对点&#xff09;技术因其便捷性和高效性而被广泛应用。然而&#xff0c;当用户在使用P2P远程访问时遇到设备不在线或无法访问的问题时&#xff0c;有效的排查方法显得尤为重要。本文将从客户端的角度出发&#xff0c;详细探…

基于Controller模式部署RocketMQ集群

RocketMQ简介 RocketMQ是一种分布式消息中间件&#xff0c;它由阿里巴巴集团开发&#xff0c;并且后来捐献给了Apache软件基金会。RocketMQ最初是为了解决阿里巴巴内部因业务增长带来的高吞吐量需求而设计的。随着其不断发展和完善&#xff0c;RocketMQ已经成为了一个能够处理…

性能】JDK和Jmeter的安装与配置

一、JDK环境配置 1. 下载JDK 官网下载地址&#xff1a;http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html 选择对应系统的安装包&#xff0c;下载后安装&#xff0c;安装中记录JDK安装的地址&#xff0c;之后一直点击下一…

分布式协同 - 分布式事务_2PC 3PC解决方案

文章目录 导图Pre2PC&#xff08;Two-Phase Commit&#xff09;协议准备阶段提交阶段情况 1&#xff1a;只要有一个事务参与者反馈未就绪&#xff08;no ready&#xff09;&#xff0c;事务协调者就会回滚事务情况 2&#xff1a;当所有事务参与者均反馈就绪&#xff08;ready&a…

ubuntu 如何重装你的apt【apt-get报错: symbol lookup error/undefined symbol】

副标题:解决error:apt-get: symbol lookup error: /lib/x86_64-linux-gnu/libapt-private.so.0.0: undefined symbol: _ZNK13pkgTagSection7FindULLENS_3KeyERKy, version APTPKG_6.0 文章目录 问题描述报错分析解决方案:重装你的apt1、查看你的ubuntu版本2、下载适配你的ap…

RK3588 , mpp硬编码yuv, 保存MP4视频文件.

RK3588 , mpp硬编码yuv, 保存MP4视频文件. ⚡️ 传送 ➡️ Ubuntu x64 架构, 交叉编译aarch64 FFmpeg mppRK3588, FFmpeg 拉流 RTSP, mpp 硬解码转RGBRk3588 FFmpeg 拉流 RTSP, 硬解码转RGBRK3588 , mpp硬编码yuv, 保存MP4视频文件.

纯血鸿蒙APP实战开发——动态注册字体案例

介绍 本示例介绍利用上传下载模块和注册自定义字体模块实现从网络上下载字体并注册应用字体的功能&#xff0c;该场景多用于由特殊字体要求的场景。 效果图预览 使用说明 进入本案例页面后&#xff0c;可点击下方按钮切换字体。目前仅提供了思源宋体的注册&#xff0c;第一次…

Oracle中间件 SOA之 OSB 12C服务器环境搭建

环境信息 服务器基本信息 如下表&#xff0c;本次安装总共使用1台服务器&#xff0c;具体信息如下&#xff1a; App1服务器 归类 APP服务器 Ip Address 172.xx.30.xx HostName appdev01. xxxxx.com Alias appdev01 OSB1服务器 归类 OSB服务器 Ip Address 172.xx3…

数据结构---------二叉树前序遍历中序遍历后序遍历

以下是用C语言实现二叉树的前序遍历、中序遍历和后序遍历的代码示例&#xff0c;包括递归和非递归&#xff08;借助栈实现&#xff09;两种方式&#xff1a; 1. 二叉树节点结构体定义 #include <stdio.h> #include <stdlib.h>// 二叉树节点结构体 typedef struct…

前置知识补充—JavaScript

JavaScript 简介 JavaScript 是什么 JavaScript (简称 JS), 是⼀个脚本语⾔, 解释型或即时编译型的编程语⾔. 虽然它是作为开发Web⻚⾯的脚本语⾔⽽出名&#xff0c;但是它也被⽤到了很多⾮浏览器环境中 HTML&#xff1a; ⽹⻚的结构 CSS&#xff1a; …

Mac上详细配置java开发环境和软件(更新中)

文章目录 概要JDK的配置JDK下载安装配置JDK环境变量文件 Idea的安装Mysql安装和配置Navicat Premium16.1安装安装Vscode安装和配置Maven配置本地仓库配置阿里云私服Idea集成Maven Cpolar快速入门 概要 这里使用的是M3型片 14.6版本的Mac 用到的资源放在网盘 链接: https://pan…