网络管理
netstat
ss
| 参数 | 说明 |
|---|---|
| -n | 显示IP地址,不进行DNS解析 |
| -a | 显示所有socket连接 |
| -l | 显示所有监听socket |
| -p | 显示使用socket的进程 |
| -t | 仅显示TCP的socket |
| -u | 仅显示UDT的socket |
shell
ss -nlptu | column -tip
| 命令 | 参数 | 说明 | 示例 |
|---|---|---|---|
| ip addr | - | 显示网络接口的IP地址和状态 | ip addr |
| - | <interface> | 仅显示指定网络接口的IP地址和状态 | ip addr eth0 |
| - | -s | 显示每个网络接口的统计信息 | ip addr -s |
| ip route | - | 显示路由表 | ip route, ip ro |
| - | show | 显示路由表 | ip route show |
| - | add | 添加路由 | ip route add 192.168.1.0/24 via 192.168.0.1 dev eth0 |
| - | del | 删除路由 | ip route del 192.168.1.0/24 |
| - | change | 更改现有路由 | ip route change 192.168.1.0/24 via 192.168.0.2 dev eth0 |
| - | flush | 清除路由表 | ip route flush |
| - | -s | 显示摘要信息 | ip route -s |
| - | get | 显示指定目标的路由信息 | ip route get 192.168.1.100 |
| - | add default | 添加默认路由 | ip route add default via 192.168.0.1 dev eth0 |
| - | show to | 显示路由到指定目标的信息 | ip route show to 192.168.1.100 |
| ip link | - | 显示网络接口信息 | ip link |
| - | show | 显示网络接口信息 | ip link show |
| - | set | 修改网络接口属性 | ip link set dev eth0 mtu 1500 |
| - | add | 添加虚拟网络接口 | ip link add veth0 type veth peer name veth1 |
| - | delete | 删除虚拟网络接口 | ip link delete veth0 |
| - | -s | 显示摘要信息 | ip link -s |
| ip neigh | - | 显示ARP缓存 | ip neigh |
| - | show | 显示ARP缓存 | ip neigh show |
| - | add | 添加ARP缓存 | ip neigh add 192.168.1.1 lladdr 00:11:22:33:44:55 dev eth0 |
| - | delete | 删除ARP缓存 | ip neigh delete 192.168.1.1 dev eth0 |
| ip rule | - | 显示策略路由规则 | ip rule |
| - | add | 添加策略路由规则 | ip rule add from 192.168.1.100 table 1 |
| - | delete | 删除策略路由规则 | ip rule delete from 192.168.1.100 table 1 |
| ip maddress | - | 显示组播地址信息 | ip maddress |
| - | show | 显示组播地址信息 | ip maddress show |
| - | add | 添加组播地址 | ip maddress add 239.0.0.1 dev eth0 |
| - | delete | 删除组播地址 | ip maddress delete 239.0.0.1 dev eth0 |
| ip mroute | - | 显示组播路由信息 | ip mroute |
| - | show | 显示组播路由信息 | ip mroute show |
| - | add | 添加组播路由 | ip mroute add 239.0.0.1 dev eth0 |
| - | delete | 删除组播路由 | ip mroute delete 239.0.0.1 dev eth0 |
| ip tunnel | - | 显示隧道信息 | ip tunnel |
| - | show | 显示隧道信息 | ip tunnel show |
| - | add | 添加隧道 | ip tunnel add tun0 mode gre remote 203.0.113.1 local 198.51.100.1 ttl 255 |
| - | delete | 删除隧道 | ip tunnel delete tun0 |
| ip netns | - | 管理网络命名空间 | ip netns |
| - | list | 列出所有网络命名空间 | ip netns list |
| - | add | 添加网络命名空间 | ip netns add mynamespace |
| - | delete | 删除网络命名空间 | ip netns delete mynamespace |
get
| 参数 | 说明 |
|---|---|
| -O | 指定保存的文件名后下载文件 |
| --limit-rate | 限速下载 |
| -c | 断点续传 |
namp
| 参数 | 说明 |
|---|---|
| -sS(常用) | TCP同步扫描 |
| -sn(常用) | 不进行端口扫描,只检查主机正在运行 |
| -v(常用) | 显示扫描过程中的详细信息 |
| -p 端口(常用) | 指定要扫描的端口,可以是一个端口,可以是逗号分开的多个端口,或者使用-指定端口范围 |
| -n(常用) | 不进行DNS解析,加快扫描速度 |
tcpdump
| 参数 | 说明 | 示例 |
|---|---|---|
-i <interface> | 指定要监听的网络接口。 | sudo tcpdump -i eth0 |
-s <snaplen> | 指定抓取数据包的大小。 | sudo tcpdump -i eth0 -s 0 |
-n | 禁用将IP地址和端口号转换为主机名和服务名。 | sudo tcpdump -i eth0 -n |
-A | 以ASCII形式打印数据包的内容。 | sudo tcpdump -i eth0 -A |
-vvv | 增加详细程度,可以看到更多的包信息。 | sudo tcpdump -i eth0 -vvv |
-w <file> | 将抓取的数据包保存到文件中。 | sudo tcpdump -i eth0 -w capture.pcap |
tcp port <port> | 只抓取指定端口的TCP流量。 | sudo tcpdump -i eth0 tcp port 80 |
host <ip> | 只抓取特定主机的流量。 | sudo tcpdump -i eth0 host 192.168.1.100 |
<expression> | 更复杂的过滤表达式,根据需要定制过滤条件。 | sudo tcpdump -i eth0 'tcp port 80 and host 192.168.1.100' |
plain
# 直接any所有网口
tcpdump -i any -s 0 -w curl_request.pcap
# 再用命令过滤
tcpdump -r curl_request.pcap -n host 172.18.18.163 -Aipconfig
shell
# 临时设置iP
ipconfig 192.168.1.22/24netplan
ubuntu 下使用
yaml
network:
ethernets: {}
version: 2
renderer: networkd
bonds:
bond0:
interfaces: [ens65f0, ens65f1]
parameters:
mode: active-backup
mii-monitor-interval: 100
addresses: [172.29.101.173/24]
gateway4: 172.29.101.1
nameservers:
addresses: [10.255.255.88,10.255.254.88]
ethernets:
ens65f0:
dhcp4: no
optional: true
ens65f1:
dhcp4: no
optional: trueyaml
network:
version: 2
renderer: networkd
ethernets:
ens5f0:
dhcp4: no
ens5f1:
dhcp4: no
bonds:
bond0:
interfaces: [ens5f0, ens5f1]
parameters:
mode: 802.3ad
mii-monitor-interval: 100
lacp-rate: fast
mtu: 1500
addresses: [172.16.4.100/25]
# gateway4: 172.16.4.126
routes:
- to: 0.0.0.0/0
via: 172.16.4.126
nameservers:
addresses: [8.8.8.8, 8.8.4.4]mode
| Mode | 名称 | 是否需要交换机配置 | 是否支持负载均衡 | 冗余 | 实际带宽表现 | 典型场景 | 优缺点总结 |
|---|---|---|---|---|---|---|---|
| 0 | balance-rr(轮询) | ❌ 不需要 | ✔(包级) | ✔ | ★★★★★(最高) | 实验环境、非生产 | 优:带宽最大;缺:TCP 乱序、交换机兼容性差 |
| 1 | active-backup(主备) | ❌ 不需要 | ❌ | ✔(最佳) | ★☆☆☆☆ | 生产服务器接入、网卡冗余 | 优:最稳定;缺:无负载均衡 |
| 2 | balance-xor(静态 XOR) | ✔ 需要静态链路聚合 | ✔(流级) | ✔ | ★★★☆☆ | 老交换机、不支持 LACP | 优:简单稳定;缺:单流无法突破单口带宽 |
| 3 | broadcast(广播) | ❌ 不需要 | ❌ | ✔(最极端) | ★☆☆☆☆ | 工控网络、必须确保送达 | 优:可靠性极强;缺:带宽浪费严重 |
| 4 | 802.3ad(LACP) | ✔ 必须支持 LACP | ✔(流级,基于 Hash) | ✔ | ★★★★☆(多流提升) | 企业、机房、数据库、虚拟化 | 优:标准、稳定、生产最常用;缺:交换机必须支持 |
| 5 | balance-tlb(TX 动态均衡) | ❌ 不需要 | ✔(仅 TX) | ✔ | ★★☆☆☆ | TX 大、RX 小的应用服务器 | 优:无需交换机支持;缺:RX 仍然单口 |
| 6 | balance-alb(自适应均衡) | ❌ 不需要 | ✔(TX+RX) | ✔ | ★★★★☆(多流提升) | 交换机不能 LACP,仍想带宽 + 冗余 | 优:最灵活,无需交换机配合;缺:ARP hack 对少数设备兼容性差 |
firewall
shell
sudo firewall-cmd --add-port=6443/tcp --permanent
sudo firewall-cmd --add-port=10250/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-alliptable
使用时注意 docker-chain
shell
# 添加端口
iptables -A INPUT -p tcp --dport 6443 -j ACCEPT
# 删除端口
iptables -D INPUT -p tcp --dport 6443 -j ACCEPT
# 列出所有端口
iptables -nL