Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

网络管理常用命令

arp、arping、ip、route、netstat

1
--help

1. arp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-a # 主机 :显示 arp 缓冲区的所有条目;
-H # 地址类型 :指定 arp 指令使用的地址类型;
-d # 主机 :从 arp 缓冲区中删除指定主机的 arp 条目;
-D # 使用指定接口的硬件地址;
-e # 以 Linux 的显示风格显示 arp 缓冲区中的条目;
-i # 接口 :指定要操作 arp 缓冲区的网络接口;
-s # 主机 MAC 地址 :设置指定的主机的 IP 地址与 MAC 地址的静态映射;
-n # 以数字方式显示 arp 缓冲区中的条目;
-v # 显示详细的 arp 缓冲区条目,包括缓冲区条目的统计信息;
-f # 文件 :设置主机的 IP 地址与 MAC 地址的静态映射。

arp -v # 显示 arp 缓冲区内容
arp -s [IP] [MAC-ADDRESS] # 添加静态 arp 条目
arp -d [IP] # 删除 arp 缓存条目
sudo ip neigh flush all # 清空 arp 缓存表
arp -n # 查看当前 arp 表
arp -a # 刷新 arp 缓存表(删除所有 arp 条目并重新查询)

2. arping

语法:arping [-fqbDU] [-c count] [-w timeout] [-I device] [-s source] destination

1
2
3
4
5
6
7
8
9
10
11
-f # 收到第一个reply就立即退出
-q # 安静模式,什么都不输出
-b # 只发送广播,不发送单播
-D # 地址冲突检测
-U # 主动更新邻居的arp缓存(Unsolicited ARP mode)
-c count # 发送多少个arp请求包后退出
-w timeout # 等待reply的超时时间
-I device # 使用哪个接口发送请求包。发送arp请求包接口的MAC地址将缓存在目标主机上
-s source # 指定arp请求报文中源地址,若发送的接口和源地址不同,则目标主机将缓存该地址和接口的MAC地址,
# 而非该源地址所在接口的MAC地址
destination # 向谁发送arp请求报文,即要获取该IP或主机名的MAC地址
  1. 请求解析192.168.100.70主机的MAC地址

    sh arping -f 192.168.100.70

    这将会发送广播报文,直到收到192.168.100.70的回复才退出。
    同时,192.168.100.70也会缓存本机的IP和MAC对应条目,由于此处没有指定请求报文的发送接口和源地址,所以发送报文时是根据路由表来选择接口和对应该接口地址的。

  2. 指定发送一个请求报文给192.168.100.70就退出,发送报文的接口为eth1,并指定请求报文中的源地址为本机eth0接口上的地址192.168.100.54

    sharping -c 1 -I eth1 -s 192.168.100.54 192.168.100.70

    发送这样的arp请求包,将会使得目标主机192.168.100.70缓存本机的arp条目为”192.168.100.54 MAC_eth1”,但实际上,192.168.100.54所在接口的MAC地址为MAC_eth0。

  3. 探测对方主机是否存活

    sharping -c 4 -I eth0 192.168.100.2

3.ip

ip 命令是 Linux 加强版的的网络配置工具,用于代替 ifconfig 命令。
语法: ip [ OPTIONS ] OBJECT { COMMAND | help }

OPTIONS 为常用选项,值可以是以下几种:

1
2
3
4
5
6
7
8
9
10
11
OPTIONS={ -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] | -h[uman-readable] | -iec | -f
[amily] { inet | inet6 | ipx | dnet | link } | -o[neline] | -t[imestamp] | -b[atch] [filename] |
-rc[vbuf] [size] }

-V # 显示命令的版本信息;
-s # 输出更详细的信息;
-f # 强制使用指定的协议族;
-4 # 指定使用的网络层协议是IPv4协议;
-6 # 指定使用的网络层协议是IPv6协议;
-0 # 输出信息每条记录输出一行,即使内容较多也不换行显示;
-r # 显示主机时,不使用IP地址,而使用主机的域名。

OBJECT 为常用对象,值可以是以下几种:

1
2
3
4
5
6
7
8
OBJECT={ link | addr | addrlabel | route | rule | neigh | ntable | tunnel | maddr | mroute | 
mrule | monitor | xfrm | token }

