06 - 网络配置与管理一、网络基础概念1.1 关键术语术语说明IP 地址网络中设备的唯一标识子网掩码划分网络和主机部分网关连接不同网络的出口DNS域名解析服务MAC 地址网卡的物理地址端口应用层的通信端点0~655351.2 网卡命名规则现代 Linux 使用可预测的网卡命名前缀说明示例eno板载网卡eno1ensPCI-E 热插拔网卡ens33enpPCI 总线位置命名enp0s3eth传统命名eth0二、查看网络状态2.1 ip 命令推荐# 查看 IP 地址ipaddr show# 简写 ip aipaddr show eth0# 查看指定网卡# 查看路由表iproute show# 简写 ip riproute get8.8.8.8# 查看到某 IP 的路由# 查看网卡链路状态iplinkshowiplinkshow eth0# 查看网络统计信息ip-slinkshow eth02.2 其他网络查看命令# 查看所有网络接口ifconfig-a# 传统命令部分系统需安装 net-toolsipa# 现代命令# 查看端口占用ss-tlnp# 查看 TCP 监听端口推荐ss-tlnp|grep:80# 查看谁占用了 80 端口ss-ulnp# 查看 UDP 端口ss-tnp# 查看已建立的 TCP 连接netstat-tlnp# 传统命令需安装 net-tools# 查看路由route-n# 传统命令iproute# 现代命令# 查看 DNS 配置cat/etc/resolv.conf# 查看主机名hostnamehostnamectl三、配置网络3.1 nmcliCentOS/RHEL 推荐NetworkManager 是 CentOS 7 的默认网络管理工具。# 查看网络连接nmcli connection show# 简写 nmcli cnmcli device status# 简写 nmcli d# 查看连接详情nmcli connection show ens33# 修改 IP 地址nmcli connection modify ens33 ipv4.addresses192.168.1.100/24 nmcli connection modify ens33 ipv4.gateway192.168.1.1 nmcli connection modify ens33 ipv4.dns8.8.8.8 8.8.4.4nmcli connection modify ens33 ipv4.method manual# 启用配置nmcli connection up ens33# 重启网络nmcli connection reload systemctl restart NetworkManager3.2 配置文件方式CentOS编辑/etc/sysconfig/network-scripts/ifcfg-ens33TYPEEthernet BOOTPROTOstatic # 静态 IPDHCP 则为 dhcp NAMEens33 DEVICEens33 ONBOOTyes # 开机启用 IPADDR192.168.1.100 PREFIX24 # 子网掩码或 NETMASK255.255.255.0 GATEWAY192.168.1.1 DNS18.8.8.8 DNS2114.114.114.114# 重启网络生效systemctl restart network# CentOS 6/7nmcli connection reloadnmcli connection up ens33# CentOS 83.3 NetplanUbuntu 18.04Ubuntu 使用 Netplan 管理网络配置文件在/etc/netplan/目录下。编辑/etc/netplan/01-netcfg.yamlnetwork:version:2ethernets:ens33:addresses:-192.168.1.100/24routes:-to:defaultvia:192.168.1.1nameservers:addresses:[8.8.8.8,114.114.114.114]# 应用配置netplan apply# 测试配置超时自动回滚防止断连netplan try3.4 配置主机名# 设置主机名hostnamectl set-hostname web-server-01# 查看主机名hostnamectl# 配置 /etc/hostsecho192.168.1.100 web-server-01/etc/hostsecho192.168.1.101 db-server-01/etc/hosts四、网络诊断工具4.1 ping - 测试连通性ping192.168.1.1# 一直 pingping-c48.8.8.8# ping 4 次后停止ping-i0.5192.168.1.1# 每 0.5 秒 ping 一次4.2 traceroute / tracepath - 追踪路由traceroute8.8.8.8 tracepath8.8.8.8# 不需要 root 权限mtr8.8.8.8# 交互式路由追踪推荐4.3 dig / nslookup - DNS 查询# DNS 查询digexample.comdig8.8.8.8 example.com# 指定 DNS 服务器digexample.com MX# 查询 MX 记录digexample.com TXT# 查询 TXT 记录digshort example.com# 只输出 IPnslookupexample.comnslookupexample.com8.8.8.84.4 curl - HTTP 请求# 基本 GET 请求curlhttp://example.com# 显示响应头curl-Ihttp://example.com# 带详细信息curl-vhttp://example.com# POST 请求curl-XPOST http://api.example.com/users\-HContent-Type: application/json\-d{name:alice,age:25}# 下载文件curl-Ohttp://example.com/file.tar.gzcurl-ocustom_name.tar.gz http://example.com/file.tar.gz# 跟随重定向curl-Lhttp://example.com# 测试接口响应时间curl-o/dev/null-s-wDNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\nhttp://example.com4.5 telnet / nc - 端口测试# 测试端口是否开放telnet192.168.1.10080# nc 更灵活nc-zv192.168.1.10080# 测试 TCP 端口nc-zvu192.168.1.10053# 测试 UDP 端口nc-zv192.168.1.100804438080# 测试多个端口# 扫描端口范围nc-zv192.168.1.1001-100021|grepsucceeded4.6 tcpdump - 抓包分析# 抓取指定网卡的流量tcpdump-ieth0# 抓取指定端口tcpdump-ieth0 port80# 抓取指定 IP 的流量tcpdump-ieth0host192.168.1.100 tcpdump-ieth0 src192.168.1.100 tcpdump-ieth0 dst192.168.1.100# 抓取 HTTP 请求tcpdump-ieth0-Aport80# 保存到文件用 Wireshark 分析tcpdump-ieth0-wcapture.pcap port80# 组合条件tcpdump-ieth0tcp port 80 and host 192.168.1.100-nn-c100五、网络相关配置文件文件作用/etc/hosts本地域名解析/etc/resolv.confDNS 服务器配置/etc/nsswitch.conf名称解析顺序/etc/services端口与服务名映射/etc/sysconfig/network-scripts/CentOS 网卡配置/etc/netplan/Ubuntu 网络配置/etc/sysctl.conf内核网络参数配置 DNS# 临时生效echonameserver 8.8.8.8/etc/resolv.confechonameserver 114.114.114.114/etc/resolv.conf# CentOS 永久生效通过 nmclinmcli connection modify ens33 ipv4.dns8.8.8.8 114.114.114.114nmcli connection up ens33# Ubuntu 永久生效通过 netplan# 在 netplan 配置的 nameservers 中设置六、内核网络参数调优编辑/etc/sysctl.conf或/etc/sysctl.d/下的文件# 常见网络参数net.ipv4.ip_forward1# 开启 IP 转发路由器/Docker 需要net.ipv4.tcp_syncookies1# 防止 SYN Flood 攻击net.ipv4.tcp_max_syn_backlog65535# SYN 队列长度net.ipv4.tcp_tw_reuse1# 复用 TIME_WAIT 连接net.ipv4.tcp_tw_recycle0# 不建议开启NAT 环境有问题net.ipv4.tcp_fin_timeout30# FIN-WAIT-2 超时时间net.core.somaxconn65535# 监听队列长度net.core.netdev_max_backlog65535# 网卡收包队列长度net.ipv4.tcp_keepalive_time600# keepalive 探测间隔net.ipv4.tcp_max_tw_buckets32768# TIME_WAIT 最大数量# 应用配置sysctl-p七、实战场景场景一网站无法访问排查# 1. 检查本机网络是否通ping192.168.1.1# 网关ping8.8.8.8# 外网 IP# 2. 检查 DNS 是否正常digexample.comnslookupexample.com# 3. 检查端口是否开放ss-tlnp|grep:80curl-Ihttp://localhost# 本地测试# 4. 检查防火墙firewall-cmd --list-ports# CentOSiptables-L-n# 通用# 5. 检查路由iproute gettarget_iptraceroutetarget_ip场景二服务器端口不通排查# 1. 确认服务是否监听ss-tlnp|grep:3306# 2. 本地测试nc-zv127.0.0.13306# 3. 检查防火墙规则firewall-cmd --list-all iptables-L-n--line-numbers# 4. 检查是否只监听 127.0.0.1# 如果是 127.0.0.1:3306 则外部无法连接# 需要修改为 0.0.0.0:3306场景三配置双网卡双网关# 主网卡走默认网关nmcli connection modify eth0 ipv4.addresses192.168.1.100/24 nmcli connection modify eth0 ipv4.gateway192.168.1.1# 第二块网卡配置 IP不走默认网关nmcli connection modify eth1 ipv4.addresses10.0.0.100/24 nmcli connection modify eth1 ipv4.gateway# 不设置网关# 添加静态路由10.x 网段走第二块网卡的网关iprouteadd10.0.0.0/8 via10.0.0.1 dev eth1# 永久生效创建路由配置文件CentOScat/etc/sysconfig/network-scripts/route-eth1EOF 10.0.0.0/8 via 10.0.0.1 dev eth1 EOF八、小结本篇涵盖了网络配置nmcli、配置文件、Netplan和网络诊断工具ping、traceroute、dig、curl、tcpdump 等。网络排查是运维最频繁的工作之一建议建立清晰的排查思路从本机到网关到外网从物理层到网络层到应用层。上一篇05 - 软件包管理下一篇07 - 磁盘管理与 LVM
【Linux运维极简教程】06-网络配置与管理
发布时间:2026/7/14 23:42:36
06 - 网络配置与管理一、网络基础概念1.1 关键术语术语说明IP 地址网络中设备的唯一标识子网掩码划分网络和主机部分网关连接不同网络的出口DNS域名解析服务MAC 地址网卡的物理地址端口应用层的通信端点0~655351.2 网卡命名规则现代 Linux 使用可预测的网卡命名前缀说明示例eno板载网卡eno1ensPCI-E 热插拔网卡ens33enpPCI 总线位置命名enp0s3eth传统命名eth0二、查看网络状态2.1 ip 命令推荐# 查看 IP 地址ipaddr show# 简写 ip aipaddr show eth0# 查看指定网卡# 查看路由表iproute show# 简写 ip riproute get8.8.8.8# 查看到某 IP 的路由# 查看网卡链路状态iplinkshowiplinkshow eth0# 查看网络统计信息ip-slinkshow eth02.2 其他网络查看命令# 查看所有网络接口ifconfig-a# 传统命令部分系统需安装 net-toolsipa# 现代命令# 查看端口占用ss-tlnp# 查看 TCP 监听端口推荐ss-tlnp|grep:80# 查看谁占用了 80 端口ss-ulnp# 查看 UDP 端口ss-tnp# 查看已建立的 TCP 连接netstat-tlnp# 传统命令需安装 net-tools# 查看路由route-n# 传统命令iproute# 现代命令# 查看 DNS 配置cat/etc/resolv.conf# 查看主机名hostnamehostnamectl三、配置网络3.1 nmcliCentOS/RHEL 推荐NetworkManager 是 CentOS 7 的默认网络管理工具。# 查看网络连接nmcli connection show# 简写 nmcli cnmcli device status# 简写 nmcli d# 查看连接详情nmcli connection show ens33# 修改 IP 地址nmcli connection modify ens33 ipv4.addresses192.168.1.100/24 nmcli connection modify ens33 ipv4.gateway192.168.1.1 nmcli connection modify ens33 ipv4.dns8.8.8.8 8.8.4.4nmcli connection modify ens33 ipv4.method manual# 启用配置nmcli connection up ens33# 重启网络nmcli connection reload systemctl restart NetworkManager3.2 配置文件方式CentOS编辑/etc/sysconfig/network-scripts/ifcfg-ens33TYPEEthernet BOOTPROTOstatic # 静态 IPDHCP 则为 dhcp NAMEens33 DEVICEens33 ONBOOTyes # 开机启用 IPADDR192.168.1.100 PREFIX24 # 子网掩码或 NETMASK255.255.255.0 GATEWAY192.168.1.1 DNS18.8.8.8 DNS2114.114.114.114# 重启网络生效systemctl restart network# CentOS 6/7nmcli connection reloadnmcli connection up ens33# CentOS 83.3 NetplanUbuntu 18.04Ubuntu 使用 Netplan 管理网络配置文件在/etc/netplan/目录下。编辑/etc/netplan/01-netcfg.yamlnetwork:version:2ethernets:ens33:addresses:-192.168.1.100/24routes:-to:defaultvia:192.168.1.1nameservers:addresses:[8.8.8.8,114.114.114.114]# 应用配置netplan apply# 测试配置超时自动回滚防止断连netplan try3.4 配置主机名# 设置主机名hostnamectl set-hostname web-server-01# 查看主机名hostnamectl# 配置 /etc/hostsecho192.168.1.100 web-server-01/etc/hostsecho192.168.1.101 db-server-01/etc/hosts四、网络诊断工具4.1 ping - 测试连通性ping192.168.1.1# 一直 pingping-c48.8.8.8# ping 4 次后停止ping-i0.5192.168.1.1# 每 0.5 秒 ping 一次4.2 traceroute / tracepath - 追踪路由traceroute8.8.8.8 tracepath8.8.8.8# 不需要 root 权限mtr8.8.8.8# 交互式路由追踪推荐4.3 dig / nslookup - DNS 查询# DNS 查询digexample.comdig8.8.8.8 example.com# 指定 DNS 服务器digexample.com MX# 查询 MX 记录digexample.com TXT# 查询 TXT 记录digshort example.com# 只输出 IPnslookupexample.comnslookupexample.com8.8.8.84.4 curl - HTTP 请求# 基本 GET 请求curlhttp://example.com# 显示响应头curl-Ihttp://example.com# 带详细信息curl-vhttp://example.com# POST 请求curl-XPOST http://api.example.com/users\-HContent-Type: application/json\-d{name:alice,age:25}# 下载文件curl-Ohttp://example.com/file.tar.gzcurl-ocustom_name.tar.gz http://example.com/file.tar.gz# 跟随重定向curl-Lhttp://example.com# 测试接口响应时间curl-o/dev/null-s-wDNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\nhttp://example.com4.5 telnet / nc - 端口测试# 测试端口是否开放telnet192.168.1.10080# nc 更灵活nc-zv192.168.1.10080# 测试 TCP 端口nc-zvu192.168.1.10053# 测试 UDP 端口nc-zv192.168.1.100804438080# 测试多个端口# 扫描端口范围nc-zv192.168.1.1001-100021|grepsucceeded4.6 tcpdump - 抓包分析# 抓取指定网卡的流量tcpdump-ieth0# 抓取指定端口tcpdump-ieth0 port80# 抓取指定 IP 的流量tcpdump-ieth0host192.168.1.100 tcpdump-ieth0 src192.168.1.100 tcpdump-ieth0 dst192.168.1.100# 抓取 HTTP 请求tcpdump-ieth0-Aport80# 保存到文件用 Wireshark 分析tcpdump-ieth0-wcapture.pcap port80# 组合条件tcpdump-ieth0tcp port 80 and host 192.168.1.100-nn-c100五、网络相关配置文件文件作用/etc/hosts本地域名解析/etc/resolv.confDNS 服务器配置/etc/nsswitch.conf名称解析顺序/etc/services端口与服务名映射/etc/sysconfig/network-scripts/CentOS 网卡配置/etc/netplan/Ubuntu 网络配置/etc/sysctl.conf内核网络参数配置 DNS# 临时生效echonameserver 8.8.8.8/etc/resolv.confechonameserver 114.114.114.114/etc/resolv.conf# CentOS 永久生效通过 nmclinmcli connection modify ens33 ipv4.dns8.8.8.8 114.114.114.114nmcli connection up ens33# Ubuntu 永久生效通过 netplan# 在 netplan 配置的 nameservers 中设置六、内核网络参数调优编辑/etc/sysctl.conf或/etc/sysctl.d/下的文件# 常见网络参数net.ipv4.ip_forward1# 开启 IP 转发路由器/Docker 需要net.ipv4.tcp_syncookies1# 防止 SYN Flood 攻击net.ipv4.tcp_max_syn_backlog65535# SYN 队列长度net.ipv4.tcp_tw_reuse1# 复用 TIME_WAIT 连接net.ipv4.tcp_tw_recycle0# 不建议开启NAT 环境有问题net.ipv4.tcp_fin_timeout30# FIN-WAIT-2 超时时间net.core.somaxconn65535# 监听队列长度net.core.netdev_max_backlog65535# 网卡收包队列长度net.ipv4.tcp_keepalive_time600# keepalive 探测间隔net.ipv4.tcp_max_tw_buckets32768# TIME_WAIT 最大数量# 应用配置sysctl-p七、实战场景场景一网站无法访问排查# 1. 检查本机网络是否通ping192.168.1.1# 网关ping8.8.8.8# 外网 IP# 2. 检查 DNS 是否正常digexample.comnslookupexample.com# 3. 检查端口是否开放ss-tlnp|grep:80curl-Ihttp://localhost# 本地测试# 4. 检查防火墙firewall-cmd --list-ports# CentOSiptables-L-n# 通用# 5. 检查路由iproute gettarget_iptraceroutetarget_ip场景二服务器端口不通排查# 1. 确认服务是否监听ss-tlnp|grep:3306# 2. 本地测试nc-zv127.0.0.13306# 3. 检查防火墙规则firewall-cmd --list-all iptables-L-n--line-numbers# 4. 检查是否只监听 127.0.0.1# 如果是 127.0.0.1:3306 则外部无法连接# 需要修改为 0.0.0.0:3306场景三配置双网卡双网关# 主网卡走默认网关nmcli connection modify eth0 ipv4.addresses192.168.1.100/24 nmcli connection modify eth0 ipv4.gateway192.168.1.1# 第二块网卡配置 IP不走默认网关nmcli connection modify eth1 ipv4.addresses10.0.0.100/24 nmcli connection modify eth1 ipv4.gateway# 不设置网关# 添加静态路由10.x 网段走第二块网卡的网关iprouteadd10.0.0.0/8 via10.0.0.1 dev eth1# 永久生效创建路由配置文件CentOScat/etc/sysconfig/network-scripts/route-eth1EOF 10.0.0.0/8 via 10.0.0.1 dev eth1 EOF八、小结本篇涵盖了网络配置nmcli、配置文件、Netplan和网络诊断工具ping、traceroute、dig、curl、tcpdump 等。网络排查是运维最频繁的工作之一建议建立清晰的排查思路从本机到网关到外网从物理层到网络层到应用层。上一篇05 - 软件包管理下一篇07 - 磁盘管理与 LVM