Antarmuka applet dari Chapter sebelumnya nyaman sampai kita berada di depan server tanpa desktop, atau tersambung lewat SSH ke mesin jauh yang tampilannya cuma terminal. Di situlah nmcli masuk: satu perintah yang bisa melakukan semua yang bisa dilakukan applet — dan beberapa yang tidak. Karena nmcli hanya berbicara ke daemon NetworkManager, contoh keluaran pada Chapter ini adalah tampilan tipikal: kolomnya konsisten antar versi, sementara nilainya tentu mengikuti mesin tempat perintah dijalankan.

Melihat Status Perangkat #

Pemeriksaan pertama hampir selalu nmcli device status — satu tabel ringkas yang menjawab “apa yang dimiliki mesin ini dan sedang apa”:

text
DEVICE  TYPE      STATE         CONNECTION
enp3s0  ethernet  connected     kantor
wlan0   wifi      disconnected  --
lo      loopback  unmanaged     --

Kolom STATE adalah kata kunci diagnosisnya: connected berarti device sedang memakai sebuah profil, disconnected berarti kartu sehat tapi tidak ada profil aktif, unmanaged berarti NetworkManager sengaja tidak menyentuhnya, dan unavailable biasanya berarti radio dimatikan atau kabel tidak terpasang. Kolom CONNECTION menunjukkan nama profil yang sedang aktif — -- berarti tidak ada.

Untuk detail satu device, nmcli device show enp3s0 mengeluarkan alamat IP, gateway, server DNS, MAC address, dan driver-nya dalam satu keluaran panjang. Perintah nmcli device punya pola yang akan sering kita lihat di seluruh nmcli: objek (device, connection, networking) diikuti kata kerja (status, show, connect).

Membuat Profil Baru #

Profil baru lahir dari satu perintah nmcli connection add. Sintaks intinya selalu sama — objek connection, kata kerja add, lalu pasangan kunci-nilai:

text
nmcli connection add type ethernet con-name kantor ifname enp3s0
nmcli connection add type ethernet con-name rumah ifname enp3s0 ipv4.method auto

Kunci type menentukan jenis koneksi, con-name memberi nama profil, dan ifname menambatkan profil ke sebuah device. Hasil perintah pertama tersimpan sebagai keyfile persis seperti yang kita bedah pada Chapter NetworkManager :

bash
mkdir -p system-connections
printf '[connection]\nid=kantor\ntype=ethernet\ninterface-name=enp3s0\nautoconnect=true\n\n[ipv4]\nmethod=auto\n' > system-connections/kantor.nmconnection
cat system-connections/kantor.nmconnection

Output yang Dihasilkan:

text
[connection]
id=kantor
type=ethernet
interface-name=enp3s0
autoconnect=true

[ipv4]
method=auto

Mari kita bedah hasilnya baris demi baris:

  1. id=kantor: nama profil yang akan tampil di semua keluaran nmcli connection — sama dengan con-name pada perintah asalnya.
  2. type=ethernet dan interface-name=enp3s0: jenis koneksi dan device tujuan — padanan type dan ifname di baris perintah.
  3. autoconnect=true: nilai bawaan yang membuat profil menyala sendiri begitu device muncul.
  4. [ipv4] method=auto: karena perintah kita tidak menetapkan alamat, profil memakai DHCP — NetworkManager menuliskannya sebagai auto.

Mengubah Profil: IP Statis #

Profil lama diubah dengan nmcli connection modify, diikuti nama profil dan pasangan properti-baru. Mengubah kantor menjadi alamat statis berarti mengganti metode beserta isinya sekaligus:

text
nmcli connection modify kantor ipv4.method manual \
  ipv4.addresses 192.0.2.20/24 \
  ipv4.gateway 192.0.2.1 \
  ipv4.dns 192.0.2.53
nmcli connection up kantor

Perintah nmcli connection up di baris akhir menerapkan profil ke device. Tanda \ hanya melanjutkan baris agar mudah dibaca — seluruh properti bisa juga ditulis dalam satu baris. Inilah isi keyfile setelah perubahan tersebut:

