网络管理命令
网络管理命令
ping 命令
ping 命令基于 ICMP 协议,用于检测目标主机是否连通。
ping 192.168.122.122 # 检测该地址是否连通
ping -h # 查看可选参数
-i # 发送包的间隔时间
-s # 指定发包字节数
-S # 控制 ICMP 报文发送缓冲区的大小
-D # 打印时间戳
-f # flood ping(泛洪),可以对网卡进行压测

示例:打印时间戳

netstat 查看网络连接命令
netstat <option> | grep <service> # 常用 -anop
-a:显示所有活动连接和监听端口。
-l:显示侦听状态的服务。
-n:直接使用 IP 地址,而不尝试解析符号主机名、端口或用户名。
-o:显示每个连接的进程标识符(PID)和进程名称。这需要管理员权限。
-p:显示进程 ID 和名称(需要足够的权限)。
-r:显示路由表。
-t:显示 TCP 表。
-u:显示 UDP 表。
-i:显示网络接口的统计信息。
-s:显示每个协议的统计信息。
netstat -anop | grep 2000 # 示例
ss 查看套接字信息命令
ss 用于查看套接字信息,在大量连接场景下比 netstat 更高效。
ss
-t # 指定 TCP
-a # 所有协议
-p # 显示进程
-o # 显示计时器信息
-s # 显示所有连接使用率
-l # 只显示监听状态的
-n # 直接使用 IP 地址,而不尝试解析符号主机名、端口或用户名
ss -tulnp # 查看 TCP/UDP 监听端口及对应进程
ifconfig 命令
ifconfig # 显示网卡信息
ifconfig eth0 down # 关闭网卡(也可用 ifdown eth0)
ifconfig eth0 up # 开启网卡(也可用 ifup eth0)
netplan 命令
vim /etc/netplan/xxx.yaml # 修改网卡配置文件,netplan 从这里读取配置
sudo netplan apply # 应用配置并重新启动网卡
注意:centos 类的系统可以直接在 /etc/sysconfig/network-scripts 目录下找到每个网卡对应的配置文件;ubuntu 系统则使用上面的 netplan 命令。
ip 命令
用于替代更老的 ifconfig,功能更强大。
ip addr # 查看所有网卡信息(包括激活和未激活的)
ip link show up # 查看激活的网卡
ip link set eth0 down # 关闭 eth0 网卡
ip link set eth0 name enp6s0 # 更改网卡名称
ip addr add 192.168.102.101/24 dev eth0 # 添加 IP 地址及掩码
ip route add default via 192.168.0.1 # 添加默认网关
ip link delete eth0 # 删除网卡
NetworkManager 命令
nmtui # 以 UI 界面配置网络接口
sudo nmcli connection add type ethernet ifname eth0 con-name "MyStaticEth" \
ipv4.addresses 192.168.1.100/24 \
ipv4.gateway 192.168.1.1 \
ipv4.dns 8.8.8.8 \
ipv4.method manual # 配置静态 IP,配置文件默认生成在 /etc/NetworkManager 下
sudo nmcli connection add type ethernet ifname eth0 con-name "MyEth" ipv4.method auto # 配置 DHCP 自动获取
nmcli connection reload # 修改配置后进行重载
nmap 命令
nmap(network mapper)命令用于主机发现与端口扫描。
nmap -sn 192.168.122.1/24 # 探测网段内在线主机
nmap -p 22 192.168.122.1 # 扫描指定端口是否开放
-sS # SYN 扫描:发送 SYN 数据包,不完成三次握手,适合绕过防火墙
-sT # TCP 连接扫描:完成三次握手,适合无防火墙的环境
-sU # UDP 扫描
-sn # 只进行 ping 扫描(主机发现),不进行端口扫描
-p # 指定端口范围,如 -p 1-1000
-T # 设置扫描速度
-v # 增加详细输出
nc 网络扫描命令
nc(network cat)命令,用于网络探测。
nc [option] host port
# nc -zvw3 192.168.122.1 22 # 示例:检测能否 SSH 连接目标主机
-l # 监听
-p # 指定本地端口
-u # 使用 UDP,默认 TCP
-z # 扫描模式:连接成功即关闭
-v/-vv # 更详细的输出
-n # 不做 DNS 解析
-w # 超时时间
-k # 持续监听,允许多个连接
-N # 读到 EOF 时终止连接
iperf 网络性能测试命令
iperf 用于测试网络带宽、吞吐量、时延、抖动等性能指标。
测试项:带宽、时延、抖动、丢包率、多线程,以及 UDP 和 TCP 协议。
iperf -s # 启动服务器模式
iperf -c <server_ip> # 连接服务器 IP
# TCP 测试
-t <time> # 指定测试时间
-i <time> # 统计间隔时间
-p <port> # 服务端口
-J # JSON 格式输出
-P <num> # 指定线程数
-w <num> # 设定窗口大小
# UDP 测试
-u # UDP 模式
-b <bandwidth> # 设定 UDP 发送带宽,如 -b 100M
-l <length> # 设定 UDP 报文长度
ethtool 网卡管理命令
ethtool 是用于配置和诊断以太网设备的工具,可查看网卡驱动与硬件信息。
基本语法:ethtool [选项] [网络接口名]
ethtool ens00 # 查看网卡基本信息

ethtool -i ens00 # 查看驱动基本信息

ethtool -S ens00 # 查看网卡统计信息

