使用 nmcli 时,NetworkManager 必须保持开启。
NetworkManager 的相关命令:
查看运行状态:systemctl status NetworkManager
启动:systemctl start NetworkManager
重启:systemctl restart NetworkManager
关闭:systemctl stop NetworkManager
查看是否开机启动:systemctl is-enabled NetworkManager
开机启动:systemctl enable NetworkManager
禁止开机启动:systemctl disable NetworkManager
注意:NetworkManager 中开头的 N 和中间的 M 必须大写。
nmcli networking
显示 NetworkManager 是否接管网络设置:
nmcli networking
networking 可以简写为 n、ne、net、netw…… 所以以上命令可以简写为:
nmcli n
查看网络连接状态:
nmcli n connectivity
网络连接状态共有五种:full、limited(连网,但无法上网)、portal(连网,但需要认证登录后才能上网)、none(没连网)和 unknown。
connectivity 可以简写为 c,所以以上命令可简写为:
nmcli n c
设定 NetworkManager 接管网络设置:
nmcli n on
取消 NetworkManager 接管网络设置:
nmcli n off
nmcli general
显示系统网络状态:
nmcli general status
general 可以简写为 g、ge、gen、gene……
status 是 general 的默认项,可以省略不写。所以,以上命令可简写为:
nmcli g
命令返回结果如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PptvG1Au-1666614787551)(./Linux.assets\v2-1ccf5af8bafd21db12036a2ca74096f3_720w.jpg)]
其中:
STATE 显示网络是否连接;
CONNECTIVITY 与前面介绍的 nmcli networking connectivity 相同;
WIFI-HW 表示 WIFI 硬件开关、WIFI 表示 WIFI 软件开关;
WWAN-HW 表示 WWAN 硬件开关、WWAN 表示 WWAN 软件开关。
HW 代表 HardWare,WWAN 代表 Wireless Wide Area Network。
显示主机名:
nmcli g hostname # 或
nmcli g h
更改主机名:
nmcli g hostname newHostName # 或
nmcli g h newHostName
newHostName是你设置的新主机名。
主机名存放在 /etc/hostname 文件中。
修改主机名后,需要重启 NetworkManager。
nmcli connection
显示所有网络连接的信息:
nmcli connection show
connection 可以简写为 c、co、con、conn……
show 是 connection 的默认项,可以省略不写。所以,以上命令可简写为:
nmcli c
nmcli connection show 有一个 -active 参数,可以只显示当前启动的连接:
nmcli c s –active # 或
nmcli c s -a # 因为 show 后面有参数项,所以此时的 show 不能省
显示某一特定连接的详细信息(以 ens33 为例):
nmcli c s ens33
启动指定连接:
nmcli c up ens33
如果 ens33 本来就出于连接状态,那此命令会重启 ens33。
关闭指定连接:
nmcli c down ens33
关闭连接后,使用 nmcli c 命令, DEVICE 项将显示为 – 。
修改连接:
nmcli c modify ens33 [ + | – ]选项 选项值 # 或
nmcli c m ens33 [ + | – ]选项 选项值
下面给出常用修改示例:
nmcli c m ens33 ipv4.address 192.168.80.10/24 # 修改 IP 地址和子网掩码
nmcli c m ens33 ipv4.method manual # 修改为静态配置,默认是 auto
nmcli c m ens33 ipv4.gateway 192.168.80.2 # 修改默认网关
nmcli c m ens33 ipv4.dns 192.168.80.2 # 修改 DNS
nmcli c m ens33 +ipv4.dns 114.114.114.114 # 添加一个 DNS
nmcli c m ens33 ipv6.method disabled # 将 IPv6 禁用
nmcli c m ens33 connection.autoconnect yes # 开机启动
注意,必须先修改 ipv4.address,然后才能修改 ipv4.method!
用空引号””代替选项的值,可将选项设回默认值(以 ipv4.method 为例):
nmcli c m ens33 ipv4.method “”
选项有很多,详细信息可以通过以下命令查看:
man 5 nm-settings-nmcli
主要可以看里面 connection setting 和 ipv4 setting 部分。
新增连接:
nmcli c add tyep 连接类型 选项 选项值 # 或
nmcli c a tyep 连接类型 选项 选项值
type 为必选项,我们通常用到的是 802-3-ethernet(别名 ethernet)。
选项与前面介绍的“修改连接”中的选项一样,其中重要的几个选项:
connection.id(别名 con-name):连接名;
connection.interface-name(别名 ifname):设备名;
connection.autoconnect(别名 autoconnect):是否开机自启,其值只能是 yes 或 no,默认 yes。
下面给出一个示例:
nmcli c a type ethernet con-name ens36 ifname ens36
删除指定连接:
nmcli c delete ens33 # 或
nmcli c de ens33 # delete 不可简写为 d,否则与 down 冲突,但可以简写为 de
重载所有连接的配置文件:
nmcli c reload # 或
nmcli c r
重载某一指定连接的配置文件:
nmcli c load ifcfg-ens33 # 或
nmcli c l ifcfg-ens33
网络配置文件默认保存在 /etc/sysconfig/network-scripts/ 路径下,如果配置文件在其它位置,则需要填写完整路径。
网络配置文件的命名方式就是ifcfg-连接名,例如 ens33 的配置文件名为ifcfg-ens33。
网络配置文件说明:
TYPE=Ethernet # 以太网
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none # 静态配置,等同于 ipv4.method manual
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=ens33 # 连接名
UUID=16862343-b55e-4248-b05d-a3ea662a84a4
DEVICE=ens33 # 设备名
ONBOOT=yes # 开机自启
IPADDR=192.168.80.10 # IP 地址
PREFIX=24 # 子网掩码
GATEWAY=192.168.80.2 # 网关
DNS1=192.168.80.2 # DNS1
DNS2=114.114.114.114 # DNS2
建议使用 nmcli 命令来设置网络参数,不要直接修改此文件。
网卡混杂模式
混杂模式介绍
混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包。默认情况下网卡只把发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。简单的讲,混杂模式就是指网卡能接受所有通过它的数据流,不管是什么格式,什么地址的。当网卡处于这种”混杂”方式时,该网卡具备”广播地址”,它对所有遇到的每一个数据帧都 产生一个硬件中断以便提醒操作系统处理流经该物理媒体上的每一个报文包。
网卡工作模式
网卡具有如下的几种工作模式:
广播模式(Broad Cast Model):它的物理地址(MAC)地址是 0Xffffff 的帧为广播帧,工作在广播模式的网卡接收广播帧。
多播传送(MultiCast Model):多播传送地址作为目的物理地址的帧可以被组内的其它主机同时接收,而组外主机却接收不到。但是,如果将网卡设置为多播传送模式,它可以接收所有的多播传送帧,而不论它是不是组内成员。
直接模式(Direct Model):工作在直接模式下的网卡只接收目地址是自己 Mac地址的帧。
混杂模式(Promiscuous Model):工作在混杂模式下的网卡接收所有的流过网卡的帧,信包捕获程序就是在这种模式下运行的。
网卡的缺省工作模式包含广播模式和直接模式,即它只接收广播帧和发给自己的帧。如果采用混杂模式,一个站点的网卡将接受同一网络内所有站点所发送的数据包这样就可以到达对于网络信息监视捕获的目的。
Linux下网卡混杂模式设置方法
ifconfig eth0 promisc
ifconfig eth0 -promisc
sudo apt install xprobe2
sudo xprobe2 10.0.2.89