nmcli ടൂൾ ഉപയോഗിച്ച് നെറ്റ്uവർക്ക് കണക്ഷനുകൾ എങ്ങനെ ക്രമീകരിക്കാം, നിയന്ത്രിക്കാം


ഒരു Linux അഡ്മിനിസ്ട്രേറ്റർ എന്ന നിലയിൽ, നിങ്ങളുടെ നെറ്റ്uവർക്ക് കണക്ഷനുകൾ കോൺഫിഗർ ചെയ്യുന്നതിനായി നിങ്ങൾക്ക് വിവിധ ടൂളുകൾ ഉണ്ട്: nmtui, GNOME ഗ്രാഫിക്കൽ യൂസർ ഇന്റർഫേസുള്ള നിങ്ങളുടെ NetworkManager, തീർച്ചയായും nmcli (നെറ്റ്uവർക്ക് മാനേജർ കമാൻഡ് ലൈൻ ടൂൾ).

ലാളിത്യത്തിനായി nmtui ഉപയോഗിക്കുന്ന പല കാര്യനിർവാഹകരെയും ഞാൻ കണ്ടിട്ടുണ്ട്. എന്നിരുന്നാലും nmcli ഉപയോഗിക്കുന്നത് നിങ്ങളുടെ സമയം ലാഭിക്കുകയും നിങ്ങൾക്ക് ആത്മവിശ്വാസം നൽകുകയും സ്ക്രിപ്റ്റുകളിൽ ഇത് ഉപയോഗിക്കുകയും ചെയ്യാം, നിങ്ങളുടെ ലിനക്സ് സെർവർ നെറ്റ്uവർക്കിംഗിന്റെ ട്രബിൾഷൂട്ട് ചെയ്യുന്നതിനും അതിന്റെ പ്രവർത്തനം വേഗത്തിൽ തിരികെ കൊണ്ടുവരുന്നതിനും ഉപയോഗിക്കുന്ന ആദ്യത്തെ ഉപകരണമാണിത്.

nmcli-യെ കുറിച്ച് സഹായം അഭ്യർത്ഥിച്ചുകൊണ്ട് നിരവധി കമന്റുകൾ കണ്ടപ്പോൾ, ഈ ലേഖനം എഴുതാൻ ഞാൻ തീരുമാനിച്ചു. തീർച്ചയായും നിങ്ങൾ എല്ലായ്പ്പോഴും മാൻ പേജുകൾ ശ്രദ്ധാപൂർവ്വം വായിക്കണം (ഇത് നിങ്ങൾക്കുള്ള No1 സഹായം). നിങ്ങളുടെ സമയം ലാഭിക്കുകയും ചില സൂചനകൾ കാണിക്കുകയും ചെയ്യുക എന്നതാണ് എന്റെ ലക്ഷ്യം.

nmcli യുടെ വാക്യഘടന ഇതാണ്:

# nmcli [OPTIONS] OBJECT {COMMAND | help}

OBJECT ഇതിൽ ഒന്നാണ്: പൊതുവായ, നെറ്റ്uവർക്കിംഗ്, റേഡിയോ, കണക്ഷൻ, ഉപകരണം, ഏജന്റ്.

ഞങ്ങളുടെ ഉപകരണങ്ങൾ പരിശോധിക്കുന്നതാണ് നല്ല ആരംഭ പോയിന്റ്:

# nmcli dev status

DEVICE      TYPE      STATE         CONNECTION 
docker0     bridge    connected     docker0    
virbr0      bridge    connected     virbr0     
enp0s3      ethernet  connected     enp0s3     
virbr0-nic  ethernet  disconnected  --         
lo          loopback  unmanaged     --         

ആദ്യ നിരയിൽ കാണുന്നത് പോലെ ഞങ്ങളുടെ നെറ്റ്uവർക്ക് ഉപകരണങ്ങളുടെ ഒരു ലിസ്റ്റ് ആണ്. enp0s3 എന്ന പേരിൽ ഒരു നെറ്റ്uവർക്ക് കാർഡുകൾ ഞങ്ങളുടെ പക്കലുണ്ട്. നിങ്ങളുടെ മെഷീനിൽ നിങ്ങൾക്ക് മറ്റ് പേരുകൾ കാണാൻ കഴിയും.

പേരിടൽ നെറ്റ്uവർക്ക് കാർഡിന്റെ തരത്തെ ആശ്രയിച്ചിരിക്കുന്നു (അത് ഓൺബോർഡാണെങ്കിൽ, പിസിഐ കാർഡ് മുതലായവ). നെറ്റ്uവർക്കിലേക്ക് കണക്റ്റുചെയ്യുന്നതിന് ഞങ്ങളുടെ ഉപകരണങ്ങൾ ഉപയോഗിക്കുന്ന കോൺഫിഗറേഷൻ ഫയലുകൾ അവസാന നിരയിൽ കാണാം.

