当前位置: 首页 > news >正文

【Linux日新月异(六)】CentOS 7网络命令深度解析:从传统到现代网络管理

🌌提供:
1. Kimi K2 Thinking(网站: 大语言模型(Large Language Model, LLM),是当前人工智能领域的重要技术分支,专注于自然语言处理和生成任务。)【开源】「AL」〖✿✿✿✿✿〗
🔔说明: 本文内容由Kimi K2生成。AI创作虽经校对,仍难免疏漏或偏颇之处。若您发现错漏、或有任何建议,恳请不吝赐教。您的每一次指正,都是我改进与成长的重要指引。
📓摘要:
   略...(有好建议的可以留言哦~~~(✿◕‿◕✿))


🌐 CentOS 7网络命令深度解析:从传统到现代

CentOS 7网络管理迎来重大变革:iproute2套件ip, ss)全面取代传统net-toolsifconfig, netstat)!但老命令仍兼容,新手需掌握新工具,老手也要与时俱进!


一、🔍 传统命令 vs 现代命令对照表

传统命令(deprecated)现代命令(recommended)功能
ifconfigip addr / ip link查看/配置接口
netstatss查看socket状态
routeip route查看/配置路由
arpip neigh查看ARP缓存
ifup/ifdownip link set启停接口

二、📡 接口配置命令详解

1. ifconfig- 传统接口查看(已废弃)

语法:

ifconfig [接口名] [选项]

案例:

# 查看所有激活接口
ifconfig# 查看指定接口
ifconfig eth0# 临时配置IP(重启失效)
ifconfig eth0 192.168.1.100 netmask 255.255.255.0 up# 关闭接口
ifconfig eth0 down

⚠️ 注意事项:

  • 已废弃:CentOS 7最小化安装默认无此命令,需安装net-tools
  • 临时性:所有配置重启网络后丢失
  • 不显示down状态的接口:需ifconfig -a才能看到

安装net-tools:

yum install -y net-tools

2. ip- 现代化网络配置神器 ⭐

语法:

ip [OPTIONS] OBJECT { COMMAND | help }
# OBJECT: link, addr, route, neigh, rule, tunnel等
案例1:查看接口信息
ip addr show                    # 查看所有接口IP
ip link show                    # 查看接口链路状态
ip -s link show eth0            # 查看eth0统计信息

输出解析:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:8e:8e:8e brd ff:ff:ff:ff:ff:ffinet 192.168.1.100/24 brd 192.168.1.255 scope global noprefixroute eth0valid_lft forever preferred_lft forever
  • state UP:接口已启用
  • mtu 1500:最大传输单元
  • inet:IPv4地址及子网掩码(/24=255.255.255.0)

案例2:配置IP地址
# 临时添加IP(重启失效)
ip addr add 192.168.1.200/24 dev eth0# 删除IP
ip addr del 192.168.1.200/24 dev eth0# 清空接口所有IP
ip addr flush dev eth0# 启用/禁用接口
ip link set eth0 up
ip link set eth0 down

案例3:查看/设置MAC地址
# 查看当前MAC
ip link show eth0 | grep link/ether# 临时修改MAC(需先down)
ip link set eth0 down
ip link set eth0 address 00:0c:29:8e:8e:ff
ip link set eth0 up

3. nmcli- NetworkManager命令行工具

CentOS 7默认使用NetworkManager管理网络,nmcli是其强大命令行工具!

查看连接:

nmcli connection show              # 查看所有连接
nmcli device status                # 查看设备状态

配置静态IP(永久生效):

# 修改连接配置
nmcli con mod "System eth0" \ipv4.addresses 192.168.1.100/24 \ipv4.gateway 192.168.1.1 \ipv4.dns "8.8.8.8,114.114.114.114" \ipv4.method manual# 重启连接生效
nmcli con down "System eth0"
nmcli con up "System eth0"

三、🛣️ 路由与ARP命令

1. route- 传统路由查看(已废弃)

# 查看路由表
route -n          # -n不解析主机名,显示更快# 添加默认网关
route add default gw 192.168.1.1# 添加静态路由
route add -net 10.0.0.0/8 gw 192.168.1.254

输出解析:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0
  • UG:U=Up, G=Gateway
  • Genmask:子网掩码
  • 0.0.0.0:默认路由

2. ip route- 现代路由管理 ⭐

# 查看路由表
ip route show
# 或简写
ip r# 添加默认路由
ip route add default via 192.168.1.1 dev eth0# 添加静态路由
ip route add 10.0.0.0/8 via 192.168.1.254 dev eth0# 删除路由
ip route del 10.0.0.0/8# 查看特定路由
ip route get 8.8.8.8

3. arp/ip neigh- ARP表管理

# 传统命令(可能无)
arp -a                    # 查看ARP缓存# 现代命令(推荐)
ip neigh show             # 查看邻居表# 添加静态ARP(防ARP欺骗)
ip neigh add 192.168.1.1 lladdr 00:11:22:33:44:55 dev eth0

