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”:
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:
nmcli connection add type ethernet con-name kantor ifname enp3s0
nmcli connection add type ethernet con-name rumah ifname enp3s0 ipv4.method autoKunci 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
:
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.nmconnectionOutput yang Dihasilkan:
[connection]
id=kantor
type=ethernet
interface-name=enp3s0
autoconnect=true
[ipv4]
method=autoMari kita bedah hasilnya baris demi baris:
id=kantor: nama profil yang akan tampil di semua keluarannmcli connection— sama dengancon-namepada perintah asalnya.type=ethernetdaninterface-name=enp3s0: jenis koneksi dan device tujuan — padanantypedanifnamedi baris perintah.autoconnect=true: nilai bawaan yang membuat profil menyala sendiri begitu device muncul.[ipv4] method=auto: karena perintah kita tidak menetapkan alamat, profil memakai DHCP — NetworkManager menuliskannya sebagaiauto.
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:
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 kantorPerintah 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:
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.nmconnectionOutput yang Dihasilkan:
[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:
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:
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"
doneOutput yang Dihasilkan:
kantor ethernet manual
rumah ethernet autoMari kita bedah loop di atas:
- Baris 3 (
for f in system-connections/*.nmconnection): setiap keyfile di folder profil dijadikan satu putaran loop. - Baris 4 (
nama=$(grep -m1 '^id=' ...)):grep -m1mengambil kecocokan pertama (barisid=...), lalucut -d= -f2memotong isinya setelah tanda sama dengan. - Baris 5: cara yang sama dipakai untuk baris
method=pada bagian[ipv4]. - Baris 6 (
printf '%-8s ...'): nama diratakan selebar 8 karakter supaya kolomnya lurus meniru tampilannmcliyang 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.