നമ്മുടെ ഉപകരണങ്ങൾക്ക് സ്വയം ഒന്നും ചെയ്യാൻ കഴിയില്ലെന്ന് മനസ്സിലാക്കുന്നത് ലളിതമാണ്. നെറ്റ്uവർക്ക് കണക്റ്റിവിറ്റി എങ്ങനെ നേടാമെന്ന് അവരോട് പറയുന്നതിന് ഞങ്ങൾ ഒരു കോൺഫിഗറേഷൻ ഫയൽ നിർമ്മിക്കേണ്ടതുണ്ട്. ഈ ഫയലുകളെ ഞങ്ങൾ \കണക്ഷൻ പ്രൊഫൈലുകൾ എന്നും വിളിക്കുന്നു. /etc/sysconfig/network-scripts ഡയറക്ടറിയിൽ ഞങ്ങൾ അവ കണ്ടെത്തുന്നു.

# cd /etc/sysconfig/network-scripts/
# ls
ifcfg-enp0s3  ifdown-isdn      ifup          ifup-plip      ifup-tunnel
ifcfg-lo      ifdown-post      ifup-aliases  ifup-plusb     ifup-wireless
ifdown        ifdown-ppp       ifup-bnep     ifup-post      init.ipv6-global
ifdown-bnep   ifdown-routes    ifup-eth      ifup-ppp       network-functions
ifdown-eth    ifdown-sit       ifup-ib       ifup-routes    network-functions-ipv6
ifdown-ib     ifdown-Team      ifup-ippp     ifup-sit
ifdown-ippp   ifdown-TeamPort  ifup-ipv6     ifup-Team
ifdown-ipv6   ifdown-tunnel    ifup-isdn     ifup-TeamPort

നിങ്ങൾക്ക് ഇവിടെ കാണാനാകുന്നതുപോലെ, ifcfg- (ഇന്റർഫേസ് കോൺഫിഗറേഷൻ) എന്ന് തുടങ്ങുന്ന പേരുള്ള ഫയലുകൾ കണക്ഷൻ പ്രൊഫൈലുകളാണ്. nmcli അല്ലെങ്കിൽ nmtui ഉപയോഗിച്ച് ഞങ്ങൾ ഒരു പുതിയ കണക്ഷൻ സൃഷ്ടിക്കുകയോ നിലവിലുള്ള ഒന്ന് പരിഷ്കരിക്കുകയോ ചെയ്യുമ്പോൾ, ഫലങ്ങൾ കണക്ഷൻ പ്രൊഫൈലുകളായി ഇവിടെ സംരക്ഷിക്കപ്പെടും.

അവയിൽ രണ്ടെണ്ണം എന്റെ മെഷീനിൽ നിന്ന് നിങ്ങൾക്ക് കാണിച്ചുതരാം, ഒന്ന് dhcp കോൺഫിഗറേഷനും ഒന്ന് സ്റ്റാറ്റിക് ഐപിയും.

# cat ifcfg-static1
# cat ifcfg-Myoffice1

