Konfigurasi jaringan dan pemecahan masalah adalah tugas penting yang harus dilakukan sysadmin secara teratur. Beberapa tugas ini bisa jadi menantang. Namun, saat menangani masalah konektivitas, menggunakan alat yang tepat akan membantu Anda mencapai hasil dengan cara yang lebih cepat dan konsisten.
Perintah ip
ip
command adalah utilitas serba guna untuk menampilkan dan memanipulasi objek jaringan di sistem Linux Anda, termasuk alamat IP, rute, dan tabel ARP. Ini adalah alat yang berguna untuk mengonfigurasi jaringan, serta untuk memecahkan masalah konektivitas jaringan.
ip
command menggantikan fungsionalitas dari banyak perintah yang disediakan dengan net-tools
yang lama paket seperti ifconfig
, rute
, dan arp
, tetapi menambahkan banyak fitur lainnya.
Dalam bentuk paling dasar, Anda cukup menjalankan ip
dan menyediakan objek jaringan untuk dimanipulasi, seperti alamat, tautan, atau rute, dan subperintah untuk melakukan suatu tindakan. Jika Anda tidak memberikan subperintah, banyak objek default ke show
subperintah untuk menampilkan informasi yang terkait dengan objek tersebut.
Berikut sintaks dasarnya:
ip
Misalnya, untuk melihat status tautan di semua perangkat jaringan, jalankan ip link show
:
$ ip link1:lo: mtu 65536 status noqueue qdisc mode UNKNOWN default grup DEFAULT qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002:enp1s0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:b5:c7:2b brd ff:ff:ff:ff:ff:ff
Karena tampilkan
adalah sub-perintah default, Anda juga dapat memperoleh hasil yang sama dengan menjalankan ip link
atau bahkan ip l
(banyak objek mengenali singkatan).
ip
perintah mengelola banyak objek. Yang utama adalah:
tautan
ataul
- mengontrol status perangkat jaringanalamat
ataua
- memanipulasi alamat IP pada perangkatrute
ataur
- menangani entri tabel peruteantetangga
ataun
- mengontrol entri tabel ARP
Anda dapat melihat daftar lengkap objek dan perintah dengan menjalankan ip help
.
Beberapa contoh perintah ip yang berguna
Tampilkan statistik jaringan -s
dalam format yang dapat dibaca manusia -h
untuk antarmuka jaringan tertentu:
$ ip -s -h l show dev enp1s02:enp1s0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:b5:C7:2B BRD FF:FF:FF:FF:FF:FF RX:Bytes Paket Kesalahan Diturunkan Overrun Mcast 820m 303k 0 182k 0 0 TX:Paket Bytes Kesalahan DROPPED CARRIER COLLSNS 19.9m 60.9K 0 0 0
Tampilkan alamat IP semua antarmuka:
$ ip a1:lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever prefer_lft forever inet6 ::1/128 scope host valid_lft forever prefer_lft forever2:enp1s0: mtu 1500 qdisc state fUPq_ default group qlen 1000 link/ether 52:54:00:b5:c7:2b brd ff:ff:ff:ff:ff:ff inet 192.168.122.169/24 brd 192.168.122.255 scope global noprefixroute enp1s0 valid_lft forever prefer_lft forever 7ecf:5cc8:5c1f:1009/64 scope link noprefixroute valid_lft forever prefert_lft forever
Tampilkan alamat IP dari satu antarmuka, mis., enp1s0 :
$ ip a show dev enp1s0
Tambahkan alamat IP lain ke antarmuka (memerlukan sudo
atau root
pengguna):
$ sudo ip a change 192.168.122.170 dev enp1s0
Tampilkan tabel perutean:
$ ip routedefault melalui 192.168.122.1 dev enp1s0 proto metrik statis 100 192.168.122.0/24 dev enp1s0 proto kernel scope link src 192.168.122.169 metrik 100
Tambahkan rute (gerbang default):
$ Sudo ip route tambahkan default melalui 192.168.122.1 dev enp1s0
ip
command adalah antarmuka tingkat rendah untuk mengonfigurasi opsi jaringan di sistem Linux Anda. Meskipun berguna sebagai alat pemecahan masalah, mungkin lebih sulit untuk mengatur jaringan dengannya. Untuk alasan ini, banyak distribusi menyediakan antarmuka tingkat yang lebih tinggi untuk menyelesaikan tugas yang sama. Selanjutnya, mari kita lihat alat konfigurasi Network Manager nmcli
, yang menyediakan cara terintegrasi untuk mengonfigurasi jaringan.
Alat nmcli
Network Manager adalah aplikasi konfigurasi jaringan yang tersedia secara default dengan banyak distribusi Linux, termasuk RHEL dan Fedora. Network Manager berjalan sebagai daemon, dan tujuannya adalah menyediakan antarmuka tingkat tinggi untuk membuat konfigurasi jaringan lebih mudah dan lebih otomatis.
Pengguna Linux desktop atau server dengan antarmuka grafis biasanya menggunakan klien GUI Manajer Jaringan untuk mengonfigurasi jaringan. Untuk kasus di mana Anda bekerja dengan server tanpa kepala atau jika Anda ingin mengotomatiskan konfigurasi melalui skrip shell, nmcli
alat sangat berguna.
Manajer Jaringan dan nmcli
adalah kombinasi serbaguna yang memungkinkan Anda memverifikasi dan mengonfigurasi banyak opsi jaringan. Sintaks dasar untuk nmcli
adalah:
nmcli
Objek yang paling umum adalah:
umum
- menunjukkan status dan izin Pengelola Jaringanjaringan
- menampilkan, mengaktifkan, dan menonaktifkan jaringanradio
- menampilkan, mengaktifkan, dan menonaktifkan WiFi dan WWANperangkat
- menunjukkan dan memanipulasi status perangkat jaringankoneksi
- mengelola profil koneksi Pengelola Jaringan
Tidak mungkin untuk menutupi semua opsi pada satu posting blog. Mari kita periksa beberapa contoh cara menggunakan nmcli
untuk tugas konfigurasi jaringan umum. Untuk contoh lainnya, lihat halaman nmcli-examples resmi atau halaman manual dengan man nmcli-examples
.
Periksa status perangkat jaringan:
$ nmcli device statusDEVICE TYPE STATE CONNECTION enp1s0 ethernet connected enp1s0enp7s0 ethernet disconnected --lo loopback unmanaged --
Tampilkan semua profil koneksi:
$ nmcli con show NAME UUID TYPE DEVICE enp1s0 1bb35a4a-ad02-4cad-978a-4a ea9527cb
Tampilkan detail tentang koneksi tertentu (mis., enp1s0 ):
$ koneksi nmcli tampilkan enp1s0
Ambil parameter tertentu dari koneksi (misalnya, alamat IP dan DNS):
$ nmcli -g ip4.address, koneksi ip4.dns tampilkan enp1s0192.168.122.169/24192.168.122.1
Ubah parameter koneksi, misalnya, beralih dari DHCP ke koneksi manual:
$ sudo nmcli con mod enp1s0 ipv4.method manual ipv4.addresses 192.168.122.169/24 ipv4.dns 192.168.122.1 ipv4.gateway 192.168.122.1
Mulai ulang koneksi untuk mengaktifkan opsi baru:
$ sudo nmcli con down enp1s0$ sudo nmcli con up enp1s0
Tambahkan profil koneksi baru:
$ Sudo koneksi nmcli tambahkan con-name enp7s0 ifname enp7s0 ketik ethernet ip4 192.168.64.88/24
nmcli
juga memungkinkan Anda untuk mengedit profil koneksi secara interaktif. Antarmuka ini memberikan bantuan dan pelengkapan otomatis melalui Tab kunci, yang memandu Anda melalui banyak pilihan yang tersedia. Aktifkan editor menggunakan koneksi nmcli edit CONNECTION-NAME
:
$ sudo koneksi nmcli edit enp7s0 ===| editor koneksi interaktif nmcli |===Mengedit koneksi '802-3-ethernet' yang ada:'enp7s0'Ketik 'bantuan' atau '?' untuk perintah yang tersedia. Ketik 'print' untuk menampilkan semua properti koneksi. Ketik 'describe [.
]' untuk deskripsi properti detail. Anda dapat mengedit pengaturan berikut:connection, 802-3-ethernet (ethernet) , 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy.
Di editor, Anda dapat menentukan parameter tertentu dengan set
memerintah. Gunakan Tab pelengkapan otomatis kunci untuk melihat semua opsi yang tersedia:
nmcli> Set IPv4. alamat dhcp-hostname dhcp-timeout dns-search may-fail routesdad-timeout dhcp-hostname-flag DNS Metode gateway rute-tabledhcp-client-id DHCP-IID DNS -options ignore-auto-dns never-default routing-rulesdhcp-fqdn dhcp-send-hostname dns-priority abaikan route-cli-auto-routes .
Kemudian Anda dapat mencetak
nilai saat ini:
nmcli> print ipv4.addresses ipv4.addresses:192.168.64.88/24, 192.168.64.90/24
Setelah Anda menyelesaikan perubahan, simpan
mereka ke koneksi dan keluar
untuk menyelesaikan operasi:
nmcli> saveConnection 'enp7s0' (94170029-5620-4f90-ad78-704b21480b1a) berhasil diperbarui.nmcli> keluar
Terakhir, mulai ulang koneksi untuk membuat perubahan efektif.
Manajer Jaringan dan nmcli
adalah solusi lengkap untuk konfigurasi jaringan. Jika Anda belum pernah menggunakannya sebelumnya, mulailah dengan beberapa perintah dasar dan secara bertahap pindah ke pengaturan yang lebih kompleks. Lihat halaman manual dan contoh untuk menjalankan tugas tertentu.
Selanjutnya, mari kita tinjau beberapa perintah yang membantu Anda memecahkan masalah jaringan, dimulai dengan resolusi nama.
Perintah nslookup
Saat mengelola masalah konektivitas, resolusi nama DNS sering menjadi sumber masalah. nslookup
utilitas membantu Anda memeriksa dan memecahkan masalah resolusi nama DNS.
Perintah ini tersedia dengan bind-utils
paket pada sistem RHEL8 dan Fedora. Instal dengan dnf
:
$ sudo dnf install -y bind-utils
Untuk memeriksa resolusi nama host tertentu dengan cepat, gunakan nslookup
dengan nama host sebagai argumen. Perintah menggunakan konfigurasi DNS default untuk resolusi nama:
$ nslookup redhat.comServer: 192.168.122.1Alamat: 192.168.122.1#53Jawaban non-otoritatif:Nama: redhat.comAlamat:209.132.183.105
Jika resolusi nama gagal, Anda dapat menggunakan server nama alternatif untuk resolusi dengan memberikan alamatnya sebagai argumen ketiga:
$ nslookup redhat.com 192.168.0.9Server: 192.168.0.9Alamat: 192.168.0.9#53Jawaban non-otoritatif:Nama: redhat.comAlamat:209.132.183.105
Informasi ini berguna untuk pemecahan masalah karena membantu mengidentifikasi apakah masalah tersebut lokal karena server tertentu, atau sesuatu yang lebih luas.
Anda juga dapat menggunakannya untuk menjalankan kueri DNS terbalik dengan memberikan alamat IP alih-alih nama host:
$ nslookup 209.132.183.105105.183.132.209.in-addr.arpa name =redirect.redhat.com.
nslookup
utilitas adalah alat yang berguna untuk membantu memecahkan masalah jaringan yang terkait dengan resolusi nama DNS. Selanjutnya, mari kita lihat pemecahan masalah soket jaringan lokal.
Utilitas ss
Tugas umum lainnya saat memecahkan masalah konektivitas jaringan adalah menentukan apakah sambungan dibuat atau layanan tertentu tersedia di server.
ss
perintah, kependekan dari statistik soket , adalah alat praktis yang menampilkan informasi soket jaringan. Ini adalah pengganti modern untuk netstat
yang menyediakan fungsionalitas serupa, tetapi menyertakan beberapa fitur tambahan.
Gunakan ss
tanpa opsi untuk melihat daftar lengkap semua soket jaringan yang sudah ada untuk jenis soket TCP, UDP, dan UNIX.
$ ssnetid state recv-q kirim-q Alamat lokal:port Alamat teman:portu_str estab 0 0* 25812* 25811u_str estab 0 0/run/systemd/jurnal/stdout 23604* 23603 ... terpotong outputu_str estab 0 0* 22566* 22171ICMP6 unconn 0 0*:ipv6-ICMP*:* icmp6 unconn 0 0*:ipv6-ICMP*:* tcp estab 0 0 192.168.122.169:ssh 192.168.122.1:45626
Karena perintah default menampilkan semua koneksi jaringan yang dibuat, daftar ini dapat menjadi ekstensif pada mesin yang sibuk, dengan lebih dari seribu entri. Untuk membantu Anda memecahkan masalah, ss
menyediakan beberapa opsi pemfilteran.
Anda dapat menampilkan informasi soket untuk jenis soket tertentu dengan parameter baris perintah berikut:-t
untuk TCP, -u
untuk UDP, dan -x
untuk UNIX.
Misalnya, tampilkan informasi soket TCP dengan ss -t
:
$ ss -tstate recv-q Kirim-q Alamat lokal:Port Alamat peer:portestab 0 0 192.168.122.169:ssh 192.168.122.1:45626
Anda juga dapat memfilter daftar berdasarkan nama host atau alamat IP sumber atau tujuan. Misalnya, berikut adalah daftar koneksi yang dibuat untuk alamat IP tujuan 192.168.122.1:
$ SS DST 192.168.122.1NetID State RecV-Q Kirim-Q Alamat lokal:Port Peer Address:porttcp estab 0 0 192.168.122.169:ssh 192.168.122.1:45626
Perintah ini berguna untuk memecahkan masalah konektivitas jaringan secara umum atau antara host tertentu dalam jaringan. Aplikasi praktis lain untuk ss
adalah untuk memverifikasi apakah layanan jaringan mendengarkan pada mesin lokal dengan alamat dan port yang benar. Untuk memverifikasi soket pendengar, gunakan opsi -l
:
$ ss -lnetid state recv-q kirim-q Alamat lokal:port Alamat teman:portnl unconn 0 0 rtnl:networkManager/909 *nl unconn 0 0 rtnl:Systemd-resolve/1122 *... terpotong OutputUdp unconn 0 0 0.0.0.0:hostmon 0.0.0.0:*udp unconn 0 0 127.0.0.53%LO:Domain 0.0.0.0:Audp unconn 0 0 127.0.0.1:323 0.0.0.0:*udp unconn 0 0 [::0.0.1:323 0.0.0.0:*udp unconn 0 0 [::0.0 ]:hostmon [::]:*udp unconn 0 0 [::1]:323 [::]:*TCP Listen 0 128 0 .0.0.0:ssh 0.0.0.0:*tcp Dengarkan 0 128 028 0.0.0.0:hostmon 0.0.0.0:*tcp Dengarkan 0 128 [::]:SSH [::]:TCP Listen 0 128 [::]:Hostmon [::]:*
Anda dapat menggunakan opsi pemfilteran yang sama yang dijelaskan di atas untuk memfilter jenis soket tertentu. Misalnya, untuk mendaftar semua soket TCP yang mendengarkan, masukkan:
$ ss -ltstate recv-q kirim-q Alamat lokal:Port Alamat peer:portlisten 0 128 0.0.0.0:ssh 0.0.0.0:*Listen 0 128 0.0.0.0:hostmon 0.0.0.0.0:Listen 0 128 [::]:ssh [::]:Listen 0 128 [::]:hostmon [::]:
Alih-alih menampilkan nama layanan, seperti ssh
atau hostmon
, ss
dapat menampilkan nomor port dengan menggunakan -n
pilihan:
$ ss -ltnState recv-q kirim-q Alamat lokal:Port Alamat Peer:PortListen 0 128 0.0.0.0:22 0.0.0.0:listen 0 128 028 0.0.0.0:5355 0.0.0.0:Listen 0 128 [::]:22 [::]:Dengarkan 0 128 [::]:5355 [::]:
Terakhir, opsi berguna lainnya adalah -p
untuk menampilkan informasi terkait proses seperti nama pengguna dan ID proses (PID). Beberapa layanan mungkin memerlukan hak istimewa yang lebih tinggi melalui sudo
atau sebagai root
untuk membuat daftar informasi proses:
$ sudo ss -tnlpState recv-q Kirim-q Alamat lokal:Port Peer Address:PortListen 0 128 0.0.0.0:22 0.0.0.0:* Pengguna:(("SSHD", PID =919, FD =5)) Dengarkan 0 128 0.0.0.0:5355 0.0.0.0:* Pengguna:(("Systemd-Resolve", PID =1122, FD =13)) Dengarkan 0 128 [::]:22 [::]:* pengguna:(("sshd",pid=919,fd=7))DENGARKAN 0 128 [::]:5355 [::] pengguna ))
ss
alat adalah perintah penting di kotak alat sysadmin untuk tugas pemecahan masalah jaringan. Selanjutnya, mari kita lihat tracepath
untuk melacak konektivitas jaringan antar host.
Perintah tracepath
kecepatan
command adalah alat pemecahan masalah jaringan yang menampilkan jalur konektivitas jaringan antara host lokal dan host jarak jauh, mengidentifikasi semua router yang digunakan untuk merutekan lalu lintas di antara mereka.
Jika Anda tidak dapat terhubung ke layanan jaringan di host jarak jauh, tracepath
membantu Anda menentukan di mana masalahnya.
kecepatan
adalah pengganti traceroute
, menawarkan fungsionalitas serupa. Perbedaan utamanya adalah tracepath
menggunakan port UDP acak alih-alih protokol ICMP untuk pelacakan, sehingga tidak memerlukan hak istimewa yang lebih tinggi untuk dijalankan.
Untuk penggunaan dasar, berikan nama host atau alamat IP dari host tujuan. Anda juga dapat memberikan opsi -n
untuk menampilkan alamat IP untuk router alih-alih nama mereka:
$ tracepath n sat65server 1 ?:[localhost] PMTU 1500 1:192.168.122.1 0.415ms 1:192.168.122.1 0.299ms 2:192.168.10.10 0.904ms 3:192.168.88.1 1.127ms 4:192.168 .0.95 2.020ms Lanjutkan:pmtu 1500
Jika kecepatan
tidak dapat terhubung ke hop jaringan, ini menampilkan tidak ada balasan . Secara default, jumlah hop maksimum yang dicoba adalah 30, yang biasanya cukup. Anda dapat mengubahnya dengan opsi -m
.
Misalkan tidak menerima balasan setelah hop tertentu. Itu adalah indikator yang baik ke mana harus pergi selanjutnya untuk tugas pemecahan masalah Anda. kecepatan
informasi tidak pasti, karena lalu lintas dapat diblokir karena beberapa alasan. Namun, ini membantu Anda mempersempit masalah dan fokus pada upaya penyelesaian.
Untuk alasan keamanan, banyak router di Internet memblokir lalu lintas, jadi tracepath
mungkin tidak berguna untuk melacak konektivitas dengan layanan Internet. Ini masih berguna untuk pemecahan masalah jaringan lokal.
Apa selanjutnya?
Pada artikel ini, kami menjelajahi lima konfigurasi jaringan penting dan alat pemecahan masalah untuk sistem Linux. Alat-alat ini sangat kuat dan menyediakan banyak opsi yang sulit untuk dibahas dalam satu posting. Kami mendorong Anda untuk memeriksanya dan melihat dokumentasi dan halaman manual untuk melihat bagaimana Anda dapat memasukkannya ke dalam alur kerja Anda.
Ada alat jaringan Linux lain yang berguna, seperti tcpdump
, nmap
, dan firewall-cmd
. Alat ini tercakup dalam artikel Aktifkan Sysadmin lainnya.
[ Jaringan sulit dikelola? Lihat Otomasi Jaringan untuk Semua Orang, buku gratis dari Red Hat. ]
Mempelajari NFS melalui konfigurasi server dan klien
Memfilter tcpdump:Membuat keteraturan dari kekacauan
Linux