【Linux】网络相关的命令
目录
① ip addr show
② ip route show
③ iptables -nvL
④ ping -I enx00e04c6666c0 192.168.1.100
⑤ ip route get 192.168.1.100
⑥ sudo ip addr add dev enx00e04c6666c0 192.168.1.101/24
⑦ ifconfig
⑧ netstat
⑨ traceroute
⑩ nslookup
① ip addr show
用于显示网络接口的详细信息。这条命令可以帮助用户查看系统的网络配置,包括IP地址、子网掩码、MAC地址、网络接口的状态(如UP或DOWN)等重要信息。
每个网络接口通常会有以下几项关键数据:
▲接口名称:如eth0、wlan0、lo等,分别代表以太网接口、无线网络接口和回环接口。
▲状态:表明接口是否正在运行(UP)或者关闭(DOWN)。
▲硬件地址:即MAC地址,用于在物理层唯一标识网络设备。
▲IP地址:分配给接口的IPv4或IPv6地址。
▲广播地址:在局域网内广播数据包的目标地址。
▲子网掩码:用于确定IP地址的网络部分和主机部分。
② ip route show
主要用于显示当前系统的路由表信息。路由表是操作系统用来决定数据包转发路径的一个数据库,它包含了到达网络中不同目的地的路由信息。通过执行 ip route show 命令,可以查看系统是如何确定数据包的下一跳地址,以及如何将数据包发送到目的网络的。
■当在终端中运行 ip route show 命令时,系统会列出所有的路由规则,包括但不限于:
▲默认路由:这是系统用于发送到未知目的地的数据包的路由。默认路由通常指向一个网关,所有未被其他路由规则匹配的数据包都会被转发到这个网关。
▲直连路由:这些路由对应于本地网络接口直接连接的网络。对于这些网络,数据包可以直接发送到目标,无需经过任何中间路由器。
▲静态路由:这些是由管理员手动配置的路由,用于指定特定目的地的固定路径。静态路由在小型网络或特定需求的场景下非常有用。
▲动态路由:这些路由是通过动态路由协议(如RIP、OSPF或BGP)自动发现的。动态路由允许网络中的路由器自动交换路由信息,以便在网络拓扑发生变化时自动更新路由表。
示例:
default via 192.168.1.1 dev eth0 proto dhcp
默认路由通过192.168.1.1这个网关,使用eth0接口,并且这个网关是通过DHCP协议获得的。
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2
直连路由192.168.1.0/24网络,数据包可以通过eth0接口直接发送,源地址是192.168.1.2。
169.254.0.0/16 dev eth0 scope link metric 1002
169.254.0.0/16网络的路由也是通过eth0接口,但其优先级较低,因为metric值为1002。
③ iptables -nvL
用于列出(List)当前系统中设置的所有iptables防火墙规则。这个命令可以帮助系统管理员检查防火墙的配置,确保网络流量按照预期的方式被过滤和处理。
■ 命令解析
iptables:是Linux中用于管理网络数据包过滤规则的工具。
-n:选项表示显示数字形式的地址和端口,而不是尝试解析它们为域名或服务名。
-v:选项表示详细模式,它会显示额外的信息,如数据包和字节的计数。
-L:选项表示列出(List)当前的iptables规则。
■ 当运行 iptables -nvL 命令时,系统会显示所有链(Chain)的规则列表,包括但不限于:
▲INPUT:用于处理进入本地系统的所有数据包。
▲FORWARD:用于处理在系统间转发的数据包。
▲OUTPUT:用于处理从本地系统发出的数据包。
▲PREROUTING 和 POSTROUTING:这两个链是NAT(Network Address Translation)规则的一部分,分别用于在数据包到达之前和离开之后进行地址转换。
■ 输出通常会包含以下信息:
▲链名:如INPUT、FORWARD、OUTPUT等。
▲策略:默认情况下,如果没有任何规则匹配数据包,iptables会根据链的默认策略(如ACCEPT或DROP)来处理数据包。
▲数据包计数:通过该规则的数据包数量。
▲字节计数:通过该规则的数据总量。
▲目标:规则的最终动作,如ACCEPT、DROP、REJECT等。
▲协议:数据包的协议类型,如TCP、UDP、ICMP等。
▲源地址:数据包的源IP地址。
▲目标地址:数据包的目标IP地址。
▲端口号:数据包的源端口和目标端口。
▲匹配条件:数据包必须满足的其他条件,如特定的标志位或数据包长度。
④ ping -I enx00e04c6666c0 192.168.1.100
在Linux系统中使用ping工具来测试从特定网络接口到指定IP地址的网络连通性。
■ 解析这个命令:
▲ping:这是一个用于检查网络设备之间连通性的标准工具。它通过向目标主机发送ICMP(Internet Control Message Protocol)回显请求(Echo Request)数据包,然后等待接收回显应答(Echo Reply)数据包,以此来判断网络的可达性和响应时间。
▲-I enx00e04c6666c0:用于指定ping命令应该从哪个网络接口发送数据包。这里的enx00e04c6666c0是网络接口的名字,通常反映了接口的类型和MAC地址的一部分。通过这个选项,可以确保ping请求是从正确的接口发出的,这对于有多块网卡或多接口的系统尤其重要。
▲192.168.1.100:这是ping命令的目标地址,即想要测试连通性的远程主机的IP地址。在这个例子中,目标是位于192.168.1.x子网中的某台设备。
■ 当执行这个命令时,系统会从名为enx00e04c6666c0的网络接口发送ICMP回显请求数据包到IP地址为192.168.1.100的主机。
■ 输出中会显示从目标主机接收到的回显应答数据包的统计信息,包括数据包大小、序列号、TTL(Time To Live)值和往返时间(time),这些信息可以帮助判断网络延迟和丢包情况。如果没有收到回应,可能是因为目标主机的防火墙阻止了ICMP数据包,或者网络连接有问题。在这种情况下,将看到类似“Request timed out”或“Destination Host Unreachable”的错误消息。
⑤ ip route get 192.168.1.100
用于查询达到特定目标IP地址(在这个例子中是192.168.1.100)的最佳路由路径。
■ 相比于ip route show,这个命令提供了更详细的路由信息,包括源地址、下一跳地址、出站接口、路由的来源以及其他细节,这些信息对于网络诊断和理解数据包如何在网络中传输非常重要。
■ 当执行ip route get 192.168.1.100时,系统会返回一条或多条路由信息,具体取决于网络配置和路由表。输出通常包含以下信息:
▲源地址:系统将从哪个本地IP地址发送数据包。
▲下一跳地址:数据包离开本地网络后的下一个目的地IP地址。
▲出站接口:数据包将从哪个网络接口发送出去。
▲路由来源:路由条目是通过哪种方式获得的,比如静态配置、动态路由协议或直连网络。
▲标记:与路由相关的额外信息,如路由的优先级或标记。
⑥ sudo ip addr add dev enx00e04c6666c0 192.168.1.101/24
在Linux系统中给指定的网络接口分配一个新的IP地址。
■ 解析这个命令:
▲sudo:权限提升工具,允许普通用户执行需要root权限的命令。这是因为修改网络配置通常需要超级用户权限。
▲ip addr add:ip命令的子命令,用于添加新的网络地址到网络接口。ip命令是Linux中用于网络配置的强大工具,可以替代旧的ifconfig命令。
▲dev enx00e04c6666c0:指定要操作的网络接口。enx00e04c6666c0是网络接口的名称,它通常反映了接口的类型和MAC地址的一部分。
▲192.168.1.101/24:要添加的新IP地址及其子网掩码。网络前缀为192.168.1.,而后面的部分是主机地址。
■ 当执行这个命令时,系统会在enx00e04c6666c0网络接口上添加一个新的IP地址192.168.1.101,并且子网掩码为255.255.255.0(这等价于/24)。这意味着该接口现在可以使用这个地址进行网络通信,包括发送和接收数据包。
■ 需要注意的是,修改网络接口的配置可能会影响现有的网络连接,所以在生产环境中进行此类操作时应格外小心。
⑦ ifconfig
ifconfig:虽然在某些系统中可能被ip命令取代,但仍然可以用于显示和配置网络接口的基本信息。
■ ifconfig emac0 192.168.1.100
用于在Linux系统中手动配置网络接口emac0的IP地址为192.168.1.100。
■ 命令解析
▲ifconfig:是一个用于配置和显示网络接口的命令行工具。
▲emac0:是要配置的网络接口名称。在不同的系统中,网络接口的命名可能会有所不同,如eth0、enp0s3等。
▲192.168.1.100:是分配给emac0接口的IP地址。
■ 当执行ifconfig emac0 192.168.1.100时,emac0接口的IP地址将被设置为192.168.1.100。但是,需要注意的是,仅仅设置IP地址可能不足以使网络接口完全可用。为了使网络接口正常工作,可能还需要做以下几步:
▲设置子网掩码:通常需要与IP地址一起设置子网掩码,例如ifconfig emac0 192.168.1.100 netmask 255.255.255.0。或者使用CIDR表示法,如ifconfig emac0 192.168.1.100/24。
▲激活接口:确保网络接口处于激活状态,使用ifconfig emac0 up来激活接口。
▲配置默认网关:为了让系统能够访问外部网络,可能需要配置默认网关,这通常通过route或ip route命令完成。
▲保存配置:如果想要这些配置在系统重启后仍然生效,需要将它们保存到系统配置文件中,这通常涉及到编辑/etc/network/interfaces或使用网络管理工具如NetworkManager。
⑧ netstat
显示网络连接、路由表、接口统计信息等。
■ netstat 命令有许多选项,以下是一些最常用的:
▲-a:显示所有活动的连接,包括监听连接。
▲-n:以数字形式显示地址和端口号,不进行域名和协议名称的解析。
▲-l:只显示监听状态的连接。
▲-p:显示连接所属的程序名称或进程ID。
▲-t:只显示TCP连接。
▲-u:只显示UDP连接。
▲-r:显示路由表。
⑨ traceroute
跟踪数据包到达目标主机的路径,显示沿途经过的路由器。
■ 在命令行中使用traceroute的基本语法
traceroute [选项] 目标主机名或IP地址
常用选项
▲-n:使用数字形式显示主机名,不进行DNS解析。
▲-m 跳数:设置最大跳数,超过这个跳数的数据包将被丢弃。
▲-w 超时秒数:设置等待每次回复的超时时间。
▲-q 数据包数:设置每个TTL值下发送的数据包数量。
⑩ nslookup
查询DNS服务器,获取域名对应的IP地址。
■ 在命令行中使用nslookup的基本语法如下:
nslookup [选项] [hostname]
常用选项
▲-query=TYPE:指定查询的DNS记录类型,如A(IPv4地址)、AAAA(IPv6地址)、MX(邮件交换)、NS(名称服务器)等。
▲server IP:指定DNS查询应通过的特定DNS服务器。
至此,本文分享的内容就结束啦。