ചില പ്രോപ്പർട്ടികൾക്ക് വ്യത്യസ്ത മൂല്യങ്ങളുണ്ടെന്നും മറ്റ് ചിലത് ആവശ്യമില്ലെങ്കിൽ നിലവിലില്ലെന്നും ഞങ്ങൾ മനസ്സിലാക്കുന്നു. അവയിൽ പ്രധാനപ്പെട്ടവയിലേക്ക് നമുക്ക് പെട്ടെന്ന് നോക്കാം.

  1. TYPE, ഞങ്ങൾക്ക് ഇവിടെ ഇഥർനെറ്റ് തരം ഉണ്ട്. ഞങ്ങൾക്ക് വൈഫൈ, ടീം, ബോണ്ട് എന്നിവയും മറ്റും ഉണ്ടായിരിക്കാം.
  2. DEVICE, ഈ പ്രൊഫൈലുമായി ബന്ധപ്പെടുത്തിയിരിക്കുന്ന നെറ്റ്uവർക്ക് ഉപകരണത്തിന്റെ പേര്.
  3. BOOTPROTO, അതിന് \dhcp മൂല്യമുണ്ടെങ്കിൽ, ഞങ്ങളുടെ കണക്ഷൻ പ്രൊഫൈൽ dhcp സെർവറിൽ നിന്ന് ഡൈനാമിക് ഐപി എടുക്കുന്നു, അതിന് \ഒന്നുമില്ല മൂല്യമുണ്ടെങ്കിൽ അതിന് ഡൈനാമിക് ഐപി ആവശ്യമില്ല, ഒരുപക്ഷേ ഒരു അസൈൻ ചെയ്യുമ്പോൾ സ്റ്റാറ്റിക് IP.
  4. IPADDR, ഞങ്ങളുടെ പ്രൊഫൈലിലേക്ക് ഞങ്ങൾ നിയോഗിക്കുന്ന സ്റ്റാറ്റിക് IP ആണ്.
  5. PREFIX, സബ്നെറ്റ് മാസ്ക്. 24 ന്റെ മൂല്യം 255.255.255.0 എന്നാണ് അർത്ഥമാക്കുന്നത്. സബ്uനെറ്റ് മാസ്uകിന്റെ ബൈനറി ഫോർമാറ്റ് എഴുതിയാൽ നിങ്ങൾക്ക് അത് നന്നായി മനസ്സിലാക്കാനാകും. ഉദാഹരണത്തിന്, 16, 24, 26 മൂല്യങ്ങൾ അർത്ഥമാക്കുന്നത് ആദ്യത്തെ 16, 24 അല്ലെങ്കിൽ 26 ബിറ്റുകൾ യഥാക്രമം 1 ഉം ബാക്കി 0 ഉം ആണ്, നെറ്റ്uവർക്ക് വിലാസം എന്താണെന്നും അസൈൻ ചെയ്യാവുന്ന ip-ന്റെ ശ്രേണി എന്താണെന്നും കൃത്യമായി നിർവചിക്കുന്നു.
  6. ഗേറ്റ്uവേ, ഗേറ്റ്uവേ IP.
  7. DNS1, DNS2, ഞങ്ങൾ ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്ന രണ്ട് dns സെർവറുകൾ.
  8. ONBOOT, അതിന് \അതെ മൂല്യമുണ്ടെങ്കിൽ അതിനർത്ഥം, ബൂട്ട് ചെയ്യുമ്പോൾ നമ്മുടെ കമ്പ്യൂട്ടർ ഈ പ്രൊഫൈൽ വായിച്ച് അതിന്റെ ഉപകരണത്തിലേക്ക് അസൈൻ ചെയ്യാൻ ശ്രമിക്കുമെന്നാണ്.

ഇപ്പോൾ, നമുക്ക് മുന്നോട്ട് പോയി ഞങ്ങളുടെ കണക്ഷനുകൾ പരിശോധിക്കാം:

# nmcli con show

ഏത് കണക്ഷനാണ് \UP എന്നും പ്രവർത്തിക്കുന്നത് എന്നും അല്ലെന്നും മനസ്സിലാക്കാൻ ഉപകരണങ്ങളുടെ അവസാന നിര ഞങ്ങളെ സഹായിക്കുന്നു. മുകളിലെ ചിത്രത്തിൽ നിങ്ങൾക്ക് സജീവമായ രണ്ട് കണക്ഷനുകൾ കാണാം: Myoffice1, enp0s8.

സൂചന: നിങ്ങൾക്ക് സജീവമായ കണക്ഷനുകൾ മാത്രം കാണണമെങ്കിൽ, ടൈപ്പ് ചെയ്യുക:

# nmcli con show -a

സൂചന: നിങ്ങൾ nmcli ഉപയോഗിക്കുമ്പോൾ നിങ്ങൾക്ക് ഓട്ടോ-കംപ്ലീറ്റ് ഹിറ്റിംഗ് ടാബ് ഉപയോഗിക്കാം, എന്നാൽ കമാൻഡിന്റെ ഏറ്റവും കുറഞ്ഞ ഫോർമാറ്റ് ഉപയോഗിക്കുന്നതാണ് നല്ലത്. അതിനാൽ, ഇനിപ്പറയുന്ന കമാൻഡുകൾ തുല്യമാണ്:

# nmcli connection show
# nmcli con show
# nmcli c s

ഞാൻ എന്റെ ഉപകരണങ്ങളുടെ ഐപി വിലാസങ്ങൾ പരിശോധിക്കുകയാണെങ്കിൽ:

# ip a

