Linux-网络管理
网络管理
- 1. 网络基础
- 1.1 TCP/IP 协议栈(四层模型)
- 1.2 网络设备配置与基础概念
- 1.3 网络接口命名规则
- 1.4 网络配置文件位置
- 2. 常用网络配置命令
- 2.1 查看网络接口信息
- 2.2 配置 IP 地址
- 2.3 启用/禁用网卡
- 2.4 修改网卡 MAC 地址
- 2.5 配置网卡的 MTU(最大传输单元)
- 3. 配置网络服务
- 3.1 静态 IP 配置
- Debian 系列
- RHEL 系列
- 3.2 动态 IP 配置(DHCP)
- Debian 系列
- RHEL 系列
- 综合案例
- 一、目标与思路
- 二、操作步骤总览
- 三、详细步骤与命令
- 1. 配置网络接口(让服务器“有网可上”)
- Debian / Ubuntu
- RHEL / CentOS / Rocky
- 2. 配置防火墙(只开 80/443)
- 方案 A:iptables(一次性,重启后需 save)
- 方案 B:firewalld(持久化)
- 3. 加固 SSH(换端口 + 禁用 root 密码)
- 4. 连通性测试
- 4.1 测试上网
- 4.2 查看路由路径
- 5. 配置验证(确保真正生效)
- 四、一键脚本
- 五、常见故障排查表
- 常见面试问题及答案
- 问题 1:如何查看 Linux 系统中所有网络接口的配置信息?
- 问题 2:如何为 Linux 系统中的网络接口配置静态 IP 地址?
- 问题 3:如何测试 Linux 系统中网络的连通性?
- 问题 4:如何查看 Linux 系统中网络接口的硬件信息?
- 问题 5:如何在 Linux 系统中配置防火墙规则?
- 问题 6:如何在 Linux 系统中配置 SSH 服务?
- 网络诊断与监控
- 4.1 查看网络连接状态
- ① netstat(传统工具,net-tools 包)
- ② ss(iproute2 套件,比 netstat 快且功能更多)
- 4.2 测试网络连通性
- ping(IPv4/IPv6 连通性测试)
- 4.3 跟踪路由
- traceroute
- 4.4 DNS 查询
- nslookup
- dig
- 4.5 捕获和分析网络流量
- tcpdump
- **一个实际案例整合知识**
- 5. VLAN 子接口
- 6. Bridge(网桥)
- 7. Bond(链路聚合)
- 8. Promiscuous Mode(混杂模式)
- 9. 防火墙(iptables)
- 10. SSH 服务加固
- 11. DNS 解析
- 12. 网卡硬件信息与性能调优
- 拓展
- 1、适用于家庭、工作室或小型企业的局域网构建
- 2.VLAN划分
- 3.VLAN 划分 + 端口 MAC-IP 绑定 + 静态 DHCP
1. 网络基础
1.1 TCP/IP 协议栈(四层模型)
TCP/IP 是互联网通信的基础,分为四层(从下往上):
-
链路层(Link Layer)
- 负责物理设备间的通信(如以太网、Wi-Fi)。
- 关键概念:MAC 地址(设备物理地址)、ARP 协议(通过 IP 找 MAC)。
-
网络层(Internet Layer)
- 负责跨网络的数据传输,核心协议是 IP(如 IPv4/IPv6)。
- 关键概念:IP 地址(逻辑地址)、子网掩码(划分网络范围)、路由(决定数据包路径)。
-
传输层(Transport Layer)
- 提供端到端的通信,主要协议是 TCP(可靠连接)和 UDP(无连接)。
- 关键概念:端口号(区分不同服务,如 HTTP=80,SSH=22)。
-
应用层(Application Layer)
- 用户直接接触的协议,如 HTTP(网页)、FTP(文件传输)、DNS(域名解析)。
1.2 网络设备配置与基础概念
1. 路由器(Router)
- 作用:连接不同网络,根据 路由表 决定数据包的下一跳。
- 关键配置:
- 静态路由:手动指定路径(如
ip route 192.168.2.0 255.255.255.0 10.0.0.1
)。 - 动态路由:通过协议(如 OSPF、RIP)自动学习路径。
- 静态路由:手动指定路径(如
2. 交换机(Switch)
- 作用:在局域网(LAN)内根据 MAC 地址 转发数据,避免广播风暴。
- 关键配置:
- VLAN(虚拟局域网):将一个物理交换机逻辑划分为多个广播域。
- 示例:将端口 1-10 划入 VLAN 10(财务部),端口 11-20 划入 VLAN 20(技术部)。
- 命令(Cisco 交换机):
vlan 10 name Finance interface range fa0/1-10 switchport mode access switchport access vlan 10
- VLAN(虚拟局域网):将一个物理交换机逻辑划分为多个广播域。
3. 子网划分(Subnetting)
- 作用:将一个大的 IP 网络划分为多个小网络,减少广播流量,提高安全性。
- 关键概念:
- 子网掩码:如
255.255.255.0
(/24)表示前 24 位是网络号,后 8 位是主机号。 - 示例:
- 公司需要 50 台主机,可分配
192.168.1.0/26
(子网掩码255.255.255.192
),可用主机范围:
192.168.1.1 ~ 192.168.1.62
。
- 公司需要 50 台主机,可分配
- 子网掩码:如
1.3 网络接口命名规则
在 Linux 系统中,网络接口的命名规则如下:
- 传统命名规则:
eth0
、eth1
等,通常用于较旧的系统。 - 现代命名规则:
enp0s3
、enp2s0
等,这种命名方式更描述性,便于识别接口的物理位置。
1.4 网络配置文件位置
- Debian 系列:
/etc/network/interfaces
- RHEL 系列:
/etc/sysconfig/network-scripts/ifcfg-*
2. 常用网络配置命令
以下是 2. 常用网络配置命令 的参数列表及输出样例:
2.1 查看网络接口信息
ifconfig
- 作用:显示网络接口的配置信息。
- 参数:
-a
:显示所有网络接口的信息,包括未激活的接口。-s
:显示简要的网络接口信息。
- 示例:
输出样例:ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255ether 00:11:22:33:44:55 txqueuelen 1000 (Ethernet)RX packets 123456 bytes 123456789 (117.7 MiB)TX packets 654321 bytes 987654321 (941.9 MiB) lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0loop txqueuelen 1000 (Local Loopback)RX packets 1234 bytes 123456 (120.6 KiB)TX packets 1234 bytes 123456 (120.6 KiB)
-
接口名称和标志
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
eth0
:网络接口名称,表示以太网接口。flags=4163<UP,BROADCAST,RUNNING,MULTICAST>
:UP
:接口已启用。BROADCAST
:支持广播功能。RUNNING
:接口正在运行。MULTICAST
:支持多播功能。
mtu 1500
:最大传输单元(MTU)为 1500 字节。
-
IPv4 配置
inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
inet
:表示 IPv4 地址。192.168.1.100
:接口的 IP 地址。netmask 255.255.255.0
:子网掩码。broadcast 192.168.1.255
:广播地址。
-
MAC 地址和队列长度
ether 00:11:22:33:44:55 txqueuelen 1000 (Ethernet)
ether
:表示以太网接口的 MAC 地址。00:11:22:33:44:55
:接口的 MAC 地址。txqueuelen 1000
:发送队列长度。(Ethernet)
:接口类型为以太网。
-
接收和发送统计
RX packets 123456 bytes 123456789 (117.7 MiB)
RX packets
:接收的数据包数量。bytes
:接收的字节数。(117.7 MiB)
:接收的字节数换算成兆字节。
TX packets 654321 bytes 987654321 (941.9 MiB)
TX packets
:发送的数据包数量。bytes
:发送的字节数。(941.9 MiB)
:发送的字节数换算成兆字节。
-
环回接口
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
lo
:环回接口(loopback)。flags=73<UP,LOOPBACK,RUNNING>
:UP
:接口已启用。LOOPBACK
:环回接口。RUNNING
:接口正在运行。
mtu 65536
:环回接口的 MTU 为 65536 字节。
inet 127.0.0.1 netmask 255.0.0.0
inet
:环回接口的 IPv4 地址。127.0.0.1
:环回地址。netmask 255.0.0.0
:子网掩码。
ip
- 作用:显示和操作路由、网络设备、接口等网络信息。
- 参数:
addr
或a
:显示或操作 IP 地址。link
或l
:显示或操作网络设备。route
或r
:显示或操作路由表。
- 示例:
输出样例:ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ffinet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0valid_lft 86399sec preferred_lft 86399sec
-
接口索引和名称
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
1:
:接口索引号。lo
:接口名称,表示环回接口。<LOOPBACK,UP,LOWER_UP>
:LOOPBACK
:环回接口。UP
:接口已启用。LOWER_UP
:接口处于低层活动状态。
mtu 65536
:环回接口的 MTU 为 65536 字节。qdisc noqueue
:队列调度器类型为noqueue
。state UNKNOWN
:接口状态未知。group default
:接口属于默认组。qlen 1000
:队列长度。
-
环回接口的链路信息
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
link/loopback
:环回接口的链路类型。00:00:00:00:00:00
:环回接口的 MAC 地址。brd 00:00:00:00:00:00
:广播地址。
-
环回接口的 IPv4 配置
inet 127.0.0.1/8 scope host lo
inet
:表示 IPv4 地址。127.0.0.1/8
:环回接口的 IP 地址和子网掩码(CIDR 表示法)。scope host
:地址作用范围为本地主机。lo
:所属接口名称。
valid_lft forever preferred_lft forever
valid_lft
:地址的有效生命周期。preferred_lft
:地址的优先使用生命周期。
-
以太网接口
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
2:
:接口索引号。eth0
:接口名称,表示以太网接口。<BROADCAST,MULTICAST,UP,LOWER_UP>
:BROADCAST
:支持广播功能。MULTICAST
:支持多播功能。UP
:接口已启用。LOWER_UP
:接口处于低层活动状态。
mtu 1500
:接口的 MTU 为 1500 字节。qdisc pfifo_fast
:队列调度器类型为pfifo_fast
。state UP
:接口状态为启用。group default
:接口属于默认组。qlen 1000
:队列长度。
-
以太网接口的链路信息
link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
link/ether
:以太网接口的链路类型。00:11:22:33:44:55
:接口的 MAC 地址。brd ff:ff:ff:ff:ff:ff
:广播地址。
-
以太网接口的 IPv4 配置
inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0
inet
:表示 IPv4 地址。192.168.1.100/24
:接口的 IP 地址和子网掩码(CIDR 表示法)。brd 192.168.1.255
:广播地址。scope global
:地址作用范围为全局。dynamic
:地址是动态分配的。eth0
:所属接口名称。
valid_lft 86399sec preferred_lft 86399sec
valid_lft
:地址的有效生命周期为 86399 秒。preferred_lft
:地址的优先使用生命周期为 86399 秒。
ifconfig
输出更简洁,适合快速查看网络接口的基本信息。ip addr show
输出更详细,包含更多技术细节(如队列调度器类型、地址生命周期等),适合用于更复杂的网络配置和调试。
2.2 配置 IP 地址
ifconfig
- 作用:配置网络接口的 IP 地址。
- 参数:
up
:启用网络接口。down
:禁用网络接口。hw ether
:设置网络接口的 MAC 地址。mtu
:设置网络接口的 MTU(最大传输单元)。
- 示例:
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0
ip
- 作用:配置网络接口的 IP 地址。
- 参数:
add
:添加 IP 地址。del
:删除 IP 地址。
- 示例:
sudo ip addr add 192.168.1.100/24 dev eth0
2.3 启用/禁用网卡
ifconfig
- 作用:启用或禁用网络接口。
- 参数:
up
:启用网络接口。down
:禁用网络接口。
- 示例:
sudo ifconfig eth0 up
ip
- 作用:启用或禁用网络接口。
- 参数:
up
:启用网络接口。down
:禁用网络接口。
- 示例:
sudo ip link set eth0 up
2.4 修改网卡 MAC 地址
ifconfig
- 作用:修改网络接口的 MAC 地址。
- 参数:
hw ether
:设置网络接口的 MAC 地址。
- 示例:
sudo ifconfig eth0 hw ether 00:11:22:33:44:55
ip
- 作用:修改网络接口的 MAC 地址。
- 参数:
link set
:设置网络接口的属性。
- 示例:
sudo ip link set eth0 address 00:11:22:33:44:55
2.5 配置网卡的 MTU(最大传输单元)
ifconfig
- 作用:配置网络接口的 MTU。
- 参数:
mtu
:设置网络接口的 MTU。
- 示例:
sudo ifconfig eth0 mtu 1500
ip
- 作用:配置网络接口的 MTU。
- 参数:
mtu
:设置网络接口的 MTU。
- 示例:
sudo ip link set eth0 mtu 1500
以下是 ifconfig
和 ip
命令的参数对比表格:
功能/参数 | ifconfig 命令 | ip 命令 |
---|---|---|
查看网络接口信息 | ifconfig ifconfig -a | ip addr show ip link show |
启用网络接口 | ifconfig [interface] up | ip link set [interface] up |
禁用网络接口 | ifconfig [interface] down | ip link set [interface] down |
配置 IP 地址 | ifconfig [interface] [IP] netmask [MASK] | ip addr add [IP]/[CIDR] dev [interface] |
删除 IP 地址 | ifconfig [interface] del [IP] | ip addr del [IP]/[CIDR] dev [interface] |
修改 MAC 地址 | ifconfig [interface] hw ether [MAC] | ip link set [interface] address [MAC] |
配置 MTU | ifconfig [interface] mtu [MTU] | ip link set [interface] mtu [MTU] |
支持 IPv6 | 需单独配置 IPv6 地址 | 支持 IPv6 配置 |
高级功能支持 | 不支持 VLAN、隧道、策略路由等 | 支持 VLAN、隧道、策略路由等 |
ifconfig
是较传统的网络配置工具,功能相对简单,主要用于 IPv4 配置。ip
命令功能更强大,支持 IPv4 和 IPv6,适用于现代复杂网络环境。
3. 配置网络服务
3.1 静态 IP 配置
Debian 系列
- 文件位置:
/etc/network/interfaces
- 示例:
auto eth0 iface eth0 inet staticaddress 192.168.1.100netmask 255.255.255.0gateway 192.168.1.1dns-nameservers 8.8.8.8 8.8.4.4
RHEL 系列
- 文件位置:
/etc/sysconfig/network-scripts/ifcfg-eth0
- 示例:
BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4
3.2 动态 IP 配置(DHCP)
Debian 系列
- 文件位置:
/etc/network/interfaces
- 示例:
auto eth0 iface eth0 inet dhcp
RHEL 系列
- 文件位置:
/etc/sysconfig/network-scripts/ifcfg-eth0
- 示例:
BOOTPROTO=dhcp
综合案例
假设您需要为一个 Linux 服务器配置网络,使其能够访问外部网络,并且需要配置防火墙规则以允许 HTTP 和 HTTPS 流量,同时禁用 root 用户的 SSH 登录。
适用系统
• Debian 系列:Ubuntu 18/20/22、Debian 10/11/12
• RHEL 系列:CentOS 7/8、Rocky Linux 8/9、AlmaLinux 8/9
一、目标与思路
目标 | 技术手段 |
---|---|
服务器能上网 | 静态 IP + 网关 + DNS |
对外提供 Web | 防火墙放行 80/TCP、443/TCP |
远程管理安全 | 改 SSH 端口、禁止 root 密码登录 |
配置可验证 | ping、traceroute、ss、tcpdump |
二、操作步骤总览
- 配置网络接口
- 配置防火墙
- 配置 SSH
- 连通性测试
- 配置验证
三、详细步骤与命令
1. 配置网络接口(让服务器“有网可上”)
Debian / Ubuntu
sudo vim /etc/network/interfaces
写入:
auto eth0
iface eth0 inet staticaddress 192.168.1.100netmask 255.255.255.0gateway 192.168.1.1dns-nameservers 8.8.8.8 8.8.4.4
立即生效:
sudo ifdown eth0 && sudo ifup eth0
RHEL / CentOS / Rocky
sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0
写入:
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
重启网络:
sudo nmcli connection reload && sudo nmcli connection up eth0
2. 配置防火墙(只开 80/443)
方案 A:iptables(一次性,重启后需 save)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables-save | sudo tee /etc/iptables/rules.v4
方案 B:firewalld(持久化)
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload
3. 加固 SSH(换端口 + 禁用 root 密码)
编辑配置文件:
sudo vim /etc/ssh/sshd_config
修改/新增:
Port 12345
PermitRootLogin no
PasswordAuthentication no
重启服务:
sudo systemctl restart sshd
⚠️ 在退出当前会话前,请先另开窗口验证能否密钥登录!
4. 连通性测试
4.1 测试上网
ping -c 4 8.8.8.8
期望输出:
4 packets transmitted, 4 received, 0% packet loss
4.2 查看路由路径
traceroute 8.8.8.8
确认数据包经过的网关及延迟正常。
5. 配置验证(确保真正生效)
检查项 | 命令 | 期望结果 |
---|---|---|
本机监听端口 | sudo ss -tulnp | 80、443、12345 均出现 |
防火墙规则 | sudo iptables -L -n 或 sudo firewall-cmd --list-all | 80/tcp、443/tcp 为 ACCEPT |
实时抓包 | sudo tcpdump -i eth0 host 8.8.8.8 -c 5 | 可见正常 ICMP 或 HTTP 流量 |
四、一键脚本
保存为 setup.sh
,root 执行即可(需自行改接口名):
#!/bin/bash
set -e
# 1. 静态 IP
cat >/etc/sysconfig/network-scripts/ifcfg-eth0 <<EOF
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
EOF
nmcli connection reload && nmcli connection up eth0# 2. 防火墙
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload# 3. SSH
sed -ri 's/^#?Port .*/Port 12345/' /etc/ssh/sshd_config
sed -ri 's/^#?PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
sed -ri 's/^#?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart sshdecho "Done. 请使用密钥登录测试!"
五、常见故障排查表
现象 | 排查思路 |
---|---|
ping 不通外网 | 检查网关/掩码/DNS、路由表 ip r |
80 端口拒绝 | ss -lntp 看 nginx/apache 是否启动;防火墙是否放行 |
SSH 连不上 | 确认端口 telnet IP 12345 ;SELinux、云安全组是否放行新端口 |
DNS 解析慢 | 换 DNS echo nameserver 1.1.1.1 > /etc/resolv.conf |
常见面试问题及答案
问题 1:如何查看 Linux 系统中所有网络接口的配置信息?
- 答案:
或ifconfig
ip addr show
问题 2:如何为 Linux 系统中的网络接口配置静态 IP 地址?
- 答案:
对于 Debian 系列系统,编辑/etc/network/interfaces
文件:
对于 RHEL 系列系统,编辑auto eth0 iface eth0 inet staticaddress 192.168.1.100netmask 255.255.255.0gateway 192.168.1.1dns-nameservers 8.8.8.8 8.8.4.4
/etc/sysconfig/network-scripts/ifcfg-eth0
文件:BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4
问题 3:如何测试 Linux 系统中网络的连通性?
- 答案:
使用ping
命令:ping -c 4 192.168.1.1
问题 4:如何查看 Linux 系统中网络接口的硬件信息?
- 答案:
使用lshw
命令:
或使用sudo lshw -C network
ethtool
命令:sudo ethtool -i eth0
问题 5:如何在 Linux 系统中配置防火墙规则?
- 答案:
使用iptables
命令:
或使用sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
firewalld
命令:sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --reload
问题 6:如何在 Linux 系统中配置 SSH 服务?
- 答案:
编辑/etc/ssh/sshd_config
文件:
然后重启 SSH 服务:Port 12345 PermitRootLogin no PasswordAuthentication no
sudo systemctl restart sshd
网络诊断与监控
4.1 查看网络连接状态
① netstat(传统工具,net-tools 包)
常用组合 | 含义 |
---|---|
-a | 列出所有 socket(监听 + 已连接) |
-n | 不做反向解析,IP 和端口都以数字显示 |
-t | 仅显示 TCP |
-u | 仅显示 UDP |
-p | 把拥有 socket 的进程 PID/名字也打印出来 |
-l | 只看处于 LISTEN 状态的 socket |
示例 1:查看当前所有 TCP 监听端口(带进程名)
sudo netstat -lntp
真实输出
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1058/sshd
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 1821/postgres
tcp6 0 0 :::80 :::* LISTEN 1247/nginx
逐行解读
- Proto:协议,
tcp
或tcp6
。 - Recv-Q:LISTEN 状态下表示已完成三次握手、等待应用 accept 的半连接队列长度。
- Send-Q:LISTEN 状态下表示半连接队列的最大容量。
- Local Address:
0.0.0.0:22
表示本机所有 IPv4 地址都监听 22 端口;127.0.0.1:5432
只监听回环。 - State:
LISTEN
表示正在等待连接。 - PID/Program name:哪个进程占用了该 socket。
② ss(iproute2 套件,比 netstat 快且功能更多)
常用组合 | 含义 |
---|---|
-a | 所有 socket |
-n | 不解析名称 |
-t | TCP |
-u | UDP |
-l | 仅监听 |
-p | 显示进程 |
-s | 打印统计摘要 |
示例 2:查看所有 UDP 监听端口(带进程号)
sudo ss -unlp
真实输出
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
UNCONN 0 0 0.0.0.0:68 0.0.0.0:* users:(("dhclient",pid=987,fd=6))
UNCONN 0 0 0.0.0.0:111 0.0.0.0:* users:(("rpcbind",pid=680,fd=5))
逐行解读
- State
UNCONN
:UDP 无连接,所以不是 LISTEN,而是“未连接”。 - Local Address:Port
0.0.0.0:68
:本机 68 端口(DHCP 客户端)。 - users:进程 PID + 名字 + 文件描述符。
4.2 测试网络连通性
ping(IPv4/IPv6 连通性测试)
常用参数 | 含义 |
---|---|
-c N | 发送 N 个 ICMP Echo 后退出 |
-i S | 每 S 秒发送一次(默认 1s) |
-s SIZE | ICMP 数据部分大小(默认 56 字节) |
-W T | 等待响应的超时时间(秒) |
-4 / -6 | 强制 IPv4/IPv6 |
示例 3:向 8.8.8.8 发送 4 个包
ping -c 4 8.8.8.8
真实输出
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=28.4 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=27.9 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=28.1 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=117 time=27.8 ms--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 27.809/28.043/28.411/0.233 ms
逐行解读
- 56(84) bytes:ICMP 数据 56 字节 + 8 字节 ICMP 头 + 20 字节 IP 头 = 84。
- icmp_seq:第几个 Echo 请求。
- ttl=117:剩余跳数(从 128 开始,128-117=11 跳)。
- time=28.4 ms:往返时延。
- 最后统计:发送 4 个,收到 4 个,丢包 0%,平均延迟 28.043 ms。
场景 | 推荐命令 |
---|---|
查看本机所有监听端口 | sudo ss -tulnp (或 netstat -tulnp ) |
查某端口被谁占用 | sudo ss -lntp sport = :80 |
测试到外网通不通 | ping -c 4 8.8.8.8 |
查看路由 | ip r (取代 netstat -r ) |
4.3 跟踪路由
traceroute
常用参数 | 含义 |
---|---|
-n | 不做 DNS 反查,直接显示 IP,速度更快 |
-m | max-hops,默认 30,可手动改小改大 |
-I | 用 ICMP Echo 而不是 UDP 数据包(穿透部分防火墙) |
-T | 用 TCP SYN 探测(常用于 80/443) |
示例
sudo traceroute -n -m 5 8.8.8.8
输出
traceroute to 8.8.8.8 (8.8.8.8), 5 hops max, 60 byte packets1 192.168.1.1 0.504 ms 0.458 ms 0.432 ms2 10.10.10.1 2.351 ms 2.123 ms 2.089 ms3 172.16.0.1 5.630 ms 5.487 ms 5.321 ms4 202.96.199.1 7.125 ms 7.012 ms 6.893 ms5 * * *
解读
- 第 1 列:跳数编号。
- 第 2 列:该跳的 IP(因
-n
没做 DNS)。 - 后面 3 个时间:traceroute 默认发 3 个包,RTT 分别列出。
* * *
:第 5 跳超时,可能 ICMP 被丢弃或 TTL 已到达目标但目标不回应。
4.4 DNS 查询
nslookup
交互式参数 | 含义 |
---|---|
-type=A / -type=MX / -type=TXT | 指定查询记录类型 |
-debug | 显示整个响应包内容 |
示例
nslookup -type=MX example.com
输出
Server: 8.8.8.8
Address: 8.8.8.8#53Non-authoritative answer:
example.com mail exchanger = 10 mail.example.com.
解读
- Server/Address:本机当前使用的 DNS 服务器。
- Non-authoritative:非权威回答,说明来自缓存。
- 10:MX 优先级,数字越小越优先。
- mail.example.com:真正负责收邮件的主机。
dig
常用参数 | 含义 |
---|---|
+short | 仅显示结果,不显示 flags、headers |
+trace | 逐级迭代查询,从根开始 |
+norecurse | 不请求递归,可测权威服务器 |
@8.8.8.8 | 临时指定 DNS 服务器 |
示例 1:A 记录 + 简短输出
dig example.com A +short
输出:
93.184.216.34
示例 2:完整迭代追踪
dig example.com +trace
输出(截取关键行):
. 518400 IN NS a.root-servers.net.
;; Received 525 bytes from 127.0.0.53#53(127.0.0.53)
com. 172800 IN NS a.gtld-servers.net.
;; Received 828 bytes from 198.41.0.4#53(a.root-servers.net)
example.com. 172800 IN NS a.iana-servers.net.
;; Received 700 bytes from 192.5.6.30#53(a.gtld-servers.net)
example.com. 86400 IN A 93.184.216.34
解读
- 每段以
;;
开头的是注释,告诉你“刚才向谁查到了什么”。 - 从上到下,依次是:根 → TLD(.com) → 目标域的权威服务器 → 最终 A 记录。
4.5 捕获和分析网络流量
tcpdump
常用参数 | 含义 |
---|---|
-i any | 监听所有接口 |
-i eth0 | 指定接口 |
-n | 不解析域名和端口名 |
-nn | 连端口号也不解析 |
-v / -vv / -vvv | 逐级增加详细度 |
-w file.pcap | 写入文件供 Wireshark 分析 |
-c 100 | 抓 100 个包后自动停止 |
host 8.8.8.8 | 只抓与 8.8.8.8 相关的流量 |
port 80 | 只抓 80 端口 |
示例
sudo tcpdump -i eth0 -nn -c 3 host 8.8.8.8
输出
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
15:21:12.123456 IP 192.168.1.100.54321 > 8.8.8.8.53: UDP, length 64
15:21:12.124789 IP 8.8.8.8.53 > 192.168.1.100.54321: UDP, length 80
15:21:12.125012 IP 192.168.1.100.54322 > 8.8.8.8.53: UDP, length 64
3 packets captured
解读
- 时间戳:微秒级。
- 192.168.1.100.54321:源 IP.源端口。
- 8.8.8.8.53:目的 IP.目的端口(53 即 DNS)。
- UDP:协议,length 表示载荷字节数。
步骤/工具 | 目的(一句话完整描述) |
---|---|
4.1 ① netstat | 通过列出所有监听端口、已建立连接及其所属进程信息,帮助管理员快速确认哪些服务正在运行、哪些端口被占用,是传统网络排查的入门级工具。 |
4.1 ② ss | 利用内核 netlink 接口高速输出套接字统计,比 netstat 更快速、更详细地展示 TCP/UDP/RAW 连接状态、队列长度和进程 PID,适用于高并发场景下的端口监控与故障定位。 |
4.2 ping | 发送 ICMP Echo 请求并统计往返时延和丢包率,用于验证本地到目标主机在 IPv4/IPv6 层的可达性以及链路质量,是最简单直观的网络连通性测试手段。 |
4.3 traceroute | 通过递增 TTL 逐跳发送探测包并记录每一跳返回的 ICMP 超时或端口不可达报文,从而绘制出完整的路由路径并发现潜在的高延迟或丢包节点。 |
4.4 nslookup | 以交互或命令行方式向指定 DNS 服务器查询各类记录(A、AAAA、MX、TXT 等),帮助管理员快速判断域名解析是否正确、权威 DNS 是否生效。 |
4.4 dig | 提供丰富的 DNS 诊断选项(+trace、+short、@server),可完整展示从根到权威服务器的迭代查询过程,精确定位解析故障、缓存污染或 TTL 问题。 |
4.5 tcpdump | 在网络接口上实时捕获并解码链路层到应用层的原始数据包,支持灵活过滤表达式,用于深度故障排查、性能分析与安全取证。 |
一个实际案例整合知识
场景:用户投诉无法访问互联网,如何排查?
-
用
ping
测试:ping 8.8.8.8
- 如果 不通:可能是本地网络、路由器或 ISP 问题。
- 如果 通但域名不通:可能是 DNS 问题(如
ping www.baidu.com
失败)。
-
用
traceroute
定位:traceroute 8.8.8.8
- 如果卡在 第一跳(如
192.168.1.1
):检查路由器是否故障。 - 如果卡在 中间某跳:联系 ISP 报障。
- 如果卡在 第一跳(如
-
用
netstat
检查本机:netstat -rn # 查看路由表,确认是否有默认网关(如 0.0.0.0 -> 192.168.1.1)
总结
- 协议栈:从下往上理解数据如何封装、传输、解封装。
- 工具:
ping
测连通性、traceroute
追路径、netstat
看连接。 - 设备与概念:路由器跨网络,交换机隔离冲突域,VLAN 隔离广播域,子网划分优化 IP 使用。
5. VLAN 子接口
- What
在一张物理网卡上虚拟出带 802.1Q tag 的子接口。 - Why
交换机 trunk 打 tag,服务器需要识别不同 VLAN。 - When
需要把一台服务器同时放进多个二层网段。 - How
# 1. 基于 eth0 创建 VLAN ID 100 的子接口 eth0.100 sudo ip link add link eth0 name eth0.100 type vlan id 100# 2. 给子接口配置 IP sudo ip addr add 192.168.100.10/24 dev eth0.100# 3. 启用接口 sudo ip link set eth0.100 up# 4. 验证 tag 与状态 ip -d link show eth0.100
6. Bridge(网桥)
- What
把多张网卡变成一台虚拟交换机。 - Why
让虚拟机/容器直接出现在物理网络,或做简单二层转发。 - When
KVM、Docker、LXC 需要桥接;或把多端口当交换机用。 - How
# 1. 创建名为 br0 的网桥 sudo ip link add br0 type bridge# 2. 把 eth0 塞进 br0 sudo ip link set eth0 master br0# 3. 先启物理口再启桥 sudo ip link set eth0 up sudo ip link set br0 up# 4. 验证端口归属与 STP 状态 bridge -d link
7. Bond(链路聚合)
- What
把 ≥2 张物理网卡聚合成一个逻辑口。 - Why
冗余(active-backup)或带宽叠加(LACP)。 - When
交换机支持 LACP/静态聚合;或需要故障秒级切换。 - How
# 1. 创建 mode=1(active-backup) 的 bond0 sudo ip link add bond0 type bond mode active-backup# 2. 先把从接口关掉,避免抖动 sudo ip link set eth0 down sudo ip link set eth1 down# 3. 把从接口加入 bond sudo ip link set eth0 master bond0 sudo ip link set eth1 master bond0# 4. 依次启接口 sudo ip link set eth0 up sudo ip link set eth1 up sudo ip link set bond0 up# 5. 验证主备状态 cat /proc/net/bonding/bond0
8. Promiscuous Mode(混杂模式)
- What
网卡不再按 MAC 过滤,全部收包。 - Why
抓包、IDS、网络虚拟化必备。 - When
tcpdump、Wireshark、Docker bridge、Open vSwitch。 - How
# 开启混杂 sudo ip link set eth0 promisc on# 验证标志出现 PROMISC ip link show eth0
9. 防火墙(iptables)
- What
内核包过滤框架,四表五链。 - Why
最小权限原则:只让必要流量进出。 - When
任何对外暴露服务的主机;上线前。 - How
# 追加一条规则:放行入向 TCP/22 sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT# 查看规则并带行号,方便删除 sudo iptables -L INPUT -n --line-number
10. SSH 服务加固
- What
改端口、禁 root 密码、强制密钥。 - Why
减少爆破面,符合合规。 - When
公网云主机、生产跳板机。 - How
# 1. 先备份原配置 sudo cp /etc/ssh/sshd_config{,.bak}# 2. 改端口为 2222(行内注释:-i 就地替换) sudo sed -ri 's/^#?Port.*/Port 2222/' /etc/ssh/sshd_config# 3. 禁止 root 用密码登录 sudo sed -ri 's/^#?PermitRootLogin.*/PermitRootLogin prohibit-password/' /etc/ssh/sshd_config# 4. 重启生效 sudo systemctl restart sshd# 5. 验证监听端口 sudo ss -lntp | grep 2222
11. DNS 解析
- What
把域名解析成 IP。 - Why
系统需要外部域名;调试 CDN/内部 DNS。 - When
新装系统、临时科学上网、测试新 DNS。 - How
# 临时把 /etc/resolv.conf 改成 1.1.1.1 echo "nameserver 1.1.1.1" | sudo tee /etc/resolv.conf# 验证 systemd-resolve --status | grep -A 3 "DNS Servers"
12. 网卡硬件信息与性能调优
- What
查看驱动/固件/PCI 地址,调 Ring Buffer。 - Why
定位兼容性、丢包、性能瓶颈。 - When
千兆跑不满、升级内核后。 - How
# 1. 查看驱动与固件 sudo ethtool -i eth0# 2. 查看当前 Ring Buffer ethtool -g eth0# 3. 把 RX/TX 队列都调到 4096(需网卡支持) sudo ethtool -G eth0 rx 4096 tx 4096# 4. 验证已生效 ethtool -g eth0 | grep -A2 "Current hardware settings"
拓展
1、适用于家庭、工作室或小型企业的局域网构建
✅ 一、硬件连线(一次到位)
- 光纤入户 → 光猫/宽带调制解调器
- 光猫 LAN 口 → 路由器 WAN 口(RJ-45 或 SFP)
- 路由器 LAN 口(任意)→ 交换机 Up-link(普通千兆口即可)
- 交换机剩余端口 → 电脑A、电脑B、打印机、NAS 等
示意图
外网光纤│
[光猫]---(WAN)[路由器](LAN)---[交换机]---{电脑A、电脑B、打印机、NAS}
✅ 二、路由器配置(打通外网)
以家用/小型商用路由器为例(华为/新华三/小米/网件通用):
-
WAN 口设置
• 上网方式:按 ISP 选择 PPPoE、动态 IP 或静态 IP
• 填写账号/密码或 ISP 提供的静态地址
• NAT 开关保持启用,否则内网无法出网 -
LAN 口设置
• IP:192.168.1.1/24
• DHCP:开;地址池 192.168.1.100-200(留给终端自动获取)
• 网关和 DNS 自动指向 192.168.1.1(路由器自身) -
保存并重启路由器
✅ 三、交换机配置(纯二层,零配置即可用)
• 若交换机为无管理型(D-Link/TP-Link 普通 8/16 口):
直接插线即可,所有端口默认 VLAN 1。
• 若交换机为可管理型(华为 S 系列、H3C、Cisco):
- 创建 VLAN 1(或自定义 VLAN 10)
- 把与路由器连接的口设为 access 并加入 VLAN 1
- 其余口保持默认 access 即可
示例(华为 CLI)
[Huawei] vlan 1
[Huawei]interface GigabitEthernet0/0/1
[Huawei-GigabitEthernet0/0/1] port link-type access
[Huawei-GigabitEthernet0/0/1] port default vlan 1
至此交换机只做「透明转发」角色。
✅ 四、终端配置(全自动)
• 电脑/打印机/NAS 设置为 自动获取 IP(DHCP)。
• 获取成功后:
- IP:192.168.1.x
- 网关:192.168.1.1
- DNS:192.168.1.1 或 8.8.8.8
✅ 五、验证与排障
验证项目 | 命令/操作 | 通过标准 |
---|---|---|
局域网互通 | ping 192.168.1.2 | 0% 丢包 |
外网连通 | ping 8.8.8.8 | 0% 丢包 |
DNS 解析 | nslookup www.baidu.com | 返回真实 IP |
端口/速率 | 电脑网卡状态 | 显示 1 Gbps 全双工 |
2.VLAN划分
参考视频1
参考视频2
参考视频3
✅ 下面给出一个企业四部门真实 VLAN 划分的完整实操案例,华为交换机(eNSP、真机、云网管均支持)中运行。
场景:
- 财务部(VLAN10)、人事部(VLAN20)、市场部(VLAN30)、研发部(VLAN40)
- 交换机:华为 S5700 系列
- 核心需求:
① 部门内可以互访 ② 部门间默认隔离 ③ 关键设备固定 IP - 所有终端网关统一在三层交换机,出网由路由器 NAT
✅ 步骤 1 规划表(先列后配)
部门 | VLAN ID | 网段/掩码 | 网关 | 端口范围 | 固定 MAC/IP 示例 |
---|---|---|---|---|---|
财务部 | 10 | 192.168.10.0/27 | 192.168.10.1 | GE0/0/1-8 | 00e0-fc10-0001 → 192.168.10.4 |
人事部 | 20 | 192.168.20.0/27 | 192.168.20.1 | GE0/0/9-16 | 00e0-fc20-0002 → 192.168.20.5 |
市场部 | 30 | 192.168.30.0/27 | 192.168.30.1 | GE0/0/17-24 | 00e0-fc30-0003 → 192.168.30.6 |
研发部 | 40 | 192.168.40.0/27 | 192.168.40.1 | GE1/0/1-8 | 00e0-fc40-0004 → 192.168.40.7 |
✅ 步骤 2 进入系统视图
<Huawei> system-view # 进入系统视图
[Huawei] sysname Core-SW # 给交换机起个名字
[Core-SW] undo info-center enable # 关闭烦人的日志刷屏
✅ 步骤 3 创建 VLAN(四部门一次建完)
[Core-SW] vlan batch 10 20 30 40 # 同时新建 4 个 VLAN
✅ 步骤 4 把端口“丢”进对应 VLAN(以财务部为例,其余同理)
# 财务部端口 GE0/0/1-8
[Core-SW] port-group finance # 建端口组,方便批量操作
[Core-SW-port-group-finance] group-member GigabitEthernet 0/0/1 to 0/0/8
[Core-SW-port-group-finance] port link-type access # 设为接入端口
[Core-SW-port-group-finance] port default vlan 10 # 统一扔进 VLAN10
[Core-SW-port-group-finance] quit# 人事部端口 GE0/0/9-16
[Core-SW] port-group hr
[Core-SW-port-group-hr] group-member GigabitEthernet 0/0/9 to 0/0/16
[Core-SW-port-group-hr] port link-type access
[Core-SW-port-group-hr] port default vlan 20
[Core-SW-port-group-hr] quit# 市场部端口 GE0/0/17-24
[Core-SW] port-group market
[Core-SW-port-group-market] group-member GigabitEthernet 0/0/17 to 0/0/24
[Core-SW-port-group-market] port link-type access
[Core-SW-port-group-market] port default vlan 30
[Core-SW-port-group-market] quit# 研发部端口 GE1/0/1-8
[Core-SW] port-group rd
[Core-SW-port-group-rd] group-member GigabitEthernet 1/0/1 to 1/0/8
[Core-SW-port-group-rd] port link-type access
[Core-SW-port-group-rd] port default vlan 40
[Core-SW-port-group-rd] quit
✅ 步骤 5 三层网关 + DHCP 地址池(每 VLAN 一套)
# 先打开 DHCP 总开关
[Core-SW] dhcp enable# —— 财务部 ——
[Core-SW] interface Vlanif 10 # 进入 VLAN10 的三层接口
[Core-SW-Vlanif10] ip address 192.168.10.1 255.255.255.224 # 设置网关
[Core-SW-Vlanif10] dhcp select global # 用全局地址池
[Core-SW-Vlanif10] quit[Core-SW] ip pool finance-pool # 建 DHCP 地址池
[Core-SW-ip-pool-finance-pool] network 192.168.10.0 mask 255.255.255.224
[Core-SW-ip-pool-finance-pool] gateway-list 192.168.10.1
[Core-SW-ip-pool-finance-pool] dns-list 8.8.8.8 114.114.114.114
# 固定 IP(财务服务器)
[Core-SW-ip-pool-finance-pool] static-bind ip-address 192.168.10.4 mac-address 00e0-fc10-0001
[Core-SW-ip-pool-finance-pool] quit# —— 人事部 ——
[Core-SW] interface Vlanif 20
[Core-SW-Vlanif20] ip address 192.168.20.1 255.255.255.224
[Core-SW-Vlanif20] dhcp select global
[Core-SW-Vlanif20] quit[Core-SW] ip pool hr-pool
[Core-SW-ip-pool-hr-pool] network 192.168.20.0 mask 255.255.255.224
[Core-SW-ip-pool-hr-pool] gateway-list 192.168.20.1
[Core-SW-ip-pool-hr-pool] dns-list 8.8.8.8 114.114.114.114
[Core-SW-ip-pool-hr-pool] static-bind ip-address 192.168.20.5 mac-address 00e0-fc20-0002
[Core-SW-ip-pool-hr-pool] quit# —— 市场部 ——
[Core-SW] interface Vlanif 30
[Core-SW-Vlanif30] ip address 192.168.30.1 255.255.255.224
[Core-SW-Vlanif30] dhcp select global
[Core-SW-Vlanif30] quit[Core-SW] ip pool market-pool
[Core-SW-ip-pool-market-pool] network 192.168.30.0 mask 255.255.255.224
[Core-SW-ip-pool-market-pool] gateway-list 192.168.30.1
[Core-SW-ip-pool-market-pool] dns-list 8.8.8.8 114.114.114.114
[Core-SW-ip-pool-market-pool] static-bind ip-address 192.168.30.6 mac-address 00e0-fc30-0003
[Core-SW-ip-pool-market-pool] quit# —— 研发部 ——
[Core-SW] interface Vlanif 40
[Core-SW-Vlanif40] ip address 192.168.40.1 255.255.255.224
[Core-SW-Vlanif40] dhcp select global
[Core-SW-Vlanif40] quit[Core-SW] ip pool rd-pool
[Core-SW-ip-pool-rd-pool] network 192.168.40.0 mask 255.255.255.224
[Core-SW-ip-pool-rd-pool] gateway-list 192.168.40.1
[Core-SW-ip-pool-rd-pool] dns-list 8.8.8.8 114.114.114.114
[Core-SW-ip-pool-rd-pool] static-bind ip-address 192.168.40.7 mac-address 00e0-fc40-0004
[Core-SW-ip-pool-rd-pool] quit
✅ 步骤 6 上联出口(Trunk 到路由器)
[Core-SW] interface GigabitEthernet 0/0/25 # 接路由器的口
[Core-SW-GigabitEthernet0/0/25] port link-type trunk
[Core-SW-GigabitEthernet0/0/25] port trunk allow-pass vlan 10 20 30 40
✅ 步骤 7 路由器端(只做 NAT,不做 VLAN)
路由器子接口示例(华为 AR 系列):
[Router] interface GigabitEthernet 0/0/1.10 # 子接口对应 VLAN10
[Router-GigabitEthernet0/0/1.10] dot1q termination vid 10
[Router-GigabitEthernet0/0/1.10] ip address 192.168.10.254 255.255.255.224
[Router-GigabitEthernet0/0/1.10] nat outbound 2000 # 出网 NAT
同理再建 .20
.30
.40
子接口并做 NAT。
✅ 步骤 8 验证命令(逐条带注释)
display vlan # 查看 VLAN 列表与端口归属
display ip pool all # 查看四个地址池分配情况
display dhcp server ip-in-use # 看哪些 IP 已租出
display port vlan active # 端口 → VLAN 对应表
ping 192.168.10.4 -c 3 # 财务服务器是否在线
tracert 8.8.8.8 # 能否出网
✅ 实现功能:
- 同部门互 ping 成功,跨部门默认隔离
- 所有终端自动获取 IP,固定设备永不漂移
- 通过路由器子接口 + NAT,四 VLAN 都能上互联网
3.VLAN 划分 + 端口 MAC-IP 绑定 + 静态 DHCP
下面用 一台 H3C S5500-V3 三层交换机 作为示例,演示
“企业四部门 VLAN 划分 + 端口 MAC-IP 绑定 + 静态 DHCP”
🧩 场景需求
部门 | VLAN | 网段/掩码 | 固定设备 MAC/IP 示例 |
---|---|---|---|
财务部 | 10 | 192.168.10.0/27 | 00e0-fc10-0001 → 192.168.10.100 |
人事部 | 20 | 192.168.20.0/27 | 00e0-fc20-0002 → 192.168.20.100 |
市场部 | 30 | 192.168.30.0/27 | 00e0-fc30-0003 → 192.168.30.100 |
研发部 | 40 | 192.168.40.0/27 | 00e0-fc40-0004 → 192.168.40.100 |
✅ 1 进入系统视图
<H3C> system-view
[H3C] sysname Core-SW
[Core-SW] undo info-center enable # 关闭日志刷屏
✅ 2 创建 VLAN & 三层网关
[Core-SW] vlan batch 10 20 30 40 # 一次建 4 个 VLAN# 财务 VLAN10
[Core-SW] interface Vlan-interface 10
[Core-SW-Vlan-interface10] ip address 192.168.10.1 255.255.255.224
[Core-SW-Vlan-interface10] dhcp select server # 本接口用 DHCP 服务器
[Core-SW-Vlan-interface10] quit# 人事 VLAN20
[Core-SW] interface Vlan-interface 20
[Core-SW-Vlan-interface20] ip address 192.168.20.1 255.255.255.224
[Core-SW-Vlan-interface20] dhcp select server
[Core-SW-Vlan-interface20] quit# 市场 VLAN30
[Core-SW] interface Vlan-interface 30
[Core-SW-Vlan-interface30] ip address 192.168.30.1 255.255.255.224
[Core-SW-Vlan-interface30] dhcp select server
[Core-SW-Vlan-interface30] quit# 研发 VLAN40
[Core-SW] interface Vlan-interface 40
[Core-SW-Vlan-interface40] ip address 192.168.40.1 255.255.255.224
[Core-SW-Vlan-interface40] dhcp select server
[Core-SW-Vlan-interface40] quit
✅ 3 开 DHCP 总开关 & 排除保留段
[Core-SW] dhcp enable
# 把 .1~.99 留给网管/服务器,不参与自动分配
[Core-SW] dhcp server forbidden-ip 192.168.10.1 192.168.10.99
[Core-SW] dhcp server forbidden-ip 192.168.20.1 192.168.20.99
[Core-SW] dhcp server forbidden-ip 192.168.30.1 192.168.30.99
[Core-SW] dhcp server forbidden-ip 192.168.40.1 192.168.40.99
✅ 4 建 DHCP 地址池 + 静态绑定(以财务为例)
[Core-SW] dhcp server ip-pool finance-pool # 建池
[Core-SW-dhcp-pool-finance-pool] network 192.168.10.0 255.255.255.224
[Core-SW-dhcp-pool-finance-pool] gateway-list 192.168.10.1
[Core-SW-dhcp-pool-finance-pool] dns-list 8.8.8.8 114.114.114.114
# 关键:把指定 MAC 固定到 192.168.10.100
[Core-SW-dhcp-pool-finance-pool] static-bind ip-address 192.168.10.100 hardware-address 00e0-fc10-0001
[Core-SW-dhcp-pool-finance-pool] quit
人事/市场/研发同理,只需改 VLAN 号、IP、MAC 即可。
✅ 5 端口 MAC-IP 绑定(防私接)
# 财务服务器专用端口 GE1/0/1
[Core-SW] interface GigabitEthernet 1/0/1
[Core-SW-GigabitEthernet1/0/1] port link-type access
[Core-SW-GigabitEthernet1/0/1] port access vlan 10
# 关键:只允许 00e0-fc10-0001 这个 MAC 上此口
[Core-SW-GigabitEthernet1/0/1] am user-bind mac-addr 00e0-fc10-0001 ip-addr 192.168.10.100
[Core-SW-GigabitEthernet1/0/1] quit
其他端口同理:人事 GE1/0/2、市场 GE1/0/3、研发 GE1/0/4。
命令模板:
am user-bind mac-addr <MAC> ip-addr <IP>
即可。
✅ 6 把端口批量扔进对应 VLAN(示例:财务口 1-8)
[Core-SW] interface range GigabitEthernet 1/0/1 to 1/0/8
[Core-SW-if-range] port link-type access
[Core-SW-if-range] port access vlan 10
[Core-SW-if-range] quit
人事 9-16 → vlan 20,市场 17-24 → vlan 30,研发 25-32 → vlan 40。
✅ 7 上联 Trunk(接防火墙/核心)
[Core-SW] interface GigabitEthernet 1/0/48
[Core-SW-GigabitEthernet1/0/48] port link-type trunk
[Core-SW-GigabitEthernet1/0/48] port trunk permit vlan 10 20 30 40
✅ 8 验证 & 排障
display dhcp server ip-in-use # 查看已分配地址
display dhcp server pool all # 查看四个地址池
display am user-bind interface GE 1/0/1 # 查看端口绑定
display vlan 10 # 端口是否已进 VLAN10
ping 192.168.10.100 -c 3 # 财务服务器是否可达
✅ 9 一键保存
save force