The Nmcli utility is a multifunctional and flexible command line tool for configuring the network using a networkamanger from the console. First, consider its syntax:
$ nncli опции объект команда
Чаще всего в nmcli мы будем использовать такие объекты:
device — управление сетевыми интерфейсами;
connection — управление соединениями;
networking — управление сетью в целом;
general — показывает состояние всех сетевых протоколов и NetworkManager в целом;
radio — управление сетевыми протоколами, wifi, ethernent и т д.
Команды для каждого объекта разные, а опции нам не будут интересны. Дальше рассмотрим примеры nmcli network manager.
ЗАПУСТИТЬ NETWORKMANAGER:
Первым делом нужно запустить NetworkManager из консоли:
sudo service NetworkManager start
Теперь смотрим состояние интерфейсов с помощью nmcli:
$ nmcli general status
СОСТОЯНИЕ СВЯЗЬ WIFI-HW WIFI WWAN-HW WWAN
подключено полностью включен включен включен включен
Еще мы можем посмотреть имя хоста:
nmcli general hostname
ВКЛЮЧИТЬ/ВЫКЛЮЧИТЬ WIFI:
В графическом интерфейсе это делается одной галочкой, здесь одной командой. Сначала смотрим состояние wifi:
nmcli radio wifi
Теперь включаем:
nmcli radio wifi on
Или отключаем:
nmcli radio wifi off
СМОТРИМ ДОСТУПНЫЕ СОЕДИНЕНИЯ:
Теперь самое интересное, управление сетью nmcli:
nmcli connection show
ИМЯ UUID ТИП УСТРОЙСТВО
ham0 6272eb20-2c54-4fc7-afba-31e0f0db295b generic ham0
Проводное соединение 1 e4ba8abf-3608-4482-955d-aa9000f565ee 802-3-ethernet enp2s0
СМОТРИМ ИНФОРМАЦИЮ О ПОДКЛЮЧЕНИИ:
nmcli connection show "Проводное соединение"
connection.id: Проводное соединение 1
connection.uuid: e4ba8abf-3608-4482-955d-aa9000f565ee
connection.interface-name: --
connection.type: 802-3-ethernet
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.timestamp: 1441537783
connection.read-only: no
connection.permissions:
connection.zone: --
connection.master: --
connection.slave-type: --
connection.secondaries:
connection.gateway-ping-timeout: 0
802-3-ethernet.port: --
802-3-ethernet.speed: 0
802-3-ethernet.duplex: --
802-3-ethernet.auto-negotiate: yes
802-3-ethernet.mac-address: BC:AE:C5:BE:8B:B7
802-3-ethernet.cloned-mac-address: --
802-3-ethernet.mac-address-blacklist:
802-3-ethernet.mtu: автоматически
802-3-ethernet.s390-subchannels:
802-3-ethernet.s390-nettype: --
802-3-ethernet.s390-options:
ipv4.method: auto
ПОЛУЧАЕМ СОСТОЯНИЕ ИНТЕРФЕЙСОВ:
nmcli device status
УСТРОЙСТВО ТИП СОСТОЯНИЕ СОЕДИНЕНИЕ
enp2s0 ethernet подключено Проводное соединение 1
lo loopback без управления --
sit0 sit без управления --
СОЗДАНИЕ DHCP СОЕДИНЕНИЯ:
nmcli connection add con-name "dhcp" type ethernet ifname enp2s0
Connection 'dhcp' (163a6822-cd50-4d23-bb42-8b774aeab9cb) successfully added.
Здесь:
connection add — добавить новое соединение
con-name — название подключения
type — тип устройства, в нашем случае ethernet
ifname — название сетевого интерфейса
СОЗДАНИЕ СОЕДИНЕНИЯ С СТАТИЧЕСКИМ АДРЕСОМ
nmcli connection add con-name “static” ifname enp2s0 autoconnect no type ethernet ip4 192.168.1.240 gw4 192.168.1.1
Connection ‘static’ (8e69d847-03d7-47c7-8623-bb112f5cc842) successfully added.
ДОБАВЛЯЕМ НАСТРОЙКИ DNS:
nmcli connection modify "static" ipv4.dns 202.131.124.4
ДОБАВЛЯЕМ ЕЩЕ ОДИН СЕРВЕР DNS:
nmcli connection modify "static" +ipv4.dns 8.8.8.8
Для добавления дополнительной информации в поле используйте символ +. Например, вот так можно добавить еще один ip адрес:
nmcli connection modify "static" +ipv4.addresses 192.168.200.1/24
Осталось обновить настройки:
nmcli connection up static
СПИСОК СЕТЕЙ WIFI:
Такой командой можно посмотреть список доступных сетей wifi:
nmcli device wifi list
ПОДКЛЮЧИТСЯ К WIFI:
Команда для подключения к новой сети wifi выглядит не намного сложнее:
nmcli device wifi connect "BSSID" password 12345 name "MyWifi"
Здесь BSSID — это имя точки доступа, 12345 — пароль.
nmcli con up id 'Wireless connection 1'
VPN additional info:
Also note that regular users usually don’t have permission to control networking. Using the commands above with sudo should work for most connections, but VPN specifically might fail with “Error: Connection activation failed: no valid VPN secrets.”
If that happens to you, it’s likely that the VPN password is stored in your user’s gnome-keyring, which makes it inaccessible to the root user. This comment explains why.
To fix this, edit /etc/NetworkManager/system-connections/ConnectionName and under [vpn], change the password flags line to:
password-flags=0
And add the following:
[vpn-secrets]
password=YourPassword
Now restart network manager by:
sudo service network-manager restart
Then starting the VPN connection with sudo nmcli con up id ConnectionName should work without problems.