上一篇 分享链接 返回 返回顶部

linux常用命令—网络管理

发布人:小亿 发布时间:10小时前 阅读量:22
linux常用命令——网络管理命令

文章目录

    • linux常用命令——网络管理命令
    • 六、网络管理
      • 1. ping:网络连通性测试
      • 2. ifconfig:查看 / 配置网络接口(传统命令)
      • 3. ip address(缩写:ip a):查看 / 配置网络接口(现代命令)
      • 4. curl : 网络数据传输工具(支持多协议)
      • 5. wget : 命令行文件下载工具
      • 6. scp :基于 SSH 的安全文件复制
      • 7. telnet : 远程登录 / 端口连通性测试
      • 8. ssh 安全远程登录
      • 9. nslookup: 域名解析查询
      • 10. dig:域名解析查询
      • 11. netstat : 查看网络连接 / 端口状态(传统命令)
      • 12. ss:查看网络连接
      • 13. route:管理路由表
      • 14. arp:管理 ARP 缓存
      • 15. firewall-cmd:firewalld 防火墙管理工具
      • 16. ufw :简化版防火墙工具

 

六、网络管理

1. ping:网络连通性测试

核心功能:通过发送 ICMP(互联网控制消息协议)回声请求包,检测本地主机与目标主机 / IP 之间的网络连通性、延迟及丢包率。
注意:部分服务器会禁用 ICMP 协议,导致 ping 请求超时,但不代表网络完全不可用(可能只是 ping 被屏蔽)。

常用参数

  • -c <次数>:指定发送 ping 包的数量(默认无限发送,Ctrl+C 终止)。
  • -i <间隔>:指定发送 ping 包的时间间隔(单位:秒,默认 1 秒)。
  • -s <大小>:指定 ping 包的数据包大小(单位:字节,默认 56 字节)。

示例

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-toolsyum install net-tools)。

常用用法

  • 直接输入ifconfig:查看所有激活的网络接口配置。
  • ifconfig <接口名>:查看指定接口(如eth0ens33lo)的配置。
  • ifconfig <接口名> netmask <子网掩码>:临时配置接口 IP(重启网络或系统后失效)。
  • ifconfig <接口名> up/down:激活 / 禁用指定网络接口。

示例

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 /<子网掩码位数> dev <接口名>:给指定接口添加 IP(临时生效)。
  • ip a del /<子网掩码位数> dev <接口名>:删除指定接口的 IP。
  • ip link set <接口名> up/down:激活 / 禁用指定接口。

示例

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 重定向(如访问短链接时跳转)。

示例

# 发送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,批量下载。

示例

# 下载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>:<远程保存路径>

** 示例**:

# 把本地的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 端口)。

示例

# 测试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,是远程管理服务器的标准工具。

基本语法

ssh <远程用户>@<远程IP/域名> -p <端口>
# 说明:默认端口为22,若远程服务器修改了SSH端口,需用-p指定

常用参数与进阶用法

  • -p <端口>:指定 SSH 服务的端口(默认 22)。
  • -i <密钥文件>:使用 SSH 密钥对登录(免密码登录,比密码更安全,常用于脚本自动化)。
  • ssh <远程用户>@<远程IP> <命令>:在远程服务器上执行单条命令,不进入交互模式。

示例

# 用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 对应的域名。
  • nslookup -type=<记录类型> <域名>:查询指定类型的 DNS 记录(如 MX 邮件记录、CNAME 别名记录)。

示例

# 查询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 地址查对应的域名

示例:

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

示例

# 查看所有正在监听的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:显示所有连接(包括监听和非监听状态)

示例:

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)转发

示例:

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 绑定)

示例:

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=端口/协议:关闭指定端口

示例:

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 端口/服务:允许指定端口或服务的流量(如ssh80/tcp
  • deny 端口/服务:拒绝指定端口或服务的流量
  • delete 规则:删除已添加的规则

示例:

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 的规则
目录结构
全文
小程序 小程序
企业微信 企业微信
服务热线: 0878-3101203
电子邮箱: yihwlkj@163.com