link # 网络设备
address # 设备上的协议(IP或IPv6)地址
addrlabel # 协议地址选择的标签配置
route # 路由表条目
rule # 路由策略数据库中的规则

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
ip link show                     		# 显示网络接口信息
ip link set eth0 up # 开启网卡
ip link set eth0 down # 关闭网卡
ip link set eth0 promisc on # 开启网卡的混合模式
ip link set eth0 promisc offi # 关闭网卡的混个模式
ip link set eth0 txqueuelen 1200 # 设置网卡队列长度
ip link set eth0 mtu 1400 # 设置网卡最大传输单元
ip addr show # 显示网卡IP信息
ip addr add 192.168.0.1/24 dev eth0 # 设置eth0网卡IP地址192.168.0.1
ip addr del 192.168.0.1/24 dev eth0 # 删除eth0网卡IP地址

ip route show # 显示系统路由
ip route add default via 192.168.1.254 # 设置系统默认路由
ip route list # 查看路由信息
ip route add 192.168.4.0/24 via 192.168.0.254 dev eth0 # 设置192.168.4.0网段的网关为192.168.0.254,数据走eth0接口
ip route add default via 192.168.0.254 dev eth0 # 设置默认网关为192.168.0.254
ip route del 192.168.4.0/24 # 删除192.168.4.0网段的网关
ip route del default # 删除默认路由
ip route delete 192.168.1.0/24 dev eth0 # 删除路由

ip link list # 显示网络设备的运行状态
ip route list # 显示核心路由表
ip neigh list # 显示邻居表

ip link | grep -E '^[0-9]' | awk -F: '{print $2}' # 获取主机所有网络接口

4. route

route命令用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由。
语法: route (选项) (参数)

选项:

1
2
3
4
5
6
7
-A		# 设置地址类型;
-C # 打印将Linux核心的路由缓存;
-v # 详细信息模式;
-n # 直接显示数字形式的IP地址;
-e # netstat格式显示路由表;
-net # 到一个网络的路由表;
-host # 到一个主机的路由表。

参数:

1
2
3
4
5
6
7
add		# 增加指定的路由记录;
del # 删除指定的路由记录;
target # 目的网络或目的主机;
gw # 设置默认网关;
mss # 设置TCP的最大区块长度(MSS),单位MB;
window # 指定通过路由表的TCP连接的TCP窗口大小;
dev # 路由记录所表示的网络接口。

路由表介绍:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
link-local 0.0.0.0 255.255.0.0 U 1003 0 0 br0
192.168.186.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33

Destination # 目的地址;
Gateway # 指定的网关;
Genmask # 掩码;
Flags # 网络节点的状态;U(used):使用中,G(gateway):网关 ,H(host):是一个主机而非网络。
Metric # 下一跳;
Ref # 被引用的次数;
Iface # 网卡。

示例:

1
2
3
4
5
route add -net 10.0.0.0/24 dev ens33						# 添加一个网络
route add -net 10.1.0.0/24 dev ens33 gw 192.168.186.2 # 指定网关添加网络
route add -host 10.1.1.1 dev ens33 # 添加一个主机IP
route del -net 10.0.0.0/24 # 删除网络
route del -host 10.1.1.1 # 删除主机

5. netstat

netstat 命令用于显示网络状态。
语法: netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][–ip]

参数说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-a或--all 				        # 显示所有连线中的Socket。
-A<网络类型>或--<网络类型> # 列出该网络类型连线中的相关地址。
-c或--continuous # 持续列出网络状态。
-C或--cache # 显示路由器配置的快取信息。
-e或--extend # 显示网络其他相关信息。
-F或--fib # 显示路由缓存。
-g或--groups # 显示多重广播功能群组组员名单。
-i或--interfaces # 显示网络界面信息表单。
-l或--listening # 显示监控中的服务器的Socket。
-M或--masquerade # 显示伪装的网络连线。
-n或--numeric # 直接使用IP地址,而不通过域名服务器。
-N或--netlink或--symbolic # 显示网络硬件外围设备的符号连接名称。
-o或--timers # 显示计时器。
-p或--programs # 显示正在使用Socket的程序识别码和程序名称。
-r或--route # 显示Routing Table。
-s或--statistics # 显示网络工作信息统计表。
-t或--tcp # 显示TCP传输协议的连线状况。
-u或--udp # 显示UDP传输协议的连线状况。
-v或--verbose # 显示指令执行过程。
-V或--version # 显示版本信息。
-w或--raw # 显示RAW传输协议的连线状况。
-x或--unix # 此参数的效果和指定"-A unix"参数相同。
--ip或--inet # 此参数的效果和指定"-A inet"参数相同。

评论