എന്റെ ഉപകരണം enp0s3 dhcp സെർവറിൽ നിന്ന് 192.168.1.6 IP എടുത്തതായി ഞാൻ കാണുന്നു, കാരണം മുകളിലുള്ള കണക്ഷൻ പ്രൊഫൈൽ Myoffice1 ഒരു dhcp കോൺഫിഗറേഷൻ ഉള്ളതാണ്. static1 എന്ന പേരിലുള്ള എന്റെ കണക്ഷൻ പ്രൊഫൈൽ ഞാൻ \up” കൊണ്ടുവരുകയാണെങ്കിൽ, കണക്ഷൻ പ്രൊഫൈലിൽ നിർവചിച്ചിരിക്കുന്നതുപോലെ എന്റെ ഉപകരണം സ്റ്റാറ്റിക് IP 192.168.1.40 എടുക്കും.

# nmcli con down Myoffice1 ; nmcli con up static1
# nmcli con show

നമുക്ക് IP വിലാസം വീണ്ടും നോക്കാം:

# ip a

ഞങ്ങളുടെ ആദ്യ കണക്ഷൻ പ്രൊഫൈൽ ഉണ്ടാക്കാം. നമ്മൾ നിർവചിക്കേണ്ട ഏറ്റവും കുറഞ്ഞ ഗുണങ്ങൾ തരം, ifname, con-name എന്നിവയാണ്:

  1. തരം – കണക്ഷൻ തരത്തിന്.
  2. ifname – ഞങ്ങളുടെ കണക്ഷൻ നൽകിയിരിക്കുന്ന ഉപകരണത്തിന്റെ പേരിന്.
  3. con-name – കണക്ഷൻ പേരിന്.

Myhome1 എന്ന പേരിൽ ഒരു പുതിയ ഇഥർനെറ്റ് കണക്ഷൻ ഉണ്ടാക്കാം, അത് enp0s3 ഉപകരണത്തിലേക്ക് അസൈൻ ചെയ്uതിരിക്കുന്നു:

# nmcli con add type ethernet con-name Myhome1 ifname enp0s3

അതിന്റെ കോൺഫിഗറേഷൻ പരിശോധിക്കുക:

# cat ifcfg-Myhome1

നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ ഇതിന് BOOTPROTO=dhcp ഉണ്ട്, കാരണം ഞങ്ങൾ സ്റ്റാറ്റിക് ഐപി വിലാസമൊന്നും നൽകിയിട്ടില്ല.

സൂചന: \nmcli con mod\ കമാൻഡ് ഉപയോഗിച്ച് നമുക്ക് ഏത് കണക്ഷനും പരിഷ്കരിക്കാനാകും. എന്നിരുന്നാലും നിങ്ങൾ ഒരു dhcp കണക്ഷൻ പരിഷ്കരിച്ച് സ്റ്റാറ്റിക് ആയി മാറ്റുകയാണെങ്കിൽ അതിന്റെ \ipv4.method” \auto” എന്നതിൽ നിന്ന് \ എന്നതിലേക്ക് മാറ്റാൻ മറക്കരുത്. മാനുവൽ”. അല്ലെങ്കിൽ നിങ്ങൾക്ക് രണ്ട് IP വിലാസങ്ങൾ ലഭിക്കും: ഒന്ന് dhcp സെർവറിൽ നിന്നും സ്റ്റാറ്റിക് ഒന്ന്.

static2 എന്ന പേരിൽ ഒരു പുതിയ ഇഥർനെറ്റ് കണക്ഷൻ പ്രൊഫൈൽ ഉണ്ടാക്കാം, അത് enp0s3 ഉപകരണത്തിലേക്ക് അസൈൻ ചെയ്യപ്പെടും, സ്റ്റാറ്റിക് IP 192.168.1.50, സബ്നെറ്റ് മാസ്ക് 255.255.255.0=24, ഗേറ്റ്uവേ 192.168 .1.1.

# nmcli con add type ethernet con-name static2 ifname enp0s3 ip4 192.168.1.50/24 gw4 192.168.1.1

അതിന്റെ കോൺഫിഗറേഷൻ പരിശോധിക്കുക:

# cat ifcfg-static2

അവസാന കണക്ഷൻ പ്രൊഫൈൽ പരിഷ്ക്കരിച്ച് രണ്ട് ഡിഎൻഎസ് സെർവറുകൾ ചേർക്കാം.

# nmcli con mod static2 ipv4.dns “8.8.8.8 8.8.4.4”

സൂചന: ഇവിടെ നിങ്ങൾ ശ്രദ്ധിക്കേണ്ട ചിലതുണ്ട്: നിങ്ങൾ ചേർക്കുമ്പോഴും ഒരു കണക്ഷൻ പരിഷ്കരിക്കുമ്പോഴും IP വിലാസത്തിനും ഗേറ്റ്uവേയ്uക്കുമുള്ള പ്രോപ്പർട്ടികൾ വ്യത്യസ്ത പേരുകളാണ്. നിങ്ങൾ കണക്ഷനുകൾ ചേർക്കുമ്പോൾ നിങ്ങൾ \ip4”, \gw4” എന്നിവ ഉപയോഗിക്കുന്നു, നിങ്ങൾ അവ പരിഷ്കരിക്കുമ്പോൾ \ipv4” ഉം \gwv4”.

