nmcli ãŠãŒãã£ãªãã£ã䜿çšããŠãLinux ã³ãã³ã ã©ã€ã³ã§ NetworkManager ãããã¯ãŒã¯ç®¡çããŒã«ãæ倧éã«æŽ»çšããŸãã
ãŠãŒãã£ãªãã£
ãã㯠2010 幎ã«ç»å Žããå€ãã®äººã«ãšã£ãŠãããã¯ãŒã¯ ã€ã³ã¿ãŒãã§ã€ã¹ãšæ¥ç¶ãæ§æããããã®ä»£æ¿æ¹æ³ãšãªã£ãŠããŸãã ä»ã§ã䜿ã£ãŠãã人ãããŸããã
ncmli ã³ãã³ãæ§æ
äžè¬ã«ãæ§æã¯æ¬¡ã®ããã«ãªããŸãã
$ nmcli <options> <section> <action>
- options ã¯ãnmcli æäœã®åŸ®åŠãªç¹ã決å®ãããã©ã¡ãŒã¿ã§ãã
- ã»ã¯ã·ã§ã³ (ã»ã¯ã·ã§ã³) - ãŠãŒãã£ãªãã£ã®ã©ã®æ©èœã䜿çšãããã決å®ããŸãã
- ã¢ã¯ã·ã§ã³ - å®éã«å®è¡ããå¿ èŠãããããšãæå®ã§ããŸãã
åèš 8 ã€ã®ã»ã¯ã·ã§ã³ãããããããããç¹å®ã®ã³ãã³ã (ã¢ã¯ã·ã§ã³) ã»ããã«é¢é£ä»ããããŠããŸãã
- ã«ã¹ã¿ããŒãµãŒãã¹ ncmcli ã³ãã³ããšãã®äœ¿çšæ³ã«é¢ãããã«ããæäŸããŸãã
- NetworkManager ã®ã¹ããŒã¿ã¹ãšã°ããŒãã«èšå®ãè¿ããŸãã
- ãããã¯ãŒãã³ã° ãããã¯ãŒã¯æ¥ç¶ã¹ããŒã¿ã¹ãç §äŒããæ¥ç¶ãæå¹/ç¡å¹ã«ããã³ãã³ããå«ãŸããŠããŸãã
- ã©ãžãª WiFi ãããã¯ãŒã¯æ¥ç¶ã¹ããŒã¿ã¹ãç §äŒããæ¥ç¶ãæå¹/ç¡å¹ã«ããã³ãã³ããå«ãŸããŠããŸãã
- ã¢ãã¿ãŒ NetworkManager ã®ã¢ã¯ãã£ããã£ãç£èŠãããããã¯ãŒã¯æ¥ç¶ã®ç¶æ ã®å€åã芳å¯ããããã®ã³ãã³ããå«ãŸããŠããŸãã
- æ¥ç¶ ãããã¯ãŒã¯ ã€ã³ã¿ãŒãã§ã€ã¹ã®ç®¡çãæ°ããæ¥ç¶ã®è¿œå ãæ¢åã®æ¥ç¶ã®åé€ãè¡ãããã®ã³ãã³ããå«ãŸããŠããŸãã
- ããã€ã¹ äž»ã«ãããã€ã¹é¢é£ã®ãã©ã¡ãŒã¿ (ã€ã³ã¿ãŒãã§ã€ã¹åãªã©) ãå€æŽããããæ¢åã®æ¥ç¶ã䜿çšããŠããã€ã¹ãæ¥ç¶ãããããããã«äœ¿çšãããŸãã
- ç§å¯ nmcli ããã·ãŒã¯ã¬ãã ã¡ãã»ãŒãžããªãã¹ã³ãã NetworkManager ã®ãã·ãŒã¯ã¬ãã ãšãŒãžã§ã³ãããšããŠç»é²ããŸãã nmcli ã¯ãããã¯ãŒã¯ã«æ¥ç¶ãããšãã«ããã©ã«ãã§ãã®ããã«åäœããããããã®ã»ã¯ã·ã§ã³ã¯ã»ãšãã©äœ¿çšãããŸããã
ç°¡åãªäŸ
å§ããåã«ãNetworkManager ãå®è¡äžã§ãããnmcli ãéä¿¡ã§ããããšã確èªããŠãã ããã
$ nmcli general
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
connected full enabled enabled enabled enabled
å€ãã®å Žåãäœæ¥ã¯ãã¹ãŠã®ãããã¯ãŒã¯æ¥ç¶ãããã¡ã€ã«ã衚瀺ããããšããå§ãŸããŸãã
$ nmcli connection show
NAME UUID TYPE DEVICE
Wired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3
Wired connection 2 2279d917-fa02-390c-8603-3083ec5a1d3e ethernet enp0s8
Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9
ãã®ã³ãã³ãã§ã¯ã ã¢ã¯ã·ã§ã³ ãæ¥ç¶ãã»ã¯ã·ã§ã³ã衚瀺ããŸãã
ãã¹ã ãã·ã³ã¯ Ubuntu 20.04 ãå®è¡ããŠããŸãã ãã®å Žåãenp0s3ãenp0s8ãenp0s9 ã® XNUMX ã€ã®æç·æ¥ç¶ãèŠã€ãããŸããã
æ¥ç¶ã管çãã
nmcli ã§ã¯ããæ¥ç¶ããšããçšèªã¯ãæ¥ç¶ã«é¢ãããã¹ãŠã®æ å ±ãå«ããšã³ãã£ãã£ãæå³ããããšãç解ããããšãéèŠã§ãã ã€ãŸããããããããã¯ãŒã¯æ§æã§ãã Connection ã¯ããªã³ã¯å±€ã IP ã¢ãã¬ã¹æå®æ å ±ãå«ããã¹ãŠã®æ¥ç¶é¢é£æ å ±ãã«ãã»ã«åããŸãã ãããã¯ãOSI ãããã¯ãŒã¯ ã¢ãã«ã®ã¬ã€ã€ãŒ 2 ãšã¬ã€ã€ãŒ 3 ã§ãã
Linux ã§ãããã¯ãŒã¯ãã»ããã¢ãããããšãã¯ãéåžžãæçµçã«ãããã¯ãŒã¯ ããã€ã¹ (ã³ã³ãã¥ãŒã¿ãŒã«ã€ã³ã¹ããŒã«ãããŠãããããã¯ãŒã¯ ã€ã³ã¿ãŒãã§ã€ã¹) ã«çµã³ä»ããããæ¥ç¶ãã»ããã¢ããããŸãã ããã€ã¹ãæ¥ç¶ã䜿çšããŠããå Žåããã®ããã€ã¹ã¯ã¢ã¯ãã£ããŸãã¯ææ ŒãããŠãããšã¿ãªãããŸãã æ¥ç¶ã䜿çšãããŠããªãå Žåãæ¥ç¶ã¯éã¢ã¯ãã£ããŸãã¯ãªã»ãããããŸãã
ãããã¯ãŒã¯æ¥ç¶ã®è¿œå
ncmli ãŠãŒãã£ãªãã£ã䜿çšãããšãæ¥ç¶ããã°ããè¿œå ããããã«æ§æã§ããŸãã ããšãã°ãæç·æ¥ç¶ 2 (enp0s8 ã䜿çš) ãè¿œå ããã«ã¯ãã¹ãŒããŒãŠãŒã¶ãŒãšããŠæ¬¡ã®ã³ãã³ããå®è¡ããå¿ èŠããããŸãã
$ sudo nmcli connection add type ethernet ifname enp0s8
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully added.
type ãªãã·ã§ã³ã§ã¯ããããã€ãŒãµãããæ¥ç¶ã§ããããšã瀺ããifname (ã€ã³ã¿ãŒãã§ã€ã¹å) ãªãã·ã§ã³ã§ã¯ã䜿çšãããããã¯ãŒã¯ ã€ã³ã¿ãŒãã§ã€ã¹ã瀺ããŸãã
ã³ãã³ããå®è¡ãããšã次ã®ããã«ãªããŸãã
$ nmcli connection show
NAME UUID TYPE DEVICE
Wired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3
Wired connection 2 2279d917-fa02-390c-8603-3083ec5a1d3e ethernet enp0s8
Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9
ethernet-enp0s8 09d26960-25a0-440f-8b20-c684d7adc2f5 ethernet --
æ°ããæ¥ç¶ ethernet-enp0s8 ãäœæãããŸããã UUID ãå²ãåœãŠãããæ¥ç¶ã¿ã€ãã¯ã€ãŒãµãããã§ããã up ã³ãã³ãã䜿çšããŠå€ãäžããŠã¿ãŸãããã
$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
ã¢ã¯ãã£ããªæ¥ç¶ã®ãªã¹ããããäžåºŠç¢ºèªããŠã¿ãŸãããã
$ nmcli connection show --active
NAME UUID TYPE DEVICE
Wired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3
ethernet-enp0s8 09d26960-25a0-440f-8b20-c684d7adc2f5 ethernet enp0s8
Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9
æ°ããæ¥ç¶ ethernet-enp0s8 ãè¿œå ãããŸãããããã¯ã¢ã¯ãã£ãã§ãenp0s8 ãããã¯ãŒã¯ ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããŸãã
æ¥ç¶ã®ã»ããã¢ãã
ncmli ãŠãŒãã£ãªãã£ã䜿çšãããšãæ¢åã®æ¥ç¶ã®ãã©ã¡ãŒã¿ãç°¡åã«å€æŽã§ããŸãã ããšãã°ãåç (DHCP) IP ã¢ãã¬ã¹ãéç IP ã¢ãã¬ã¹ã«å€æŽããå¿ èŠããããŸãã
IP ã¢ãã¬ã¹ã 192.168.4.26 ã«èšå®ããå¿ èŠããããšããŸãã ãããè¡ãã«ã¯ XNUMX ã€ã®ã³ãã³ãã䜿çšããŸãã XNUMX ã€ç®ã¯ IP ã¢ãã¬ã¹ãçŽæ¥èšå®ããXNUMX ã€ç®ã¯ IP ã¢ãã¬ã¹ã®èšå®æ¹æ³ãæåã«åãæ¿ããŸãã
$ nmcli connection modify ethernet-enp0s8 ipv4.address 192.168.4.26/24
$ nmcli connection modify ethernet-enp0s8 ipv4.method manual
ãµãããããã¹ã¯ãå¿ããã«èšå®ããŠãã ããã ãã¹ãæ¥ç¶ã®å Žåããã㯠255.255.255.0ããŸãã¯ã¯ã©ã¹ã¬ã¹ ã«ãŒãã£ã³ã° (CIDR) ã®å Žå㯠/24 ã§ãã
å€æŽãæå¹ã«ããã«ã¯ãæ¥ç¶ãéã¢ã¯ãã£ãã«ããŠããå床ã¢ã¯ãã£ãã«ããå¿ èŠããããŸãã
$ nmcli connection down ethernet-enp0s8
Connection 'ethernet-enp0s8' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveC
éã«ãDHCP ãã€ã³ã¹ããŒã«ããå¿ èŠãããå Žåã¯ãæåã§ã¯ãªãèªåã䜿çšããŸãã
$ nmcli connection modify ethernet-enp0s8 ipv4.method auto
ããã€ã¹ã®æäœ
ããã«ã¯ããããã€ã¹ãã»ã¯ã·ã§ã³ã䜿çšããŸãã
ããã€ã¹ã®ã¹ããŒã¿ã¹ã確èªãã
$ nmcli device status
DEVICE TYPE STATE CONNECTION
enp0s3 ethernet connected Wired connection 1
enp0s8 ethernet connected ethernet-enp0s8
enp0s9 ethernet connected Wired connection 3
lo loopback unmanaged --
ããã€ã¹æ å ±ã®èŠæ±
ãããè¡ãã«ã¯ã[ããã€ã¹] ã»ã¯ã·ã§ã³ã® show ã¢ã¯ã·ã§ã³ã䜿çšããŸã (ããã€ã¹åãæå®ããå¿
èŠããããŸã)ã ãã®ãŠãŒãã£ãªãã£ã¯ãå€ãã®å Žåãè€æ°ã®ããŒãžã«ãŸããã£ãŠå€§éã®æ
å ±ã衚瀺ããŸãã
æ°ããæ¥ç¶ã§äœ¿çšããã enp0s8 ã€ã³ã¿ãŒãã§ã€ã¹ãèŠãŠã¿ãŸãããã åã«èšå®ãã IP ã¢ãã¬ã¹ãæ£ç¢ºã«äœ¿çšãããŠããããšã確èªããŸãããã
$ nmcli device show enp0s8
GENERAL.DEVICE: enp0s8
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 08:00:27:81:16:20
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: ethernet-enp0s8
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/6
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 192.168.4.26/24
IP4.GATEWAY: --
IP4.ROUTE[1]: dst = 192.168.4.0/24, nh = 0.0.0.0, mt = 103
IP6.ADDRESS[1]: fe80::6d70:90de:cb83:4491/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 103
IP6.ROUTE[2]: dst = ff00::/8, nh = ::, mt = 256, table=255
ããªãå€ãã®æ å ±ããããŸãã äž»ãªããšã匷調ããŸããã:
- ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ãŒã¹å: enp0s8ã
- æ¥ç¶ã¿ã€ãïŒ æç·ã€ãŒãµãããæ¥ç¶ã
- ããã€ã¹ã® MAC ã¢ãã¬ã¹ã衚瀺ãããŸãã
- æå®ãããæ倧éä¿¡åäœ (MTU) â æçåããã«ãããã³ã«ã«ãã£ãŠéä¿¡ã§ãã XNUMX ã€ã®ãã±ããã®æçšãªããŒã¿ ãããã¯ã®æ倧ãµã€ãºã
- ããã€ã¹ çŸåšæ¥ç¶ãããŠããŸã.
- æ¥ç¶å䜿çšããŠããããã€ã¹: ethernet-enp0s8ã
- ããã€ã¹ã䜿çšããã®ã¯ã IPã¢ãã¬ã¹ã以åã«ã€ã³ã¹ããŒã«ãããã®: 192.168.4.26/24ã
ãã®ä»ã®æ å ±ã¯ãããã©ã«ãã®ã«ãŒãã£ã³ã°ããã³æ¥ç¶ã²ãŒããŠã§ã€ã®ãã©ã¡ãŒã¿ãŒã«é¢é£ããŸãã ãããã¯ç¹å®ã®ãããã¯ãŒã¯ã«äŸåããŸãã
ã€ã³ã¿ã©ã¯ãã£ã㪠nmcli ãšãã£ã¿ãŒ
nmcli ã«ã¯ã·ã³ãã«ãªã€ã³ã¿ã©ã¯ãã£ã ãšãã£ã¿ãŒãããã人ã«ãã£ãŠã¯ãã¡ãã®æ¹ãå¿«é©ã«äœæ¥ã§ãããããããŸããã ããšãã°ãethernet-enp0s8 æ¥ç¶ã§å®è¡ããã«ã¯ã次ã䜿çšããŸãã ã¢ã¯ã·ã§ã³ ç·šéïŒ
$ nmcli connection edit ethernet-enp0s8
å°ããªãã«ãããããŸãããã³ã³ãœãŒã«çããããµã€ãºãå°ãããªã£ãŠããŸãã
===| nmcli interactive connection editor |===
Editing existing '802-3-ethernet' connection: 'ethernet-enp0s8'
Type 'help' or '?' for available commands.
Type 'print' to show all the connection properties.
Type 'describe [<setting>.<prop>]' for detailed property description.
You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy
nmcli>
print ã³ãã³ããå ¥åã㊠Enter ããŒãæŒããšãnmcli ã¯ãã¹ãŠã®æ¥ç¶ããããã£ã衚瀺ããŸãã
===============================================================================
Connection profile details (ethernet-enp0s8)
===============================================================================
connection.id: ethernet-enp0s8
connection.uuid: 09d26960-25a0-440f-8b20-c684d7adc2f5
connection.stable-id: --
connection.type: 802-3-ethernet
connection.interface-name: enp0s8
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.multi-connect: 0 (default)
connection.auth-retries: -1
connection.timestamp: 1593967212
connection.read-only: no
connection.permissions: --
connection.zone: --
connection.master: --
connection.slave-type: --
connection.autoconnect-slaves: -1 (default)
connection.secondaries: --
ããšãã°ãæ¥ç¶ã DHCP ã«èšå®ããã«ã¯ããgoto ipv4ããšå ¥åããŠã å ¥åããŸã:
nmcli> goto ipv4
You may edit the following properties: method, dns, dns-search,
dns-options, dns-priority, addresses, gateway, routes, route-metric,
route-table, routing-rules, ignore-auto-routes, ignore-auto-dns,
dhcp-client-id, dhcp-iaid, dhcp-timeout, dhcp-send-hostname,
dhcp-hostname, dhcp-fqdn, dhcp-hostname-flags, never-default, may-fail,
dad-timeout
nmcli ipv4>
次ã«ã set method auto ãšæžã蟌ã¿ãã¯ãªãã¯ããŸã å ¥åããŸã:
nmcli ipv4> set method auto
Do you also want to clear 'ipv4.addresses'? [yes]:
éç IP ã¢ãã¬ã¹ãã¯ãªã¢ãããå Žåã¯ã å ¥åããŸãã ãã以å€ã®å Žåã¯ããnoããšå ¥åã㊠Enter ããŒãæŒããŸãã å°æ¥å¿ èŠã«ãªããšæãããå Žåã¯ãä¿åããŠãããŠãã ããã ãã ããéç IP ã¢ãã¬ã¹ãä¿åãããŠããå Žåã§ããæ¹åŒãèªåã«èšå®ãããŠããå Žå㯠DHCP ã䜿çšãããŸãã
save ã³ãã³ãã䜿çšããŠå€æŽãä¿åããŸãã
nmcli ipv4> save
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully updated.
nmcli ipv4>
ãquitããšå ¥åããŠãnmcli ã€ã³ã¿ã©ã¯ãã£ã ãšãã£ã¿ãŒãçµäºããŸãã çµäºããæ°ãå€ãã£ãå Žåã¯ãback ã³ãã³ãã䜿çšããŠãã ããã
ããã ãã§ã¯ãããŸãã
nmcli ã€ã³ã¿ã©ã¯ãã£ã ãšãã£ã¿ãŒãéããèšå®ã®æ°ãšåèšå®ã«å«ãŸããããããã£ã®æ°ã確èªããŸãã ã€ã³ã¿ã©ã¯ãã£ã ãšãã£ã¿ãŒã¯åªããããŒã«ã§ãããã¯ã³ã©ã€ããŒãŸãã¯ã¹ã¯ãªãã㧠nmcli ã䜿çšããå Žåã¯ãéåžžã®ã³ãã³ãã©ã€ã³ ããŒãžã§ã³ãå¿ èŠã«ãªããŸãã
åºæ¬ãç解ããã®ã§ã確èªããŠãã ãã
åºåã®æš©å©ã«ã€ããŠ
ãšããã¯ãµãŒã㌠- ã§ã
åºæïŒ habr.com