命令

五十岚2020年1月18日
大约 5 分钟

常用的一些网络命令

CentOS 网络命令及工具

1. 好用工具

1.1 network-manager

nmtui: 网络配置图形化工具,方便好用

$ sudo apt install network-manager

# user nmcli and nmtui

# show net device
$ nmcli device

2. 常用网络命令

CentOS7 正式废弃了旧工具包:ifconfignetstatlocate 等命令(也可以用,不推荐

新系统使用 ipssnet 等命令代替

2.1 IP 指令集合

网络参数设定

任何時刻如果你想要做好你的网络参数设定(IP、路由、无线网络)就要了解如下指令

  • ifconfig :查詢、设定网卡与 IP 网域等相关参数
  • ifup, ifdown:通过命令执行的脚本script,更简单的方式上下线
  • route :查询、设置路由表 (route table)
  • ip :复合式的新指令, 可以直接修改上述提到的功能;

1.1 手动/自动设置启停 IP:

ifupifdown 只能启动 /etc/sysconfig/network-scripts 下的 ifcfg-ethX (X 為數字) ,并不能直接修改网络参数,除非手动调整 ifcfg-ethX 配置文件才行。但 ifconfig 可以手动调参。


**ifconfig: **

可以手动启动、观察与修改网络界面的相关参数,語法如下:

列所有网卡

ifconfig

列出已经启动的网卡,无论该网卡是否分配了IP,均显示

各参数含义如下:

  • HWaddr:网卡的硬件地址,即 MAC 地址
  • inet addrIPv4IP 位址,后续的 Bcast, Mask 分別代表的是 Broadcastnetmask
  • inet6 addr:是 IPv6 的版本的 IP
  • MTU:最大传输单位,
  • 最大啊!包接收情況, packets 代表封包數、errors 代表封包發生錯誤的數量、 dropped 代表封包由於有問題而遭丟棄的數量等等
  • TX:與 RX 相反,為網路由啟動到目前為止的傳送情況;
  • collisions:代表封包碰撞的情況,如果發生太多次, 表示你的網路狀況不太好;
  • txqueuelen:代表用來传输资料的缓存区的储存长度
  • RX bytes, TX bytes:總接收、傳送的位元組總量

列出指定网卡信息

ifconfig {interface}
  • interface:网卡, 如 lo:loopback 表示本机回环地址)、eth0eth1 等网卡代号

开启,关闭网卡

ifconfig {interface} {up|down}
# 设置其他选项
ifconfig interface {options}

二级命令非常多,很难记。最常用的是 ip addr 也可以简写为 ip a . 操作网络地址相关内容,比如列出 ip 地址,添加 ip 地址,删除 ip 等待

列出ip地址: addr 常用 a 代替
ip addr show    ->  简化 ip a

显示 V4 、V6 地址
ip -4 a     /   ip -6 a

# 显示 eth0 网卡
ip a show eth0

# 显示正在运行网卡
ip link ls up

# 添加 ip 地址
ip a add {ip_addr/mask} dev {intereface} [label label_name] // 可选的设置一个label
ip addr add 192.168.0.123/24 dev eth0
  • 如果返回值为 0 执行 arping -I $dev -c 3 -b -s $ip 1.1.1.1

      arping -I eth0 -c 3 -b -s 192.168.10.23 1.1.1.1
    

    删除 ip 地址

    ip a del {ip_addr} dev {interface} ip addr del 192.168.0.123 dev eth0

    flush ip address; delete all the IP addresses matches

    可以 flush 一个地址或者一个 label 标记的所有地址

    ip a flush label "label" ip -s a f to 192.168.2.0/24 // -s 输出统计信息 to limit to given IP address/prefix

    up or down a device

    ip link set dev {interface} {up|down} ip l set dev eth0 down

ip link set 命令可以设置很多的值,看一下自动补全提示: link 简化 l

$ ip l set <tab>
address     -- specify unicast link layer (MAC) ad
arp         -- change ARP flag on device
brd         -- specify broadcast link layer (MAC)
broadcast   -- specify broadcast link layer (MAC)
dev         -- specify device
down        -- change state do down
dynamic     -- change DYNAMIC flag on device
mtu         -- specify maximum transmit unit
multicast   -- change MULTICAST flag on device
name        -- change name of device
peer        -- specify peer link layer (MAC) addre
promisc     -- set promiscious mode
txqlen      -- specify length of transmit queue
txqueuelen  -- specify length of transmit queue
up          -- change state to up

一般用法都是 ip link set {cmd} dev {interface}。比如设置 mtu:

ip link set mtu 3000 dev eth0

ip 命令还能查看与邻近节点(neighbour)的可达性:

ip n show         // same as ip neigh show
ip n add {ip_addr} lladdr {MAC/LLADDRESS} dev {interface} nud {perm|noarp|stale|reachable}
ip n del {ip_addr} dev eth0

会输出附近节点的 arp 信息。可以手动添加这些 arp 条目。

路由表信息也由 ip 命令提供,使用 route/r 子命令操作:

# list route table
ip r
ip r list 192.168.0.0/24
ip r add {default} {network/mask} dev {interface}
ip r add (default) {network/mask} via {gateway_ip}
ip r del default
ip r del network/mask dev wth0

2.ss 命令

ss 是另一个很重要的工具,ss 是 socket statistics 的缩写,用于代替之前使用 netstat 命令。ss 能够显示比 netstat 更多的信息并且速度也更快。

netstat 是从 /proc 下的文件中读取信息再整理显示的,而 ss 命令直接从内核空间获取信息。

-n –numeric,显示端口数字而不是服务名字,比如显示 80 而不是 http
-t –tcp, 即显示 tcp 套接字,同理常用 -u 表示 udo 套接字
-l –listening,也好理解,默认不显示监听的套接字,这个参数指明只显示监听中的套接字
-4 –ipv4也是常用的,在查看服务监听状态时,常指定 -4 或者 -6 结果更加清晰
-p –processes,显示使用这个套接字的进程id,这个参数需要 sudo 权限
-s –summary,显示套接字使用的统计信息
-o –options,显示相关的时间信息

netstat -ntpl ->  ss -ntpl

还可以更具套接字状态过滤输出,比如下面的命令:

ss -t4 state established
ss -t4 state time-wait

连接的状态有很多中,常用如下:

established
syn-sent
syn-recv
time-wait
closed
closing
all
connected

还可以通过指定 dport 和 sport 过滤输出:

# 还可以使用 or,666
ss -nt dst :443 or dst :80
// dport 大于1024的连接
ss -nt dst gt :1024

要监控网络流量的动态,可以用 top 相关命令,也可以用 watch 工具:

watch -n 1 "ss -t4"
这样每秒中会刷新一次ss的结果。








上次编辑于: 2023/9/19 13:52:15