文章目录
Linux网络基础命令
1. ifconfig 和 ip
ip和ifconfig都是Linux系统中用于配置和管理网络接口的命令行工具。以下是对这两个命令的详细比较和介绍:
一、ifconfig命令
ifconfig是Linux中较老的用于显示和配置网络接口参数的命令。它提供了一套基本的网络配置功能,包括查看和修改IP地址、子网掩码、网关地址和MAC地址等。
-
常用功能:
-
特点:
- ifconfig命令的语法相对简单,但功能有限。
- 在较新的Linux系统中,ifconfig命令已经不被推荐使用,因为它的功能已被ip命令取代。
使用如下
ifconfig
二、ip命令
ip是Linux中较新的网络配置工具,它是Linux内核的一部分,在所有现代Linux发行版中都得到了支持。ip命令提供了一套更全面的网络配置功能,包括查看和修改路由表、流量控制、防火墙规则和其他高级设置。
-
常用功能:
- 查看网络接口信息:
ip addr show
或ip a
。 - 配置网络接口:使用
ip addr add
命令来配置网络接口的IP地址。例如,为eth0接口配置一个IP地址为192.168.1.100,子网掩码为255.255.255.0的地址:ip addr add 192.168.1.100/24 dev eth0
。 - 修改网络接口状态:使用
ip link set
命令来修改网络接口的状态。例如,启用eth0接口:ip link set eth0 up
;禁用eth0接口:ip link set eth0 down
。 - 添加静态路由:使用
ip route add
命令来添加静态路由。 - 查看网络接口的统计信息:使用
ip -s link
命令。 - 删除网络接口:使用
ip link delete
命令。
- 查看网络接口信息:
-
特点:
使用如下
ip -s addr show
显示各个字段解释
-
接口名称(例如:eth0, lo):
- 这是网络接口的标识符,如以太网接口(eth0)、环回接口(lo)等。
-
状态标志:
UP
:接口已启用。BROADCAST
:接口支持广播。MULTICAST
:接口支持组播。LOOPBACK
(仅对环回接口):接口是环回的。- 其他可能的状态标志,如
LOWER_UP
,表示物理层已连接。
-
MTU(Maximum Transmission Unit):
- 网络接口的最大传输单元,以字节为单位。
-
qdisc(Queueing Discipline):
- 队列规则,用于控制网络数据包的排队和转发。
-
状态:
- 接口的当前状态,如
state UNKNOWN
(未知)、state UP
(已启用)等。
- 接口的当前状态,如
-
组:
- 接口所属的组或类别。
-
链路层信息:
link/ether
:表示链路层是以太网。brd
:广播地址。permaddr
:永久MAC地址(如果适用)。
-
IP地址信息:
inet
:IPv4地址。inet6
:IPv6地址。scope
:地址的作用域(如global、link、host)。brd
(仅IPv4):广播地址。valid_lft
和preferred_lft
(仅IPv6):地址的有效期和首选期。
-
统计信息:
RX packets
:接收的数据包数量。TX packets
:发送的数据包数量。errors
:接收或发送时发生的错误数量。- 其他统计信息,如
dropped
、overruns
、frame
、fifo
等。
2. ss命令
ss命令是Linux系统中用于显示socket统计信息的工具,它是Socket Statistics的缩写。该命令可以提供有关TCP和UDP套接字以及其他类型套接字(如RAW、UNIX域套接字等)的详细信息。与netstat命令相比,ss命令通常更快且能够显示更多的连接状态信息。以下是对ss命令的详细解释:
一、基本用法
ss命令的基本语法格式如下:
ss [选项] [过滤条件]
二、常用选项
-n
:以数字形式显示地址和端口号,不进行服务名解析。-a
:显示所有套接字,包括监听和非监听状态的。-l
:仅显示监听状态的套接字。-p
:显示使用套接字的进程信息。-s
:显示套接字使用概况。-t
:仅显示TCP套接字。-u
:仅显示UDP套接字。
三、输出信息
ss命令的输出信息通常包括以下几个字段:
- Netid:表示网络协议类型,如tcp、udp、unix等。
- State:表示连接状态,如ESTABLISHED(已建立)、LISTEN(监听)、TIME_WAIT(时间等待)等。
- Recv-Q:接收缓冲队列的大小。
- Send-Q:发送缓冲队列的大小。
- Local Address:Port:本地地址和端口号。
- Peer Address:Port:对端地址和端口号(对于监听状态的套接字,此字段可能为空)。
四、使用示例
- 显示所有TCP连接:
ss -t -a
- 显示所有监听状态的套接字:
ss -l
- 显示指定端口的连接(如80端口):
ss -t -a | grep :80
- 显示所有UDP连接:
ss -u -a
- 显示套接字摘要信息:
ss -s
- 显示使用指定进程ID的套接字:
ss -p | grep <PID>
3. sar 命令
sar命令是Linux系统中用于收集和报告系统性能数据的工具,它也可以用于查看网络使用情况。以下是使用sar命令查看网络使用情况的详细步骤和解释:
一、使用sar查看网络使用情况
- 查看网络接口流量
使用sar命令的-n
选项可以显示网络统计信息。要查看网络接口(如以太网接口)的流量,可以使用以下命令:
sar -n DEV [时间间隔] [次数]
例如,要每秒刷新一次网络流量信息,并显示5次,可以使用以下命令:
sar -n DEV 1 5
输出信息将包括网络接口的名称、接收和发送的数据包数量、接收和发送的数据量(以KB为单位)等。
- 查看特定网络接口的流量
如果你只想查看特定网络接口的流量,可以在命令中指定接口名称。例如,要查看名为eth0的网络接口的流量,可以使用以下命令:
sar -n DEV -I eth0 [时间间隔] [次数]
- 查看网络协议统计信息
除了网络接口流量外,sar命令还可以显示其他网络协议统计信息,如TCP、UDP等。要查看TCP统计信息,可以使用以下命令:
sar -n TCP [时间间隔] [次数]
类似地,要查看UDP统计信息,可以使用以下命令:
sar -n UDP [时间间隔] [次数]
4. ping 命令
Ping命令是计算机网络中用于测试主机之间网络连接质量的工具。它基于ICMP(Internet Control Message Protocol,互联网控制消息协议)协议,通过发送ICMP回声请求消息并等待回声应答消息来检测目标主机是否可达以及测量往返时间(RTT, Round-Trip Time)。
一、基本用法
Ping命令的基本语法如下:
ping [选项] 目标主机
其中,目标主机可以是域名或IP地址。
二、常用选项
-c count
:指定发送请求的次数。例如,ping -c 4 example.com
会发送4个ICMP回声请求消息。-i interval
:设置每次发送请求之间的时间间隔(以秒为单位)。-s packetsize
:指定发送的数据包大小(以字节为单位)。默认大小通常是64字节。-t ttl
:设置IP数据包的生存时间(TTL, Time To Live)。-q
:以安静模式运行,只显示开始和结束信息,以及丢包率。-W timeout
:设置等待每个应答的超时时间(以秒为单位)。-v
:详细模式,显示更多的信息,如ICMP头部和数据包内容。
三、输出结果
Ping命令的输出结果通常包括以下几部分:
- PING:命令的开始标志。
- 目标主机:显示目标主机的域名或IP地址。
- 数据包大小:发送的数据包大小(包括ICMP头部和数据)。
- TTL:IP数据包的生存时间。
- 时间:每个数据包的往返时间(RTT),通常以毫秒为单位。
- 统计信息:包括发送的数据包数量、接收到的数据包数量、丢失的数据包数量、数据包丢失率、往返时间的最小值、平均值和最大值等。
四、使用示例
- 基本使用:
ping www.baidu.com
这将不断发送ICMP回声请求消息到example.com,直到用户手动停止(通常是通过按Ctrl+C)。
- 发送3个请求:
ping www.baidu.com -c3
这将只发送3个ICMP回声请求消息。
- 设置数据包大小:
ping -s 128 example.com
这将发送大小为128字节的数据包。