目录
一、网络命令
1. ifconfig
① 查看网络接口信息: 运行 ifconfig 命令,可以列出当前系统中所有的网络接口信息,包括接口名称、MAC 地址、IP 地址、子网掩码等。
ifconfig
② 配置网络接口属性: 可以使用 ifconfig 命令配置网络接口,如设置 IP 地址、子网掩码、广播地址等。
ifconfig 网卡名 ip netmask 255.255.255.0
ifconfig 网卡名:00 ip/子网掩码
#设置虚拟网卡
③ 启用或禁用网络接口: 你可以使用 ifconfig 命令启用或禁用特定的网络接口。
ifconfig 网卡名 up
#启用网卡接口,或者 ip link set 网卡名 up,或者 ifup 网卡
ifconfig 网卡名 down
#禁用网卡接口,或者 ip link set 网卡名 down,或者 ifdown 网卡
④ 设置硬件地址(MAC 地址): 可以使用 ifconfig 命令设置网络接口的硬件地址(也称为 MAC 地址)。
ifconfig 网卡名 hw ether 新的MAC地址
# hw:表示硬件地址(Hardware Address)的意思
# ether: 指定后面接着的是一个以太网地址(MAC 地址)。
注意:以上命令均为临时命令,重启失效;修改配置前,需要先关闭网卡,修改后需要再启动网卡。如需要永久修改网卡配置需要修改配置文件:/etc/sysconfig/network-scripts/网卡名
2. ip
ip 命令是用于在 Linux 系统中配置网络接口、路由表以及其他网络相关任务的强大工具。它是在更新的 Linux 发行版中取代了传统的 ifconfig 和 route 命令,提供了更为灵活和强大的功能。
① 显示网络接口信息:列出系统中所有网络接口的信息,包括接口名称、IP 地址、MAC 地址等。
ip addr show
ip a #简写
② 配置网络接口属性:
ip (addr) add 192.168.1.10/24 dev eth0
#这个命令将为 eth0 接口配置 IP 地址为 192.168.1.10,子网掩码为 24。你也可以使用 ip link set 命令来启用或禁用特定的网络接口。dev eth0: 将这个IP地址分配给网络接口eth0。
③ 查看路由表:显示系统的路由表,包括目的地址、网关、接口以及其他相关信息。
ip route (show)
④ 添加静态路由:
ip route add 目标网络/子网掩码 via 网关
#将目标网络通过网关添加到路由表中
#可以编辑/etc/sysconfig/network-scripts/网卡名称,并添加路由信息:目标网络/子网掩码 via 网关
#修改配置文件后需要重启网卡:systemctl restart network
⑤ 显示邻居信息:显示系统的邻居信息,包括 IP 地址、MAC 地址等。
ip neigh show
ip n #简写
3. traceroute
Traceroute 是一个网络诊断工具,用于跟踪数据包从源到目的地的路径,并显示每一跳的延迟。
Traceroute 命令语法:
traceroute [选项] 目标主机
Traceroute 命令选项:
-I:使用 ICMP Echo 请求代替 UDP 数据包。
-T:使用 TCP SYN 数据包代替 UDP 数据包。
-U:使用 UDP 数据包(默认选项)。
-p <端口号>:指定 UDP 或 TCP 的目标端口号。
-n:直接显示 IP 地址,不执行反向 DNS 查询。
-m <最大跳数>:指定最大跳数。
-w <超时时间>:设置等待每个回复的超时时间。
4. ping
ping 命令用于测试与目标主机之间的网络连接。
基本用法:
ping <目标主机>
选项:
-c <次数>:指定发送数据包的次数。
-s <数据包大小>:指定发送数据包的大小。
-i <间隔时间>:设置发送数据包的时间间隔。
-W <超时时间>:设置等待回应的超时时间。
-q:以静默模式运行,只输出关键信息。
5. route
route 命令用于查看和配置IP路由表。可以参考2. ip
① 显示当前的路由表信息:
route -n
② 添加/删除静态路由:
route add -net 目标网络 netmask 子网掩码 gw 网关
route del -net 目标网络 netmask 子网掩码 gw 网关
# gw代表"gateway",即网关的意思
③ 添加/删除默认网关:
route add default gw 网关
route del default gw 网关
④ 指定出口网卡:
route add -net 目标网络 netmask 子网掩码 dev 网卡名称
⑤ 清除所有路由表:
route flush #慎用
注意:在较新的系统中,route 命令已经被弃用,推荐使用 ip route 命令来管理路由表。
6. netstat
netstat 命令用于显示网络状态信息,包括网络连接、路由表、接口统计等。
netstat 命令用法:
netstat [选项]
netstat 命令选项:
-a:显示所有连接和监听端口的信息。
-t:仅显示TCP连接。
-u:仅显示UDP连接。
-n:以数字形式显示地址和端口号,而不进行域名解析。
-r:显示路由表。
-i:显示网络接口信息。
-s:显示网络统计信息,如传输数据量、错误等。
-p:显示建立相关连接的程序名和PID。
-l:仅显示监听状态的连接。
-c:持续显示网络状态信息,类似于动态刷新。
注意,netstat 命令在较新的系统中可能已经被弃用,推荐使用 ss 命令或 ip 命令来替代。
7. ss
ss 命令是一个强大的工具,用于显示套接字统计信息,包括网络连接、路由表、接口统计等。
ss 命令用法:
ss [选项]
ss 命令选项:
-t:仅显示TCP连接。
-u:仅显示UDP连接。
-l:仅显示监听状态的连接。
-a:显示所有连接的信息。
-n:以数字形式显示地址和端口号,而不进行域名解析。
-p:显示建立相关连接的程序名和PID。
-s:显示套接字统计摘要信息。
-i:显示网络接口统计信息。
-r:显示路由表信息。
-o:显示定时器信息。
8. dig
dig 是一个用于查询 DNS(Domain Name System)信息的命令行工具。它可以用来查询域名解析相关的信息,如域名对应的IP地址、邮件服务器记录等。
dig 命令格式:
dig [@server] [options] [name] [type]
# @server:指定要查询的DNS服务器地址。
# options:可选的命令选项,用于控制查询行为。
# name:要查询的域名。
# type:查询的记录类型,如A、MX、NS等,默认为A记录。
dig 命令示例:
查询指定域名的A记录:将域名解析为IPv4地址。
dig example.com
9. arp
arp 命令用于显示和操作系统的ARP(Address Resolution Protocol)缓存。
arp 命令语法:
arp [选项] [主机]
# 选项:用于控制arp命令的行为。
# 主机:要查询的主机的IP地址或主机名。
arp 命令选项:
-a:显示当前ARP缓存中的所有条目。
-d:删除指定主机的ARP缓存条目。
-s:添加静态ARP条目,格式为 arp -s 主机 MAC地址。
-n:显示数字格式的地址(不执行反向域名解析)。
-v:详细显示ARP缓存的信息。
-i:指定网络接口,仅显示指定接口的ARP缓存信息。
-e:以可读格式显示ARP缓存信息。
-c:清除ARP缓存中的所有条目。
-V:显示arp命令的版本信息。
示例:
① 显示当前系统的 ARP 表:
arp -a
② 添加静态 ARP 条目:
arp -s IPAddress MACAddress
③ 删除 ARP 条目:
arp -d IPAddress
10. iwconfig
iwconfig 命令用于配置无线网络接口的参数。
iwconfig 命令语法:
iwconfig [无线接口名] [选项]
# 无线接口名:要配置的无线网络接口的名称,例如wlan0。
# 选项:用于控制iwconfig命令的行为。
iwconfig 命令选项:
mode:设置无线网络接口的操作模式,如Ad-Hoc(点对点模式)或Managed(基础设施模式)。
essid:设置无线网络的ESSID(扩展服务集识别码)。
key:设置无线网络的加密密钥。
channel:设置无线网络的信道。
ap:设置要连接的访问点的MAC地址。
freq:设置无线网络的频率。
txpower:设置无线网络接口的传输功率。
rate:设置无线网络接口的传输速率。
nickname:设置无线网络接口的昵称。
commit:应用配置更改。
11. nslookup
nslookup 命令用于查询DNS(Domain Name System)信息,包括域名解析和IP地址查询。
nslookup 命令语法:
nslookup [选项] [要查询的主机名或IP地址] [DNS服务器]
# 选项:用于控制nslookup命令的行为。
# 要查询的主机名或IP地址:指定要查询的域名或IP地址。
# DNS服务器:可选参数,指定要使用的DNS服务器地址。
nslookup 命令选项:
-query=类型:指定查询类型,如A(IPv4地址)、AAAA(IPv6地址)、MX(邮件交换记录)、NS(域名服务器记录)等。
-debug:显示调试信息。
-timeout=秒数:设置查询超时时间。
-class=类:指定查询类别,通常为IN(Internet类)。
-type=类型:与-query选项相同,指定查询类型。
-server=DNS服务器:指定要查询的DNS服务器地址。
-port=端口号:指定要使用的端口号进行查询
12. host
host 命令用于执行DNS查询,显示主机名对应的IP地址或反向查询。
host 命令语法:
host [选项] [要查询的主机名或IP地址] [DNS服务器]
# 选项:用于控制host命令的行为。
# 要查询的主机名或IP地址:指定要查询的域名或IP地址。
# DNS服务器:可选参数,指定要使用的DNS服务器地址。
host 命令选项:
-t 类型:指定查询的记录类型,如A(IPv4地址)、AAAA(IPv6地址)、MX(邮件交换记录)等。
-a:显示所有与主机名相关的记录。
-c 类别:指定查询的类别,通常为IN(Internet类)。
-v:显示详细信息,包括查询时间和使用的DNS服务器。
-W 超时:设置查询超时时间。
-R:关闭递归查询。
-4:强制使用IPv4地址进行查询。
-6:强制使用IPv6地址进行查询。
13. whois
whois 命令用于查询域名的注册信息。
whois 命令语法:
whois [选项] [要查询的域名]
whois 命令选项:
-h:指定要查询的whois服务器。
-p 端口号:指定whois服务器的端口号。
-H:显示whois服务器的帮助信息。
-a:显示完整的whois信息,包括联系人信息和注册日期。
-r:显示原始的whois信息,不进行解析。
-T 类型:指定要查询的对象类型,如domain、person等。
-i:显示whois服务器的网站信息。
-c:显示whois查询结果的缓存信息。
-g:显示whois服务器的通用查询格式。
-l:显示whois服务器的利用条款。
14. tracepath
tracepath 命令用于跟踪数据包在网络上的路径。
tracepath 命令语法:
tracepath [选项] 目标主机
tracepath 命令选项:
-n:以数字形式显示IP地址,而不是尝试进行反向DNS查询。
-m 最大跃点数:指定最大跃点数,即跟踪路径的最大跳数。
-b:在每个跃点处显示路径MTU(最大传输单元)。
-l:显示每个跃点的路径长度。
-e:显示每个跃点的路径负载。
-p 端口号:使用指定端口号进行跟踪路径。
15. curl
curl 是一个功能强大的命令行工具,用于传输数据,支持多种协议。
curl 命令语法:
curl [选项] URL
# URL:指定要访问的URL地址。
curl 命令选项:
-X <HTTP方法>:指定要使用的HTTP方法,如GET、POST等。
-H "Header: value":添加自定义HTTP标头。
-d "data":发送POST请求时,用于发送数据。
-o <file>:将下载的内容保存到指定文件。
-i:显示HTTP响应头信息。
-v:显示详细的传输信息,包括请求和响应头。
-x <proxy>:使用代理服务器进行请求。
--connect-timeout <seconds>:设置连接超时时间。
-s:禁止显示下载进度条。
-L:跟随重定向。
示例:
发送GET请求:
curl ip
16. hostname
hostname 可以查看当前系统的主机名信息,设置新的主机名,显示主机的IP地址以及其他相关信息。
hostname 命令语法:
hostname [选项] [新主机名]
常用选项介绍:
-f:显示完全合格的域名(FQDN)。
-s:显示短主机名,即不显示域名部分。
-d:显示域名部分。
-i:显示主机的IP地址。
-a:显示所有主机名(包括别名)。
-y:显示NIS域。
--version:显示hostname命令的版本信息。
--help:显示帮助信息,列出可用选项和示例。
17. wget
wget 是一个常用的命令行工具,用于从网络中下载文件。
wget 命令语法:
wget [选项] [URL]
常用选项介绍:
-O <file>:将下载的内容保存到指定文件。
-P <directory>:将下载的文件保存到指定目录。
-c:继续下载未完成的文件。
-r:递归下载,下载整个目录。
-np:不向上追溯父目录。
-nc:不覆盖已存在的文件。
-nv:关闭下载时的输出信息。
-b:后台下载文件。
--limit-rate=<rate>:限制下载速度。
--user=<username>:指定用户名进行HTTP基本认证。
--password=<password>:指定密码进行HTTP基本认证。
--no-check-certificate:不验证SSL证书。
示例:
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 指定wget下载的文件保存路径为/etc/yum.repos.d/CentOS-Base.repo,这通常是CentOS系统中存放yum软件源配置文件的目录
18. mtr
mtr 命令用于网络诊断,结合了 traceroute 和 ping 的功能,可以显示到目标主机的网络路径以及每个节点的延迟信息。
mtr 命令语法:
mtr [选项] 目标主机
常用选项介绍:
-n:以IP地址形式显示节点,而不进行反向DNS解析。
-r:显示路由器的名称。
-c <次数>:指定发送数据包的次数。
-i <秒数>:设置数据包发送的间隔时间。
-s <字节数>:设置发送数据包的大小。
-4:使用IPv4进行网络诊断。
-6:使用IPv6进行网络诊断。
-B:显示每个节点的平均带宽。
-h:显示帮助信息,列出可用选项和示例。
19. iftop
iftop 是一个用于显示网络流量的命令行工具(一般需要安装),它可以实时监测网络流量并以易读的方式展示。
iftop 工具安装(yum):
yum install -y epel-release.noarch
yum install -y iftop
iftop 命令语法:
iftop [选项]
常用选项介绍:
-i interface:指定监测的网络接口,例如 -i eth0。
-B:以字节为单位显示流量。
-n:直接显示 IP 地址,不进行域名解析。
-F filter code:使用指定的 BPF 过滤器来过滤要监测的流量。
-N:以端口号而不是服务名称显示端口。
-h:显示帮助信息,列出可用选项。
示例:
iftop -i ens33
20. iotop
iotop 是一个用于监视磁盘I/O使用情况的命令行工具,需要安装。
选项:
-o, --only:只显示有I/O活动的进程。
-b, --batch:以批处理模式运行,不需要用户输入。
-n NUM, --iter=NUM:指定要显示的迭代次数。
-P, --processes:显示每个进程的详细信息。
-u USER, --user=USER:只显示指定用户的进程。
示例:iotop
21. tcpdump
tcpdump 是一个网络抓包工具,可以用来捕获网络数据包并对其进行分析。可以使用 tcpdump 命令来监视网络流量并进行网络故障排除。
tcpdump 命令的基本语法:
tcpdump [options] [expression]
常用选项介绍:
-i interface:指定要监听的网络接口,例如 -i eth0。
-n:以数字形式显示 IP 地址,而不进行域名解析。
-X:以十六进制和 ASCII 显示数据包的内容。
-c count:仅捕获指定数量的数据包后就停止。
-s snaplen:设置捕获数据包的长度。
-w file:将捕获的数据包写入指定的文件中,而不是在终端显示。
-vvv: 增加详细程度级别(可多次使用)。
expression:可以是过滤表达式,用于过滤要捕获的数据包。
示例:
tcpdump -i ens33
# 捕获所有流经特定接口(ens33)的数据包
tcpdump -i ens33 -nn src host 192.168.190.100
# tcpdump:启动网络数据包捕获工具。
# -i ens33:指定要监听的网络接口为 ens33。
# -nn:禁用主机名解析和端口号解析,只显示IP地址和端口号。
# src host 192.168.190.100:过滤条件,只捕获源IP地址为 192.168.190.100 的数据包。
# 在网络接口 ens33 上捕获并显示源IP地址为 192.168.190.100 的数据包,同时禁用了主机名解析和端口号解析,只显示IP地址和端口号信息。
22. iperf
iperf 是一个网络性能测试工具,它可以在两个系统之间进行网络带宽测试。它支持 TCP 和 UDP 测试,并提供了丰富的选项来定制测试参数。
iPerf 命令的基本语法:
iperf [选项]
iPerf 命令的选项:
-s: 作为服务器运行 iPerf。
# 示例: iperf -s
-c: 作为客户端连接到指定的 iPerf 服务器。
# 示例: iperf -c server_ip
-p: 指定服务器或客户端使用的端口号。
# 示例: iperf -s -p 5001
-t: 指定测试的持续时间(以秒为单位)。
# 示例: iperf -c server_ip -t 60
-i: 指定报告间隔(以秒为单位)。
# 示例: iperf -c server_ip -i 5
-w: 指定 TCP 窗口大小。
# 示例: iperf -c server_ip -w 1M
-u: 使用 UDP 协议进行测试。
# 示例: iperf -c server_ip -u
-b: 指定 UDP 流量的带宽。
# 示例: iperf -c server_ip -u -b 10M
-d: 同时进行双向测试。
# 示例: iperf -c server_ip -d
-r: 进行双向测试,但是只在服务器端启动测试。
# 示例: iperf -s -r
23. ethtool
ethtool 是一个命令行工具,用于配置和显示以太网适配器的参数。它可以用于获取和设置网络接口的状态,速度,双工模式,传输协议,接收和发送环的大小等信息。
ethtool 命令的基本语法:
ethtool [选项] [设备名]
ethtool 命令的选项:
-s: 设置设备的参数。
# 示例: ethtool -s eth0 speed 100 duplex full autoneg off
-a: 显示所有设备的设置。
# 示例: ethtool -a
-i: 显示设备的驱动程序信息。
# 示例: ethtool -i eth0
-d: 显示设备的驱动程序信息和注册的统计信息。
# 示例: ethtool -d eth0
-p: 在设备上启动物理层的包络测试。
# 示例: ethtool -p eth0
-t: 在设备上启动自检测试。
# 示例: ethtool -t eth0
-S: 显示设备的统计信息。
# 示例: ethtool -S eth0
-l: 显示设备的支持的链接模式。
# 示例: ethtool -l eth0
-L: 设置设备的链接模式。
# 示例: ethtool -L eth0 speed 1000 duplex full
-m: 显示设备的 EEPROM 信息。
# 示例: ethtool -m eth0
24. scp and sftp
scp(Secure Copy Protocol)和 sftp(Secure File Transfer Protocol)都是用于在本地和远程系统之间安全地传输文件的命令行工具。
- scp 是一个基于 SSH 的命令,它提供了一个安全的方式来复制文件和目录。
- sftp 也是基于 SSH 的,它提供了一个交互式的文件传输工具,类似于 FTP。
scp 命令的基本语法:
scp [选项] [源文件] [目标文件]
scp 命令的选项:
-P: 指定远程 SSH 服务器的端口。
# 示例: scp -P 2222 file.txt user@remotehost:/path/to/destination
-r: 递归地复制目录及其内容。
# 示例: scp -r directory user@remotehost:/path/to/destination
-v: 显示详细的输出,有助于调试。
# 示例: scp -v file.txt user@remotehost:/path/to/destination
sftp 命令的基本语法:
sftp [user@]host
sftp 命令的选项:
-P: 指定远程 SSH 服务器的端口。
示例: sftp -P 2222 user@remotehost
-b: 从指定的文件中读取批处理命令。
示例: sftp -b batchfile user@remotehost
-v: 显示详细的输出,有助于调试。
示例: sftp -v user@remotehost
25. rsync
rsync 是一个快速、多功能的文件复制和同步工具,它可以在本地系统之间复制文件,也可以在本地和远程系统之间复制文件。rsync 使用一个特殊的算法,只复制文件的差异部分,这使得 rsync比其他文件复制工具更快。
rsync 命令的基本语法:
rsync [选项] [源文件] [目标文件]
rsync 命令的选项:
-v: 显示详细的输出,有助于调试。
-r: 递归地复制目录及其内容。
-a: 归档模式,递归地复制目录及其内容,并保持所有文件的属性。
-z: 压缩文件在传输过程中,可以减少网络流量。
-h: 以人类可读的格式显示输出。
-P: 显示进度信息,并在传输过程中保持文件的部分传输。
-e: 指定使用的远程 shell 程序。
示例:从本地系统复制目录到远程系统
rsync -r /path/file user@remotehost:/path/file
26. iflugstatus
可以查看所有网络接口的状态,或是指定网络的状态。
27. nload
nload 是一个用于监控网络流量的命令行工具(需要安装epel源)。它可以显示实时的网络流量统计信息,包括接收和发送的数据包数量、接收和发送的数据量、接口的速度等。
nload 命令的基本语法:
nload [选项] [网络接口]
nload 命令的选项:
-h, --help: 显示帮助信息。
-V, --version: 显示版本信息。
-i, --interfaces: 显示所有的网络接口。
-m, --monitor: 选择要监控的网络接口。
-u, --unlimited: 不限制显示的速度。
-t, --traffic: 显示总的流量统计信息。
-p, --processes: 显示每个进程的网络流量。
-s, --sort: 按照指定的字段排序。
-d, --delay: 设置更新的延迟时间。
-U, --realtime: 使用实时模式。
28. nmcli
nmcli 是 NetworkManager 的命令行工具,用于管理网络连接。它可以用于配置、监视和控制系统上的网络连接。
选项:
connection:用于连接管理的操作。
device:用于设备管理的操作。
general:一般操作,如显示版本信息等。
monitor:监视 NetworkManager 的状态变化。
help:获取帮助信息。
示例:
① 显示所有活动连接:
nmcli connection show
② 启用/禁用连接:
nmcli connection up <connection_name>
nmcli connection down <connection_name>
③ 显示网络设备状态:
nmcli device status
29. bmon
bmon 是一个简单的命令行工具(需要安装),用于监视网络带宽使用情况。它可以显示实时的网络流量信息,并以直观的方式展示网络接口的使用情况。
选项:
-p, --interfaces:指定要监视的网络接口。
-o, --output:将输出保存到文件。
-r, --reset:在启动时重置所有统计信息。
-h, --help:获取帮助信息。
示例:
① 显示所有网络接口的实时流量:
bmon
② 仅显示特定网络接口的实时流量:
bmon -p 网卡
③ 将输出保存到文件:
bmon -o output.txt
30. namp
namp 是一个网络扫描和主机发现工具(需要安装),用于确定计算机网络上的主机和服务。它可以执行各种扫描类型,以便管理员能够了解网络上活动的主机、开放的端口以及运行的服务。
选项:
-sS:TCP SYN 扫描(半开放扫描)。
-sU:UDP 扫描。
-O:启用操作系统检测。
-A:启用操作系统检测、版本检测和脚本扫描。
-p:指定要扫描的端口范围。
-v:详细模式,显示更多信息。
-h:获取帮助信息。
示例:
① 扫描单个主机的基本信息:
nmap target_ip
② 扫描整个子网的主机:
nmap target_subnet
③ 执行详细的服务版本检测:
nmap -sV target_ip
31. vnstat
vnstat 是一个用于监视网络流量的命令行工具(需要安装),它可以记录和显示网络接口的流量使用情况,包括每天、每月和每年的流量统计信息。
语法:
vnstat [options]
选项:
-i, --iface:指定要监视的网络接口。
-h, --hours:以小时为单位显示流量统计信息。
-d, --days:以天为单位显示流量统计信息。
-m, --months:以月为单位显示流量统计信息。
-l, --live:实时显示流量使用情况。
-tr, --top10:显示消耗最多流量的前十个应用程序或主机。
示例:
① 显示所有网络接口的流量统计信息:
vnstat -l
② 显示特定网络接口的流量使用情况:
vnstat -i 网卡接口
③ 显示每天的流量使用情况:
vnstat -d