LINUX网络配置---nmtui&nmcli

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LINUX网络配置---nmtui&nmcli相关的知识,希望对你有一定的参考价值。

网络配置方法
要使用NetworkManager的文本用户界面工具nmtui配置接口
要使用NetworkManager的命令行工具nmcli配置接口
要手动配置网络接口
要使用图形用户界面工具配置网络

nmtui
文本用户界面工具nmtui可用于在终端窗口中配置接口。 发出以下命令以启动该工具:
?] $ nmtui

安装包
yum install NetworkManager-tui

nmcli
用户和脚本可以使用nmcli实用程序来控制NetworkManager:

 对于服务器,headless machines和终端,nmcli可用于直接控制NetworkManager,无需GUI,包括创建,编辑,启动和停止网络连接以及查看网络状态。
 对于脚本,nmcli支持简洁的输出格式,更适合脚本处理。 这是一种集成网络配置而非手动管理网络连接的方法。

nmcli命令的基本格式如下:

nmcli OPTIONS OBJECT {COMMAND | help }

其中OBJECT可以是以下选项之一: general, networking, radio, connection, device, agent, and monitor。 您可以在命令中使用这些选项的任何前缀。 例如:nmcli con help。
-t
此模式设计适用于计算机(脚本)处理。
-p
这导致nmcli产生人类可读的输出。例如,对齐值并打印标题。
-h,帮忙
打印帮助信息。
nmcli工具有一些内置的上下文相关帮助:
nmcli help
此命令列出要在后续命令中使用的可用选项和对象名称。
nmcli object help
此命令显示与指定对象相关的可用操作列表。例如,
nmcli c help

NetworkManager的整体状态:
nmcli general status
当前的NetworkManager日志记录状态:
nmcli general logging
所有连接:
nmcli connection show
只有当前活动的连接,添加--active(或-a)选项,如下所示:
nmcli connection show --active
NetworkManager识别的设备及其状态:
nmcli device status

使用nmcli启动和停止接口
nmcli工具可用于启动和停止任何网络接口
nmcli con up id bond0
nmcli con up id port0
nmcli dev disconnect bond0
nmcli dev disconnect ens3

nmcli connection down命令用于停用设备的连接,而不会阻止设备进一步自动激活。
nmcli device disconnect命令用于断开设备连接并防止设备自动激活其他连接,无需人工干预。

nmcli交互式连接编辑器
nmcli工具有一个交互式连接编辑器。要使用它,请输入以下命令:

?] $ nmcli con edit

系统将提示您从显示的列表中输入有效的连接类型。输入连接类型后,您将被置于nmcli提示符下。如果您熟悉连接类型,则可以向nmcli con edit命令添加有效的连接类型选项,并直接进入nmcli提示符。编辑现有连接配置文件的格式如下:

nmcli con edit [id | uuid |path] ID

要编辑新的连接配置文件,以下格式适用:

nmcli con edit [type new-connection-type] [con-name new-connection-name]

在nmcli提示符下键入help以查看有效命令列表。使用describe命令获取设置及其属性的描述。格式如下:

describe setting.property

例如:

nmcli> describe team.config

创建和修改连接配置文件
连接配置文件包含连接到数据源所需的连接属性信息。 要为NetworkManager创建新的配置文件,请使用以下命令:

nmcli c add {ARGUMENTS}

nmcli c add接受两种不同类型的参数:

 NetworkManager用于在内部描述连接的名称。 最重要的是:

connection.type
nmcli c add connection.type bond

    connection.interface-name

    nmcli c add connection.interface-name eth0

    connection.id

    nmcli c add connection.id "My Connection"

     有关属性及其设置的更多信息,请参见man nm-settings

别名
在内部翻译为属性的人类可读名称。 最常见的是:
type (the connection.type property)

    nmcli c add type bond

    ifname (the connection.interface-name property)

    nmcli c add ifname eth0

    con-name (the connection.id property)

    nmcli c add con-name "My Connection"

在以前的nmcli版本中,使用别名创建所需的连接。 例如,ifname eth0和con-name My Connection。 可以使用以下格式的命令:
nmcli c add type ethernet ifname eth0 con-name "My Connection"

在更新的版本中,属性名称和别名可以互换使用。 以下示例均有效且等效:
nmcli c add type ethernet ifname eth0 con-name "My Connection" ethernet.mtu 1600

nmcli c add connection.type ethernet ifname eth0 con-name "My Connection" ethernet.mtu 1600

nmcli c add connection.type ethernet connection.interface-name eth0 connection.id "My Connection" ethernet.mtu 1600

参数根据连接类型而不同。 对于所有连接类型,只有type参数是必需的,而对于除bond,team,bridge和vlan之外的所有类型,ifname是必需的。

type type_name
连接类型。 例如:

nmcli c add type bond

