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 的规则
相关推荐
hoo3433 分钟前
【Typora】!Markdown 编辑器详细安装教程,高效上手
linux·编辑器
daqinzl10 分钟前
Ubuntu 使用 Python 启动 HTTP 服务
python·ubuntu·http server 服务
SKYDROID云卓小助手16 分钟前
无人设备遥控器之差分信号抗干扰技术
网络·stm32·单片机·嵌入式硬件·算法
应茶茶20 分钟前
VsCode通过SSH远程连接云服务器遇到主机密钥变更问题
服务器·vscode·ssh
skywalk816322 分钟前
FreeBSD 14.3 轻量级Jail虚拟机:内存资源占用仅13MB的实战指南
运维·服务器·freebsd·jail
tkevinjd32 分钟前
【无标题】
linux
羑悻的小杀马特37 分钟前
JuiceSSH+cpolar解锁手机远程Linux新姿势,无需公网IP,固定地址稳定用
linux·服务器·coplar
远程软件小帮手41 分钟前
好用的远程软件!ToDesk、向日葵、UU远程横测
运维·服务器·游戏·电脑
顾安r1 小时前
11.14 脚本网页 青蛙过河
服务器·前端·python·游戏·html
HIT_Weston1 小时前
30、【Ubuntu】【远程开发】内网穿透:反向隧道建立(二)
linux·运维·ubuntu