四、🔧 网络诊断命令大全

1. ping- 连通性测试

语法:

ping [选项] 目标主机

案例:

# 基础测试(Linux持续ping,Ctrl+C停止)
ping www.baidu.com# 指定次数
ping -c 4 www.baidu.com         # 发送4次# 指定源接口
ping -I eth0 192.168.1.1# 指定数据包大小
ping -s 1024 www.baidu.com      # 发送1024字节# 带时间戳
ping -D www.baidu.com

输出解析:

64 bytes from 220.181.38.148: icmp_seq=1 ttl=52 time=12.3 ms
  • ttl:生存时间,每经过一个路由器减1
  • time:往返时延

⚠️ 注意事项:

  • 🔥ping不通≠网络不通:可能是防火墙禁ping
  • ICMP限速:ping大包可能被QoS限制
  • TTL值判断:Linux默认64/128,Windows默认128

2. curl- URL数据传输神器 ⭐

语法:

curl [选项] [URL]
案例1:基础HTTP请求
# GET请求(默认)
curl http://www.baidu.com# 跟随重定向
curl -L http://www.baidu.com# 显示请求详情(调试神器)
curl -v http://www.baidu.com# 只显示响应头
curl -I http://www.baidu.com

案例2:POST请求
# 表单提交
curl -d "username=admin&password=123456" \-H "Content-Type: application/x-www-form-urlencoded" \http://localhost:8080/login# JSON提交
curl -X POST -H "Content-Type: application/json" \-d '{"username":"admin","password":"123456"}' \http://localhost:8080/api/login

案例3:下载文件
# 下载文件
curl -O http://example.com/file.tar.gz# 断点续传
curl -C - -O http://example.com/bigfile.iso# 限速下载
curl --limit-rate 200k -O http://example.com/file.zip# 自定义文件名
curl -o myfile.zip http://example.com/file.zip

案例4:HTTPS与认证
# 忽略SSL证书验证(测试用,⚠️生产环境危险)
curl -k https://self-signed.badssl.com# 指定客户端证书
curl --cert client.pem --key key.pem https://api.example.com# HTTP基本认证
curl -u username:password http://localhost:8080/admin

案例5:高级调试
# 显示时间统计
curl -w "@curl-format.txt" -o /dev/null -s http://www.baidu.com# 格式文件内容:
time_namelookup:  %{time_namelookup}\n
time_connect:  %{time_connect}\n
time_starttransfer:  %{time_starttransfer}\n
time_total:  %{time_total}\n

⚠️ 注意事项:

  • 🔥证书安全-k选项忽略证书验证,生产环境禁用
  • 协议支持:curl支持HTTP/HTTPS/FTP/SFTP/SCP等20+协议
  • 代理设置-x proxy.example.com:8080
  • 超时设置--connect-timeout 5 --max-time 10

3. ss- 现代socket统计(替代netstat)⭐

语法:

ss [选项] [过滤]
案例1:查看端口监听
# 查看所有监听端口
ss -tuln# 查看TCP监听
ss -tnl# 查看UDP监听
ss -unl# 查看特定端口
ss -tuln | grep 8080

输出解析:

LISTEN     0      128          *:22                       *:*                  
LISTEN     0      100    127.0.0.1:25                       *:*                  
LISTEN     0      128         :::8080                    :::*                  
  • *:22:监听所有IPv4地址的22端口
  • :::8080:监听所有IPv6地址的8080端口
  • 128:backlog队列长度

案例2:查看进程连接
# 查看所有ESTABLISHED连接
ss -tn state established# 查看与特定IP的连接
ss -tn dst 192.168.1.100# 查看HTTP连接状态统计
ss -tn state established '( dport = :80 or sport = :80 )' | wc -l# 显示进程信息(需root)
ss -tnp

案例3:对比netstat
# 传统netstat(可能需要安装)
netstat -tuln# 现代ss(更快更高效)
ss -tuln# 性能对比:ss比netstat快10-100倍,因直接从内核读取

⚠️ 注意事项:

  • 🔥使用-p需要root权限,否则无法显示进程信息
  • -a显示所有socket,-l仅显示listening
  • 过滤语法强大:支持布尔表达式、端口号、状态等

4. netstat- 传统网络状态(已废弃)

# 查看路由表
netstat -rn# 查看接口统计
netstat -i# 查看多播组
netstat -g# 查看连接状态统计
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

⚠️ 注意事项:

  • 已废弃:CentOS 7默认无此命令,需yum install net-tools
  • 性能差:大规模连接时卡顿
  • 推荐替代ss命令

5. traceroute/ mtr - 路径追踪

# 传统traceroute
traceroute www.baidu.com# 现代mtr(实时路径质量)
mtr -r -c 10 www.baidu.com      # 报告模式,10次# 指定端口
traceroute -T -p 80 www.baidu.com   # TCP SYN
traceroute -U -p 53 8.8.8.8         # UDP