ഇനി നമുക്ക് ഈ കണക്ഷൻ പ്രൊഫൈൽ കൊണ്ടുവരാം:

# nmcli con down static1 ; nmcli con up static2

നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, enp0s3 ഉപകരണത്തിന് ഇപ്പോൾ IP വിലാസം 192.168.1.50 ഉണ്ട്.

# ip a

സൂചന: നിങ്ങൾക്ക് പരിഷ്uക്കരിക്കാവുന്ന ധാരാളം പ്രോപ്പർട്ടികൾ ഉണ്ട്. നിങ്ങൾക്ക് അവരെ ഹൃദയപൂർവ്വം ഓർമ്മയില്ലെങ്കിൽ, \nmcli con show എന്ന് ടൈപ്പുചെയ്uത് നിങ്ങൾക്ക് സ്വയം സഹായിക്കാനാകും, അതിനുശേഷം കണക്ഷൻ പേര്:

# nmcli con show static2

ചെറിയക്ഷരത്തിൽ എഴുതിയിരിക്കുന്ന ഈ പ്രോപ്പർട്ടികളെല്ലാം നിങ്ങൾക്ക് പരിഷ്കരിക്കാനാകും.

ഉദാഹരണത്തിന്: നിങ്ങൾ ഒരു കണക്ഷൻ പ്രൊഫൈൽ ഇറക്കുമ്പോൾ, NetworkManager മറ്റൊരു കണക്ഷൻ പ്രൊഫൈലിനായി തിരയുകയും അത് സ്വയമേവ കൊണ്ടുവരികയും ചെയ്യുന്നു. (അത് പരിശോധിക്കാനുള്ള വ്യായാമമായി ഞാൻ ഇത് ഉപേക്ഷിക്കുന്നു). നിങ്ങളുടെ കണക്ഷൻ പ്രൊഫൈൽ സ്വയമേവ ബന്ധിപ്പിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നില്ലെങ്കിൽ:

# nmcli con mod static2 connection.autoconnect no

അവസാന വ്യായാമം വളരെ ഉപയോഗപ്രദമാണ്: നിങ്ങൾ ഒരു കണക്ഷൻ പ്രൊഫൈൽ ഉണ്ടാക്കി, പക്ഷേ അത് നിർദ്ദിഷ്ട ഉപയോക്താക്കൾ ഉപയോഗിക്കണമെന്ന് നിങ്ങൾ ആഗ്രഹിക്കുന്നു. നിങ്ങളുടെ ഉപയോക്താക്കളെ തരം തിരിക്കുന്നത് നല്ലതാണ്!

ഈ പ്രൊഫൈൽ ഉപയോഗിക്കാൻ സ്റ്റെല്ല എന്ന ഉപയോക്താവിനെ മാത്രമേ ഞങ്ങൾ അനുവദിക്കൂ:

# nmcli con mod static2 connection.permissions stella

സൂചന: ഒന്നിലധികം ഉപയോക്താക്കൾക്ക് അനുമതി നൽകാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, അവർക്കിടയിൽ ശൂന്യമായ ഇടമില്ലാതെ നിങ്ങൾ user:user1,user2 ടൈപ്പ് ചെയ്യണം:

# nmcli con mod static2 connection.permissions user:stella,john

നിങ്ങൾ മറ്റൊരു ഉപയോക്താവായി ലോഗിൻ ചെയ്യുകയാണെങ്കിൽ ഈ കണക്ഷൻ പ്രൊഫൈൽ \അപ്പ് കൊണ്ടുവരാൻ നിങ്ങൾക്ക് കഴിയില്ല:

# nmcli con show
# nmcli con up static2
# ls /etc/sysconfig/network-scripts

'static2' കണക്ഷൻ നിലവിലില്ലെന്ന് ഒരു പിശക് സന്ദേശം പറയുന്നു, അത് നിലവിലുണ്ടെന്ന് നമ്മൾ കണ്ടാലും. നിലവിലെ ഉപയോക്താവിന് ഈ കണക്ഷൻ കൊണ്ടുവരാനുള്ള അനുമതികളൊന്നും ഇല്ലാത്തതിനാലാണിത്.

ഉപസംഹാരം: nmcli ഉപയോഗിക്കാൻ മടിക്കേണ്ട. ഇത് എളുപ്പവും സഹായകരവുമാണ്.