ifname interface_name
用于绑定连接的接口。 例如:
nmcli c add ifname interface_name type ethernet

要修改连接配置文件的一个或多个属性,请使用以下命令:
nmcli c modify

例如,要将connection.id从My Connection更改为My favorite connection,将connection.interface-name更改为eth1,请按如下方式发出命令:

nmcli c modify "My Connection" connection.id "My favorite connection" connection.interface-name eth1

注意
最好使用属性名称。 别名仅用于兼容性原因。

此外,要将以太网MTU设置为1600,请按如下所示修改大小:
nmcli c modify "My favorite connection" ethernet.mtu 1600

connection.type
连接类型。允许的值为:adsl,bond,bond-slave,bridge,bridge-slave,bluetooth,cdma,ethernet,gsm,infiniband,olpc-mesh,team,team-slave,vlan,wifi,wimax。每种连接类型都有特定于类型的命令选项。您可以在nmcli(1)手册页中看到TYPE_SPECIFIC_OPTIONS列表。例如:

    gsm连接需要apn中指定的访问点名称。

    nmcli c add connection.type gsm apn access_point_name
 wifi设备需要ssid中指定的服务集标识符。

nmcli c add connection.type wifi ssid My identifier

connection.interface-name
与连接相关的设备名称。
nmcli con add connection.interface-name eth0 type ethernet

connection.id
用于连接配置文件的名称。如果未指定连接名称,则将生成如下连接名称:
connection.type -connection.interface-name
connection.id是连接配置文件的名称,不应与表示设备的接口名称(wlan0,ens3,em1)混淆。但是,用户可以在接口之后命名连接,但它们不是同一个东西。可以为设备提供多个连接配置文件。这对于移动设备或在不同设备之间来回切换网络电缆特别有用。而不是编辑配置,创建不同的配置文件并根据需要将它们应用于界面。 id选项还引用连接配置文件名称。

nmcli命令最重要的选项,如show,up,down是:
ID
用户分配给连接配置文件的标识字符串。可以在nmcli连接命令中使用Id来标识连接。命令输出中的NAME字段始终表示连接ID。它指的是con-name所具有的相同连接配置文件名称。
UUID
系统分配给连接配置文件的唯一标识字符串。可以在nmcli连接命令中使用uuid来标识连接。

~]$ nmcli con show
NAME UUID TYPE DEVICE
Auto Ethernet 9b7f2511-5432-40ae-b091-af2457dfd988 802-3-ethernet --
ens3 fb157a65-ad32-47ed-858c-102a48e064a2 802-3-ethernet ens3
MyWiFi 91451385-4eb8-4080-8b82-720aab8328dd 802-11-wireless wlan0
请注意,输出中的NAME字段始终表示连接ID(名称)。它不是接口名称,即使它看起来可能相同。在上面显示的第二个连接中,NAME字段中的ens3是用户给应用于接口ens3的配置文件的连接ID。在所示的最后一个连接中,用户已将连接ID?? MyWiFi分配给接口wlan0。

添加以太网连接意味着创建配置配置文件,然后将其分配给设备。 在创建新配置文件之前,请按以下方式查看可用设备:
~]$ nmcli device status
DEVICE TYPE STATE CONNECTION
ens3 ethernet disconnected --
ens9 ethernet disconnected --
lo loopback unmanaged --
要将设备设置为不受NetworkManager管理:
$ nmcli device set ifname managed no

For example, to set eth2 unmanaged:
$ nmcli device status
DEVICE TYPE STATE CONNECTION
bond0 bond connected bond0
virbr0 bridge connected virbr0
eth1 ethernet connected bond-slave-eth1
eth2 ethernet connected bond-slave-eth2
eth0 ethernet unmanaged --

$ nmcli device set eth2 managed no ---->set eth2 unmanaged:
$ nmcli device status
DEVICE TYPE STATE CONNECTION
bond0 bond connected bond0
virbr0 bridge connected virbr0
eth1 ethernet connected bond-slave-eth1
eth2 ethernet unmanaged --
eth0 ethernet unmanaged --
当您将设备设置为非托管时,NetworkManager不会对其进行控制。 但是,设备仍然连接。

添加动态以太网连接
要添加具有动态IP配置的以太网配置文件,允许DHCP分配网络配置,可以使用以下格式的命令:
nmcli connection add type ethernet con-name connection-name ifname interface-name

例如,要创建名为my-office的动态连接配置文件,请按如下方式发出命令:
?] $ nmcli con add type ethernet con-name my-office ifname ens3

NetworkManager将其内部参数connection.autoconnect设置为yes。 NetworkManager还会将设置写入/ etc / sysconfig / network-scripts / ifcfg-my-office,其中ONBOOT指令将设置为yes。

请注意,在下次启动界面之前,NetworkManager将不会注意到对ifcfg文件的手动更改。
要打开以太网连接,请发出如下命令:
~]$ nmcli con up my-office

