linux常用命令(6)——网络管理

博客主页: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-toolsyum install net-tools)。

常用用法

  • 直接输入ifconfig:查看所有激活的网络接口配置。
  • ifconfig <接口名>:查看指定接口(如eth0ens33lo)的配置。
  • 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 端口/服务:允许指定端口或服务的流量(如ssh80/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 的规则
相关推荐
早睡冠军候选人5 小时前
Ansible学习----Ansible Playbook
运维·服务器·学习·云原生·容器·ansible
sulikey5 小时前
从实验出发深入理解Linux目录权限:r、w、x分别控制什么?能否进入目录到底由谁决定?
linux·运维·服务器·ubuntu·centos
叶凡要飞5 小时前
RTX5060Ti安装双系统ubuntu22.04各种踩坑点(黑屏,引导区修复、装驱动、server版本安装)
人工智能·python·yolo·ubuntu·机器学习·操作系统
f0rev3r5 小时前
NewStarCTF2025-WEEK2
网络安全
疯狂吧小飞牛5 小时前
ip rule 策略路由
linux·网络·tcp/ip·运维开发
缘友一世5 小时前
深入理解Shell与反弹Shell:从原理到实战
linux·网络安全·shell
stark张宇6 小时前
网络排错全流程:从DNS解析到防火墙,逐层拆解常见问题
linux·网络协议·dns
hour_go6 小时前
TCP/IP协议相关知识点
网络·笔记·网络协议·tcp/ip
Whoami!7 小时前
⸢ 捌-Ⅰ⸥⤳ 可信纵深防御应用实践:0Day漏洞 & 钓鱼攻击
网络安全·信息安全·纵深防御·案例实践
Arva .7 小时前
WebSocket实现网站点赞通知
网络·websocket·网络协议