博客主页:christine-rr-CSDN博客
hi,大家好,我是christine-rr ! 今天来分享一下linux常用命令------网络管理

linux常用命令------网络管理命令
文章目录
-
- linux常用命令------网络管理命令
- 六、网络管理
-
- [1. ping:网络连通性测试](#1. ping:网络连通性测试)
- [2. ifconfig:查看 / 配置网络接口(传统命令)](#2. ifconfig:查看 / 配置网络接口(传统命令))
- [3. ip address(缩写:ip a):查看 / 配置网络接口(现代命令)](#3. ip address(缩写:ip a):查看 / 配置网络接口(现代命令))
- [4. curl : 网络数据传输工具(支持多协议)](#4. curl : 网络数据传输工具(支持多协议))
- [5. wget : 命令行文件下载工具](#5. wget : 命令行文件下载工具)
- [6. scp :基于 SSH 的安全文件复制](#6. scp :基于 SSH 的安全文件复制)
- [7. telnet : 远程登录 / 端口连通性测试](#7. telnet : 远程登录 / 端口连通性测试)
- [8. ssh 安全远程登录](#8. ssh 安全远程登录)
- [9. nslookup: 域名解析查询](#9. nslookup: 域名解析查询)
- [10. dig:域名解析查询](#10. dig:域名解析查询)
- [11. netstat : 查看网络连接 / 端口状态(传统命令)](#11. netstat : 查看网络连接 / 端口状态(传统命令))
- [12. ss:查看网络连接](#12. ss:查看网络连接)
- [13. route:管理路由表](#13. route:管理路由表)
- [14. arp:管理 ARP 缓存](#14. arp:管理 ARP 缓存)
- [15. firewall-cmd:firewalld 防火墙管理工具](#15. firewall-cmd:firewalld 防火墙管理工具)
- [16. ufw :简化版防火墙工具](#16. ufw :简化版防火墙工具)
六、网络管理
1. ping:网络连通性测试
核心功能 :通过发送 ICMP(互联网控制消息协议)回声请求包,检测本地主机与目标主机 / IP 之间的网络连通性、延迟及丢包率。
注意:部分服务器会禁用 ICMP 协议,导致 ping 请求超时,但不代表网络完全不可用(可能只是 ping 被屏蔽)。
常用参数:
-c <次数>
:指定发送 ping 包的数量(默认无限发送,Ctrl+C 终止)。-i <间隔>
:指定发送 ping 包的时间间隔(单位:秒,默认 1 秒)。-s <大小>
:指定 ping 包的数据包大小(单位:字节,默认 56 字节)。
示例:
bash
ping -c 3 www.baidu.com #测试与百度服务器的连通性,发送3个包
ping -i 2 -c 5 192.168.1.1 #测试与本地网关192.168.1.1的连通性,间隔2秒发送1个包
2. ifconfig:查看 / 配置网络接口(传统命令)
核心功能:Linux 早期用于查看、配置网络接口(如网卡、本地回环)的 IP 地址、子网掩码、MAC 地址等信息的命令。
注意 :目前主流 Linux 发行版(如 Ubuntu 20.04+、CentOS 7+)已逐渐用ip
命令替代ifconfig
,需安装net-tools
包才能使用(如apt install net-tools
或yum install net-tools
)。
常用用法:
- 直接输入
ifconfig
:查看所有激活的网络接口配置。 ifconfig <接口名>
:查看指定接口(如eth0
、ens33
、lo
)的配置。ifconfig <接口名> <IP地址> netmask <子网掩码>
:临时配置接口 IP(重启网络或系统后失效)。ifconfig <接口名> up/down
:激活 / 禁用指定网络接口。
示例:
bash
ifconfig # 查看所有激活的网络接口
ifconfig ens33 192.168.1.100 netmask 255.255.255.0 # 给网卡ens33配置IP为192.168.1.100,子网掩码255.255.255.0
ifconfig ens33 down # 禁用网卡ens33
3. ip address(缩写:ip a):查看 / 配置网络接口(现代命令)
核心功能 :Linux 内核推荐的新一代网络配置命令,功能比ifconfig
更强大,支持查看 / 配置 IP、路由、ARP 等网络参数,是目前的主流工具。
常用用法:
ip a
:查看所有网络接口的详细配置(包括激活 / 未激活的接口、IP、MAC、子网掩码等)。ip a add <IP地址>/<子网掩码位数> dev <接口名>
:给指定接口添加 IP(临时生效)。ip a del <IP地址>/<子网掩码位数> dev <接口名>
:删除指定接口的 IP。ip link set <接口名> up/down
:激活 / 禁用指定接口。
示例:
bash
ip a # 查看所有网络接口配置(最常用)
ip a add 192.168.1.101/24 dev ens33 # 给ens33添加IP 192.168.1.101/24(24代表子网掩码255.255.255.0)
ip link set ens33 up # 激活接口ens33
4. curl : 网络数据传输工具(支持多协议)
核心功能:通过 HTTP、HTTPS、FTP、SFTP 等多种协议发送 / 接收数据,常用于测试 API 接口、下载文件、模拟 HTTP 请求等,是开发和运维的常用工具。
常用参数:
-X <方法>
:指定 HTTP 请求方法(如 GET、POST、PUT、DELETE,默认 GET)。-d <数据>
:发送 POST 请求的数据(如表单数据、JSON 字符串)。-H <头部>
:指定 HTTP 请求头(如Content-Type: application/json
)。-O
:下载文件并保留远程文件名(默认只打印内容到终端)。-L
:自动跟随 HTTP 重定向(如访问短链接时跳转)。
示例:
bash
# 发送GET请求,查看百度首页内容(打印到终端)
curl www.baidu.com
# 下载文件并保留原名(如下载nginx安装包)
curl -O http://nginx.org/download/nginx-1.24.0.tar.gz
# 发送POST请求,提交JSON数据
curl -X POST -H "Content-Type: application/json" -d '{"name":"linux","version":"5.15"}' http://api.example.com/test
5. wget : 命令行文件下载工具
核心功能:专注于从网络(HTTP、HTTPS、FTP)下载文件,支持断点续传、后台下载、批量下载等,适合在无图形界面的服务器上使用。
常用参数:
-O <文件名>
:指定下载后的文件名(默认使用远程文件名)。-c
:断点续传(如果下载中断,再次执行可继续下载)。-b
:后台下载(下载过程在后台运行,输出日志到wget-log
)。-P <目录>
:指定下载文件的保存目录。-i <文件>
:从文件中读取多个 URL,批量下载。
示例:
bash
# 下载nginx安装包,保存到/home/download目录
wget -P /home/download http://nginx.org/download/nginx-1.24.0.tar.gz
# 断点续传之前未下载完的文件
wget -c http://nginx.org/download/nginx-1.24.0.tar.gz
# 后台下载文件,日志保存到my-log.txt
wget -b -o my-log.txt http://nginx.org/download/nginx-1.24.0.tar.gz
6. scp :基于 SSH 的安全文件复制
核心功能 :通过 SSH 协议在本地主机与远程主机之间复制文件 / 目录,数据传输过程加密,比传统的rcp
更安全,是跨服务器传文件的首选工具。
语法格式:
1.本地文件 -> 远程主机
scp <本地文件路径> <远程用户>@<远程IP>:<远程保存路径>
2.远程文件 -> 本地主机
scp <远程用户>@<远程IP>:<远程文件路径> <本地保存路径>
3.复制目录(需加-r参数递归复制)
scp -r <本地目录> <远程用户>@<远程IP>:<远程保存路径>
** 示例**:
bash
# 把本地的test.txt复制到远程服务器192.168.1.200的/home/user目录下
scp /home/local/test.txt root@192.168.1.200:/home/user/
# 把远程服务器192.168.1.200的/home/user/data目录复制到本地的/home/local目录
scp -r root@192.168.1.200:/home/user/data /home/local/
7. telnet : 远程登录 / 端口连通性测试
核心功能:早期用于通过 TCP 协议远程登录服务器(如 Telnet 服务的 23 端口),现在更多用于测试目标主机的某个端口是否开放(替代 ping 检测 "端口级连通性")。
注意 :Telnet 传输数据不加密,安全性低,远程登录已被 SSH 替代;需安装telnet
包才能使用。
常用用法:
telnet <远程IP> <端口>
:测试目标 IP 的指定端口是否开放(如测试 Web 服务 80 端口、MySQL 3306 端口)。
示例:
bash
# 测试192.168.1.200的80端口是否开放(Web服务)
telnet 192.168.1.200 80
# 测试百度的443端口(HTTPS服务)
telnet www.baidu.com 443
- 若端口开放:会显示 "Connected to ...";
- 若端口关闭 / 被防火墙拦截:会显示 "Connection refused" 或超时。
8. ssh 安全远程登录
核心功能:通过 SSH(Secure Shell)协议远程登录 Linux/Unix 服务器,数据传输全程加密,替代了不安全的 Telnet,是远程管理服务器的标准工具。
基本语法:
bash
ssh <远程用户>@<远程IP/域名> -p <端口>
# 说明:默认端口为22,若远程服务器修改了SSH端口,需用-p指定
常用参数与进阶用法:
-p <端口>
:指定 SSH 服务的端口(默认 22)。-i <密钥文件>
:使用 SSH 密钥对登录(免密码登录,比密码更安全,常用于脚本自动化)。ssh <远程用户>@<远程IP> <命令>
:在远程服务器上执行单条命令,不进入交互模式。
示例:
bash
# 用root用户登录IP为192.168.1.200的服务器(默认22端口)
ssh root@192.168.1.200
# 用user用户登录域名server.example.com,SSH端口为2222
ssh user@server.example.com -p 2222
# 在远程服务器上执行"ls /home"命令,结果返回本地
ssh root@192.168.1.200 "ls /home"
# 用密钥文件id_rsa登录远程服务器(免密码)
ssh -i ~/.ssh/id_rsa user@192.168.1.200
9. nslookup: 域名解析查询
核心功能:查询域名对应的 IP 地址(正向解析)或 IP 对应的域名(反向解析),用于排查 DNS 解析问题(如 "域名无法访问" 时,先确认 DNS 是否能解析出正确 IP)。
注意 :部分系统已用dig
命令替代nslookup
,但nslookup
语法更简单,适合快速查询。
常用用法:
- 直接输入
nslookup <域名>
:查询域名的 A 记录(IPv4 地址)。 nslookup <IP地址>
:反向查询 IP 对应的域名。nslookup -type=<记录类型> <域名>
:查询指定类型的 DNS 记录(如 MX 邮件记录、CNAME 别名记录)。
示例:
bash
# 查询www.baidu.com的IPv4地址
nslookup www.baidu.com
# 反向查询IP 180.101.49.12对应的域名
nslookup 180.101.49.12
# 查询qq.com的MX邮件记录(用于接收邮件的服务器)
nslookup -type=MX qq.com
10. dig:域名解析查询
dig(Domain Information Groper)是用于查询 DNS 信息的命令行工具,功能强大且灵活,常用于排查域名解析问题。
基本语法 :dig [选项] 域名 [类型]
常用选项:
- 直接查询域名:
dig 域名
(默认查询 A 记录,即域名对应的 IPv4 地址) -t 类型
:指定查询的 DNS 记录类型(如 A、AAAA、MX、NS、TXT 等)@DNS服务器
:指定使用的 DNS 服务器(如@8.8.8.8
使用 Google DNS)+short
:简化输出,只显示关键结果-x IP地址
:反向查询,根据 IP 地址查对应的域名
示例:
bash
dig example.com #查询`example.com`的 IPv4 地址
dig @8.8.8.8 -t MX baidu.com #用Google DNS查询`baidu.com`的 MX 记录
dig +short github.com #简化输出`github.com`的 IP
dig -x 114.114.114.114 #反向查询 IP`114.114.114.114`对应的域名
11. netstat : 查看网络连接 / 端口状态(传统命令)
核心功能:查看系统的网络连接状态、监听端口、进程与端口的对应关系等,常用于排查 "端口被占用" 问题。
注意 :与ifconfig
类似,netstat
属于net-tools
包,主流系统已逐渐用ss
命令替代,但netstat
仍被广泛使用。
最常用参数组合 :netstat -tulnp
-t
:显示 TCP 连接-u
:显示 UDP 连接-l
:显示监听状态的端口(如服务端开放的端口)-n
:以数字形式显示 IP 和端口(不解析域名和服务名)-p
:显示连接对应的进程 PID 和名称(需 root 权限)-a
:显示所有连接(包括监听和非监听状态)-r
:显示路由表(类似route -n
)
示例:
bash
# 查看所有正在监听的TCP/UDP端口及对应进程(最常用)
sudo netstat -tulnp
#查看所有监听的 TCP 端口
netstat -tl
#查看系统路由表
netstat -rn
# 查看与远程主机的TCP连接状态
netstat -an | grep tcp
#查看某个端口(如 80)的占用情况
netstat -tlnp | grep 80
12. ss:查看网络连接
功能 :ss(Socket Statistics)是用于查看系统套接字信息的命令,能显示当前系统的网络连接状态,比传统的 netstat
命令更高效。
常用选项:
-t
:显示 TCP 连接-u
:显示 UDP 连接-l
:显示监听状态的套接字-n
:以数字形式显示 IP 地址和端口,不进行域名解析-p
:显示连接对应的进程信息(需要 root 权限)-a
:显示所有连接(包括监听和非监听状态)
示例:
bash
ss -t #查看所有 TCP 连接
ss -tl #查看所有监听状态的 TCP 端口
sudo ss -up #查看所有 UDP 连接及对应的进程
13. route:管理路由表
route 命令用于查看和配置 Linux 系统的 IP 路由表,可添加、删除静态路由,指定数据包的转发路径。
常用选项:
-n
:以数字形式显示 IP 地址和端口(不解析主机名)add
:添加路由规则del
:删除路由规则-net
:指定目标为网络(而非单个主机)gw
:指定网关(下一跳 IP)dev
:指定通过哪个网络接口(如 eth0、ens33)转发
示例:
bash
route -n #查看当前路由表
sudo route add -net 192.168.10.0/24 gw 10.0.0.1 #添加到目标网络`192.168.10.0/24`的路由,网关为`10.0.0.1`
sudo route del -net 192.168.10.0/24 #删除到`192.168.10.0/24`的路由
sudo route add default gw 10.0.0.254 #添加默认路由(所有未知网络的数据包通过网关`10.0.0.254`转发)
14. arp:管理 ARP 缓存
arp(Address Resolution Protocol)命令用于查看和管理本地 ARP 缓存表,该表记录了 IP 地址与 MAC 地址的对应关系(用于局域网内通信)。
常用选项:
-a
:显示所有主机的 ARP 缓存条目(默认解析主机名)-n
:以数字形式显示 IP 地址(不解析主机名)-d IP地址
:删除指定 IP 的 ARP 缓存条目-s IP地址 MAC地址
:手动添加静态 ARP 映射(IP 与 MAC 绑定)
示例:
bash
arp -a/arp -n #查看 ARP 缓存表
sudo arp -d 192.168.1.1 #删除 IP 为`192.168.1.1`的 ARP 记录
sudo arp -s 192.168.1.100 00:1a:2b:3c:4d:5e #绑定 IP`192.168.1.100`与 MAC`00:1a:2b:3c:4d:5e`
15. firewall-cmd:firewalld 防火墙管理工具
firewall-cmd 是 firewalld 动态防火墙的命令行工具,支持动态更新规则(无需重启服务),常用于 CentOS、RHEL 等系统。
常用选项:
--state
:查看 firewalld 服务状态--list-all
:显示默认区域的所有规则(包括开放的端口、服务等)--add-port=端口/协议
:临时开放指定端口(如80/tcp
)--permanent
:将规则设置为永久生效(需--reload
后生效)--reload
:重新加载规则,使永久配置生效--zone=区域名
:指定规则应用的区域(默认 public)--remove-port=端口/协议
:关闭指定端口
示例:
bash
firewall-cmd --state #查看防火墙状态
sudo firewall-cmd --add-port=3306/tcp #临时开放`3306/tcp`(MySQL 默认端口)
sudo firewall-cmd --add-port=8080/tcp --permanent && sudo firewall-cmd --reload #永久开放`8080/tcp`并生效
sudo firewall-cmd --list-ports #查看已开放的端口
16. ufw :简化版防火墙工具
ufw(Uncomplicated Firewall)是基于 iptables 的简化防火墙工具,语法简单,适合初学者,常用于 Ubuntu、Debian 等系统。
常用选项:
enable
:启用 ufw 防火墙disable
:禁用 ufw 防火墙status
:查看防火墙状态及规则allow 端口/服务
:允许指定端口或服务的流量(如ssh
、80/tcp
)deny 端口/服务
:拒绝指定端口或服务的流量delete 规则
:删除已添加的规则
示例:
bash
sudo ufw enable #启用防火墙
sudo ufw allow ssh` 或 `sudo ufw allow 22/tcp #允许 SSH 连接(默认 22/tcp)
sudo ufw deny from 192.168.1.5 #拒绝来自`192.168.1.5`的所有流量
sudo ufw status numbered #查看当前规则(带编号,方便删除)
sudo ufw delete 3 #删除编号为 3 的规则