ethtool -k ens00 # 查看网卡支持的功能
ethtool -K ens00 rx on # 启用接收校验和功能
wget 资源获取命令
支持从网络上下载数据,支持 http/https 协议,也可以通过代理服务器下载。
wget [URL]
wget -O file.zip https://www.samples.com # 下载并保存为 file.zip
wget --user=[username] --password=[password] [URL] # 使用账号密码认证
wget --proxy [proxy_server:port] [URL] # 使用代理
wget --no-check-certificate [URL] # 不检查 SSL 证书
curl 传输数据命令
支持 HTTP、HTTPS、FTP、TELNET、代理等多种传输方式,用于下载和请求数据,也可用于测试或与服务器交互。
curl [option] [URL]
curl https://www.samples.com -o file.zip # 下载文件
curl -X GET [URL] # 发送 GET 请求
curl -k [URL] # 连接 HTTPS 网站时不进行 SSL 验证
curl -# [URL] # 显示进度条
-I # 只显示 HTTP 响应头,不显示响应体
-X # 指定请求方法(RESTful 接口)
-H # 指定请求头,例如 -H "Accept: application/vnd.docker.distribution.manifest.v2+json",vnd 为 MIME 类型的自定义格式
-O # 下载文件到本地,并使用相同的文件名
-v # 显示详细流程信息
curl --unix-socket /var/run/docker.sock -X GET "http://localhost/v2/_catalog" # 通过 unix-socket 通信,无需经过 TCP 网络栈

sshpass 命令
sshpass 用于非交互式地向 ssh 传递密码。
sshpass -p 'password' ssh user@ip '命令'
sshpass -p 'password' ssh ip '命令' # 不指定用户时,默认为 root 用户
sshpass -p 'password' ssh -o StrictHostKeyChecking=no ip # 跳过主机密钥检查
ssh 命令
ssh 用于远程登录主机。
ssh ip # 连接指定 IP 的主机
openssl 加密命令
openssl 可用于生成 SSL 密钥和证书,用于加密通信。
openssl [command] [command_opts] [command_args]
openssl list -cipher-commands # 列出可用的加密命令
# 生成 RSA 密钥对:-out 指定私钥文件保存位置,2048 为密钥长度
openssl genrsa -out private.key 2048
# 创建证书签名请求(CSR)
openssl req -new -key private.key -out csr.csr
# 如果不想逐项交互输入国家等信息,可通过以下两种方式避免:
# 方法一:通过 -subj 直接指定主题信息
openssl req -new -key private.key -out csr.csr -subj "/C=CN/ST=Beijing/L=Beijing/O=MyOrganization/OU=MyUnit/CN=example.com"
req # 生成证书签名请求
-new # 生成新的 CSR
-key # 指定私钥
-out # 指定 CSR 文件的保存路径
-subj # 指定主题信息
# 方法二:使用配置文件方式
# csr.conf,CSR 的内容由主题信息和密钥信息决定
[dn]
C = CN
ST = Beijing
L = Beijing
O = MyOrganization
OU = MyUnit
CN = example.com
openssl req -new -key private.key -out csr.csr -config csr.conf
# 查看 CSR 的文本内容
openssl req -in csr.csr -text
# 生成自签名证书,X.509 是一种国际标准,证书通常以 .pem 和 .crt 结尾
openssl x509 -req -days 365 -in csr.csr -signkey private.key -out certificate.crt
-in # 指定 CSR 证书签名请求
-signkey # 指定签名 key
-out # 输出证书
# 查看证书文本内容
openssl x509 -in certificate.crt -text -noout
-noout # 不输出证书的二进制内容
# digest 摘要算法:常用的包括 md5、sha256 等
openssl digest -md4 [filename]
openssl list -1 -digest-commands # 列出摘要命令
openssl list -1 -public-key-algorithms # 列出公钥算法
iptables — IPv4/IPv6 包过滤和 NAT 管理工具
iptables 的数据处理流程是"表 -> 链 -> 规则"。
iptables 管理的表有五种:
1、filter:默认表,如果没有指定 -t 选项,则使用默认表
filter 表内置三种链:
- INPUT:目的地址是本地 socket 的包
- OUTPUT:本地产生的、准备发出的包
- FORWARD:经过该网关转发的包
2、nat 表:用于网络地址转换,在建立新连接时生效,主要链有:
- PREROUTING:数据包刚进来、还没做路由决策之前,用途是 DNAT 目的地址转换,如端口转发
- POSTROUTING:数据包发出去之前(路由决策之后),用途是 SNAT 源地址转换
- OUTPUT:本机自身发出的流量,用途是本地程序访问外部时的 DNAT
- INPUT:目的地址是本地 socket 的包
3、mangle 表:用于修改数据包的特定字段(如 TTL、TOS 等)
4、raw 表:配合 NOTRACK 目标使用,让特定数据包不经过连接追踪
5、security 表:用于强制访问控制(MAC)网络规则
iptables -L # 列出当前的 iptables 规则
iptables -t nat -nL # 列出 nat 表的规则
# 常用命令
-A # 追加规则(链尾)
-D # 删除规则
-I # 插入规则(链首)
-R # 替换规则
# 参数
-4 # IPv4
-6 # IPv6
-p # 协议
-s # 源地址
-d # 目的地址
-m # 匹配扩展模块
-j # 动作目标:ACCEPT、DROP、REJECT、DNAT/SNAT、LOG、RETURN
--dport # 目的端口
--sport # 源端口
# 示例
iptables -I INPUT -s 192.168.122.0/24 -p tcp --dport 6443 -j DROP

浙公网安备 33010602011771号