# 针对指定主机抓包 tcpdump -i any -n -nn host 192.168.1.10 -w ./$(date +%Y%m%d%H%M%S).pcap # 针对指定端口抓包 tcpdump -i any -n -nn tcp and port 80 -w ./$(date +%Y%m%d%H%M%S).pcap
网络设备管理 ip
设备管理 ip link
常用命令
1 2 3 4 5 6 7 8 9
ip link show # 查看所有网络接口 ifconfig -a ip link show dev eth0 # 查看指定接口 ifconfig eth0
ip linkset eth0 up # 启用接口 ifconfig eth0 up ip linkset eth0 down # 启用接口 ifconfig eth0 down
ip linkset eth0 address 00:11:22:33:44:55 # 修改MAC地址 ifconfig eth0 hw ether 00:11:22:33:44:55 ip linkset eth0 mtu 1500 # 修改MTU值 ifconfig eth0 mtu 1500 ip linkset eth0 name wan0 # 重命名接口
ip link add vrf-blue type vrf table 10 ip link set dev vrf-blue up ip link set dev eth0 master vrf-blue
虚拟设备 (Virtual Layer) ├── VLAN 接口 => 在一个物理网卡上可以创建多个逻辑网络,起到网络隔离的作用 │ ├── eth0.100 (VLAN ID 100) => ip link add link eth0 name eth0.100 type vlan id 100 │ └── eth0.200 (VLAN ID 200) => ip addr add 192.168.100.1/24 dev eth0.100 │ => ip link set eth0.100 up │ => ip link show type vlan │ ├── vrf 虚拟路由转发 => 在多网卡多网络的场景下,本机逻辑路由划分,避免所有接口共享同一张路由表 │ => ip link add vrf-manage type vrf table 10 │ => ip link set dev vrf-manage up │ => ip link set dev eth0 master vrf-manage │ => ip route show vrf vrf-manage │ => ip vrf exec <vrf-name> <command> │ ├── 网桥设备 (Bridge) => 二层虚拟设备,作用类似于交换机,将加入它的设备放在同一个二层网络里 │ ├── docker0 (Docker网桥) => ip link add name br0 type bridge & ip link set br0 up │ ├── br0 (自定义网桥) => ip addr add 192.168.3.1/24 dev br0 │ │ ├── 虚拟设备 veth0 => ip link add veth0 type veth peer name veth1 │ │ ├── 虚拟设备 veth1 => ip link set veth0 up & ip link set veth0 master br0 │ │ └── 物理设备 eth1 => ip link set veth1 up & ip addr add 192.168.3.2/24 dev veth1 │ └── virbr0 (Libvirt网桥) => ip link set eth1 master br0 │ => ping 192.168.3.1 │ => ping 192.168.3.2 │ │ ├── TAP/TUN 设备 => ip tuntap add dev tap0 mode tap & ip link set dev tap0 up │ ├── tap0 (二层隧道) => ip link set tap0 master br0 │ └── tun0 (三层隧道) => ip tuntap add dev tun0 mode tun & ip link set dev tun0 up │ => ip addr add 10.8.0.1 peer 10.8.0.2 dev tun0 │ => ip route add 10.8.0.0/24 dev tun0 │ => iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE │ │ └── 绑定接口 (Bonding) => 虚拟网卡,可以将多个物理网卡绑成一块逻辑网卡,起到提高带宽(多网卡并发)、冗余容错的作用 ├── bond0 (链路聚合) │ ├── 物理设备 eth2 (从设备) │ └── 物理设备 eth3 (从设备) └── team0 (新一代聚合)
地址管理 ip addr
常用命令
1 2 3 4 5
ip addr show # 查看所有IP地址 ip addr flush dev eth0 # 清空所有IP
ip addr add 192.168.1.100/24 dev eth0 # 添加IP地址 ip addr del 192.168.1.100/24 dev eth0 # 删除IP地址
路由管理 ip route
常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13
ip route show # 查看路由表 ip route flush cache # 清空路由表
ip route add default via 192.168.1.1 dev eth0 # 添加默认网关 ip route add 10.0.0.0/8 via 192.168.1.1 # 添加路由 ip route add 172.16.0.0/16 via 192.168.1.1 dev eth0 # 添加路由,指定接口 ip route add 192.168.2.0/24 via 10.0.0.1 src 10.0.0.2 # 添加路由,指定源ip ip route add 10.8.0.0/24 dev tun0 # 隧道路由
ip route add 192.168.32.21 dev pcie0 # 目的地址是192.168.32.21的包,直接从pcie0接口出去
ip route del default # 删除路由 ip route del 10.0.0.0/8 # 删除路由
ARP管理 ip neigh
常用命令
1 2 3 4 5 6 7
ip neigh show # 查看ARP表 arp -n ip neigh flush dev eth0 # 清空ARP表 arp -d -a
ip neigh add 192.168.1.100 lladdr 00:11:22:33:44:55 dev eth0 # 添加静态ARP arp -s 192.168.1.100 00:11:22:33:44:55 ip neigh add 192.168.1.100 lladdr 00:11:22:33:44:55 dev eth0 nud permanent # 添加永久静态ARP
ip neigh del 192.168.1.100 dev eth0 # 删除ARP条目 arp -d 192.168.1.100
策略路由 ip rule
常用命令
1 2 3 4 5 6 7 8 9
# 查看路由策略 ip rule show
# 添加策略路由 ip rule add from 192.168.1.100 table 100 ip rule add to 10.0.0.0/8 table 200
ip tunnel add tun0 mode ipip remote 198.51.100.200 local 203.0.113.100 # 创建隧道 ip linkset tun0 up # 启用隧道 ip addr add 172.16.0.1 peer 172.16.0.2/30 dev tun0 # 为隧道接口分配IP ip route add 10.2.2.0/24 via 172.16.0.2 dev tun0 # 添加路由
ip tunnel add tun0 mode ipip remote 203.0.113.100 local 198.51.100.200 # 创建隧道 ip linkset tun0 up # 启用隧道 ip addr add 172.16.0.2 peer 172.16.0.1/30 dev tun0 # 为隧道接口分配IP ip route add 192.168.1.0/24 via 172.16.0.1 dev tun0 # 添加路由
组播地址管理 ip maddr
组播地址范围:224.0.0.0 ~ 239.255.255.255
1 2 3 4 5
ip maddr show # 查看组播地址
ip maddr add 224.0.0.1 dev eth0 # 添加组播地址
ip linkset eth0 multicast on # 启用组播功能
组播路由管理 ip mroute
1 2 3
ip mroute show # 查看组播路由
ip mroute add 239.1.1.1/32 via 192.168.1.10 dev eth1 # 只接受来自192.168.1.10的组播流