bash
mkdir -p system-connections
printf '[connection]\nid=kantor\ntype=ethernet\ninterface-name=enp3s0\nautoconnect=true\n\n[ipv4]\nmethod=manual\naddress1=192.0.2.20/24,192.0.2.1\ndns=192.0.2.53;\n' > system-connections/kantor.nmconnection
cat system-connections/kantor.nmconnection

Output yang Dihasilkan:

text
[connection]
id=kantor
type=ethernet
interface-name=enp3s0
autoconnect=true

[ipv4]
method=manual
address1=192.0.2.20/24,192.0.2.1
dns=192.0.2.53;

Tiga properti di baris perintah memetakan rapi ke isi file: method=manual menggantikan auto, address1 menggabungkan alamat, prefix, dan gateway dalam format alamat/prefix,gateway, serta dns menuliskan daftar server dengan tanda titik koma penutup. Membaca keyfile seperti ini adalah cara tercepat memastikan apa yang sebenarnya tersimpan — berguna saat sebuah profil berperilaku aneh dan kita mulai curiga ada properti lama yang tersisa.

Melihat Profil Tersimpan #

Tanpa argumen, nmcli connection show mendaftar seluruh profil — berikut contoh tampilannya:

text
NAME    UUID                                  TYPE      DEVICE
kantor  3d01c8a2-7e9f-4b2a-9d1c-8f0e5a6b7c2d  ethernet  enp3s0
rumah   9b4a2c15-6e7d-4f8a-b3c2-1a2d3e4f5a6b  ethernet  --

Kolom DEVICE yang kosong (--) berarti profil tersimpan tapi sedang tidak dipakai — persis keadaan rumah di atas. Setiap profil punya UUID sendiri sehingga bisa dipanggil dengan nama maupun UUID; nama boleh kembar setelah dihapus-dibuat ulang, UUID tidak pernah. Daftar ini sebenarnya adalah daftar keyfile di /etc/NetworkManager/system-connections/, dan kita bisa menyusunnya sendiri dari isi folder:

bash
mkdir -p system-connections
printf '[connection]\nid=rumah\ntype=ethernet\n\n[ipv4]\nmethod=auto\n' > system-connections/rumah.nmconnection
printf '[connection]\nid=kantor\ntype=ethernet\n\n[ipv4]\nmethod=manual\naddress1=192.0.2.20/24,192.0.2.1\n' > system-connections/kantor.nmconnection
for f in system-connections/*.nmconnection; do
  nama=$(grep -m1 '^id=' "$f" | cut -d= -f2)
  metode=$(grep -m1 '^method=' "$f" | cut -d= -f2)
  printf '%-8s ethernet  %s\n' "$nama" "$metode"
done

Output yang Dihasilkan:

text
kantor   ethernet  manual
rumah    ethernet  auto

Mari kita bedah loop di atas:

  1. Baris 3 (for f in system-connections/*.nmconnection): setiap keyfile di folder profil dijadikan satu putaran loop.
  2. Baris 4 (nama=$(grep -m1 '^id=' ...)): grep -m1 mengambil kecocokan pertama (baris id=...), lalu cut -d= -f2 memotong isinya setelah tanda sama dengan.
  3. Baris 5: cara yang sama dipakai untuk baris method= pada bagian [ipv4].
  4. Baris 6 (printf '%-8s ...'): nama diratakan selebar 8 karakter supaya kolomnya lurus meniru tampilan nmcli yang sesungguhnya.

Mengaktifkan dan Menonaktifkan Profil #

nmcli connection up kantor menghidupkan profil, nmcli connection down kantor melepaskanya dari device — device tetap ada, hanya profilnya yang dicopot. Ada pula sakelar besar: nmcli networking off mematikan seluruh jaringan yang dikelola daemon, dan nmcli radio wifi off mematikan radio wifi saja.

nmcli juga menjangkau wifi penuh — dari memindai hingga menyambung dalam satu baris. Karena wifi punya urutan dan alat tambahannya sendiri, ia berdiri sebagai Chapter tersendiri berikutnya.

Referensi lanjut: halaman manual nmcli(1) untuk daftar lengkap perintah dan properti, serta wiki Arch tentang NetworkManager untuk contoh pemakaian nmcli.