五、🛠️ 综合诊断案例

案例:排查Web服务无法访问

# 1. 检查本地服务监听
ss -tnl | grep 8080
# 预期:LISTEN 0 128 *:8080# 2. 检查防火墙
firewall-cmd --query-port=8080/tcp
# 预期:yes# 3. 本地curl测试
curl -v http://localhost:8080
# 预期:200 OK# 4. 检查IP配置
ip addr show eth0
# 确认IP正确# 5. 从客户端ping
ping -c 3 服务器IP
# 测试网络连通性# 6. 从客户端telnet端口
telnet 服务器IP 8080
# 测试端口可达性# 7. 检查路由
ip route get 客户端IP
# 确认回程路由正确

六、⚠️ 关键注意事项汇总

1. 🔥 权限问题

  • ss -p, ip neigh等需root权限
  • 普通用户只能查看自己的连接

2. ⚡ 性能影响

  • netstat在大并发下会卡死,务必使用ss
  • curl下载大文件时注意磁盘空间

3. 🔒 安全考虑

  • 不要在脚本中明文写密码:curl -u user:pass
  • 使用.netrc文件或环境变量存储凭证
  • 生产环境禁用-k忽略证书

4. 🎯 IPv6支持

# 查看IPv6地址
ip -6 addr show# ping IPv6
ping6 ::1# curl IPv6
curl -g "http://[2001:db8::1]:8080"

5. 💾 配置文件

  • IP配置/etc/sysconfig/network-scripts/ifcfg-eth0
  • DNS配置/etc/resolv.conf
  • 永久路由/etc/sysconfig/network-scripts/route-eth0

6. 🚨 排查思路

遇到问题按顺序检查:

  1. IP配置ip addr
  2. 路由表ip route
  3. 服务监听ss -tnl
  4. 防火墙firewall-cmd
  5. 外部连通性ping
  6. 应用层curl

七、📋 快速命令备忘

# 查看IP           : ip addr / ip a
# 查看路由         : ip route / ip r
# 查看监听端口     : ss -tuln
# 查看所有连接     : ss -tn
# 测试连通性       : ping -c 4 IP
# 测试端口         : telnet IP PORT
# HTTP调试         : curl -v URL
# 下载文件         : curl -O URL
# POST请求         : curl -d "data" URL
# DNS解析         : nslookup / dig / host
# 路径追踪         : mtr IP

🎓 总结 :CentOS 7网络管理已全面现代化!抛弃ifconfignetstat,拥抱ipss是正道!网络诊断遵循从底层到上层原则,先用ip/ss检查本机,再用ping/curl验证外部,最后检查防火墙。记住:权限最小化、配置持久化、测试常态化



📖原文: 每个人的所历、所想、所求,这些东西合起来才能定义这个人的本质,就像这天上明月、山间花树,并不会因为别人的看法而发生改变。-- 《凡人修仙传》

⌛怡然: ...


🪁 LuminKu looks forward to seeing you again 🌌

http://www.dtcms.com/a/617881.html

相关文章:

  • LangChain 构建 AI 代理(Agent)
  • 人工智能训练师备考——3.1.1题解
  • 【RL】ORPO: Monolithic Preference Optimization without Reference Model
  • 公益平台网站怎么做网站跳出
  • QT的5种标准对话框
  • 用Rust构建一个OCR命令行工具
  • 网站代码大全国内网站设计作品欣赏
  • LeetCode 热题 100——子串——滑动窗口最大值
  • CPP(容器)STL:
  • 【Java常用API】----- Math
  • RAG 系统 “检索 - 筛选 - 生成” 完整流程
  • 时间复杂度 和 嵌入式时钟概念 有关系。 我的理由是:时钟经常需要计算频率,而频率往往需要和时间进行计数次数i 。 时间复杂度就像是计数次数i
  • 公司做普通网站建立网站地图
  • Java 大视界 -- Java 大数据在智能农业病虫害精准识别与绿色防控中的创新应用
  • 【高并发架构】从 0 到亿,从单机部署到 K8s 编排:高并发架构的 8 级演进之路
  • 基于Streamlit的交互式3D手指运动学仿真
  • 甘肃做网站找谁金种子酒业网站建设
  • 使用 Flink CDC Elasticsearch Pipeline Connector 打通 MySQL 与 Elasticsearch 的实时链路
  • 基于视频识别的大模型项目实战心得
  • Firefly-Modeler 体积雕刻:AI 概念到 3D 基模
  • 提示词工程 - (2) 指南
  • 网络安全 | 深入理解SQL注入的原理和防范
  • python之循环导入
  • 强杀服务、重启系统及断电对 TDengine 影响
  • Odoo 19 制造与会计集成深度解析报告
  • 免费网站软件正能量医院网站建设方案计划书
  • 软件架构趋势:云原生与大模型的融合与重塑
  • 做网站会员登陆长春网站运做思路
  • 排序java
  • Substance 3D Stager:电商“虚拟摄影”工作流