要将主机发送的主机名更改为DHCP服务器,请按如下所示修改dhcp-hostname属性:
?] $ nmcli con modify my-office my-office ipv4.dhcp-hostname host-name ipv6.dhcp-hostname host-name

要将主机发送的IPv4客户端ID更改为DHCP服务器,请按如下所示修改dhcp-client-id属性:
?] $ nmcli con modify my-office my-office ipv4.dhcp-client-id client-ID-string

IPv6没有dhcp-client-id属性,dhclient为IPv6创建标识符。 有关详细信息,请参见dhclient(8)手册页。
要忽略DHCP服务器发送给主机的DNS服务器,请修改ignore-auto-dns属性,如下所示:
?] $ nmcli con modify my-office my-office ipv4.ignore-auto-dns yes ipv6.ignore-auto-dns yes

有关属性及其设置的更多信息,请参见nm-settings(5)手册页。

添加静态以太网连接
要使用静态IPv4配置添加以太网连接,可以使用以下格式的命令:
可以使用ip6和gw6选项添加IPv6地址和网关信息。
请注意,这将替换任何以前设置的DNS服务器。 或者,要将其他DNS服务器添加到任何先前设置,请使用+前缀,如下所示:

?] $ nmcli con mod test-lab + ipv4.dns“8.8.8.8 8.8.4.4”

要查看有关新配置连接的详细信息,请按如下方式发出命令:
~]$ nmcli -p con show test-lab

                 Connection profile details (test-lab)

===============================================================================
connection.id: test-lab
connection.uuid: 05abfd5e-324e-4461-844e-8501ba704773
connection.interface-name: ens9
connection.type: 802-3-ethernet
connection.autoconnect: yes
connection.timestamp: 1410428968
connection.read-only: no
connection.permissions:
connection.zone: --
connection.master: --
connection.slave-type: --
connection.secondaries:
connection.gateway-ping-timeout: 0
[output truncated]
使用-p, - pretty选项会在输出中添加标题横幅和分节符。

将配置文件锁定到特定设备
要将配置文件锁定到特定接口设备,上述示例中使用的命令包括接口名称。 例如:
nmcli connection add type ethernet con-name connection-name ifname interface-name

要使配置文件可用于所有兼容的以太网接口,请发出如下命令:
nmcli connection add type ethernet con-name connection-name ifname“*”

请注意,即使您不想设置特定接口,也必须使用ifname参数。 使用通配符指定配置文件可以与任何兼容设备一起使用。
要将配置文件锁定到特定MAC地址,请使用以下格式的命令:
nmcli connection add type ethernet con-name“connection-name”ifname“
”mac 00:00:5E:00:53:00

添加WIFI连接
要创建具有静态IP配置的Wi-Fi连接配置文件,但允许自动分配DNS地址,请按如下方式发出命令:
?] $ nmcli con add con-name MyCafe ifname wlan0 type wifi ssid MyCafe
ip4 192.168.100.101/24 gw4 192.168.100.1

要设置WPA2密码,例如“caffeine”,请发出如下命令:
~]$ nmcli con modify MyCafe wifi-sec.key-mgmt wpa-psk
~]$ nmcli con modify MyCafe wifi-sec.psk caffeine
要更改Wi-Fi状态,请按以下格式发出命令:
~]$ nmcli radio wifi [on | off ]

更改特定属性
要检查特定属性(例如mtu),请按如下方式发出命令:
~]$ nmcli connection show id ‘MyCafe‘ | grep mtu
802-11-wireless.mtu: auto
要更改设置的属性,请按如下方式发出命令:
~]$ nmcli connection modify id ‘MyCafe‘ 802-11-wireless.mtu 1350
要验证更改,请按如下方式发出命令:
~]$ nmcli connection show id ‘MyCafe‘ | grep mtu
802-11-wireless.mtu: 1350
请注意,NetworkManager将参数(如802-3-ethernet和802-11-wireless)作为设置,并将mtu作为设置的属性。 有关属性及其设置的更多信息,请参见nm-settings(5)手册页。

使用nmcli配置静态路由
要使用命令行为现有以太网连接配置静态路由,请输入以下命令:
?] #nmcli connection modify eth0 + ipv4.routes“192.168.122.0/24 10.10.10.1”
这会将192.168.122.0/24子网的流量定向到10.10.10.1的网关

以上是关于LINUX网络配置---nmtui&nmcli的主要内容,如果未能解决你的问题,请参考以下文章

通过nmtui和nmcli配置网络服务

centOS7 通过nmtui和nmcli图形配置网络服务

centOS7 通过nmtui和nmcli图形配置网络服务

基础网络配置及快捷键和系统目录

Linux NetworkManager 的使用方法(nmcli和nmtui)

Linux NetworkManager 的使用方法(nmcli和nmtui)