Konfigurasi jaringan, diagnostik, dan pemecahan masalah Linux umum adalah bagian penting dari administrasi Sistem. Bahkan untuk pengembang yang bekerja dengan sistem Linux, pengetahuan tentang perintah jaringan Linux merupakan keuntungan tambahan.
Khususnya, jika Anda ingin menjadi insinyur DevOps atau menjadi bagian dari SRE, penting untuk mengetahui semua perintah pemecahan masalah Linux karena mereka akan menjadi bagian dari aktivitas Anda sehari-hari.
Posting ini akan membahas perintah jaringan dan pemecahan masalah linux yang penting yang secara native tersedia di sistem Linux.
Apa Perintah Jaringan dan Pemecahan Masalah Linux terbaik?
Berikut adalah daftar perintah pemecahan masalah yang tersedia secara native.
Perintah | Deskripsi |
hostname | Untuk memeriksa dan mengatur nama host server. |
host | Untuk mendapatkan detail DNS host |
ping | Memeriksa apakah server jarak jauh dapat dijangkau menggunakan protokol ICMP. Ini juga menunjukkan waktu perjalanan pulang pergi paket. |
curl | Utilitas lintas platform yang digunakan untuk mentransfer data. Ini dapat digunakan untuk memecahkan masalah beberapa masalah jaringan. |
wget | Utilitas untuk mengunduh file. Dapat digunakan untuk memecahkan masalah koneksi dan konektivitas proxy. |
ip | Pengganti ifconfig . Dapat digunakan untuk mengkonfigurasi dan mengambil informasi tentang antarmuka jaringan sistem |
arp | Utilitas untuk melihat dan mengelola cache arp. |
ss/netstat | Terutama digunakan untuk memeriksa koneksi dan PID pada port dan soket Unix. |
tracerout e | Utilitas ini menggunakan protokol ICMP dan menemukan hop yang terlibat dalam membaca server tujuan. Ini juga menunjukkan waktu yang dibutuhkan antara hop. |
mtr | mtr adalah gabungan dari ping dan traceroute . Ini juga memberikan informasi tambahan seperti host perantara dan daya tanggap. |
dig | Membantu Anda mendapatkan data DNS yang terkait dengan nama domain. |
nslookup | Perintah yang mirip dengan dig. |
nc | utilitas untuk men-debug soket TCP/UDP. |
telnet | Dapat digunakan untuk menguji konektivitas jarak jauh pada port |
route | Membantu Anda mendapatkan semua informasi tabel rute |
tcpdump | Utilitas ini membantu Anda menangkap paket jaringan dan menganalisisnya untuk masalah jaringan. |
lsof | daftar semua file yang terbuka dan informasi proses yang membukanya |
Mari kita pahami setiap perintah dan lihat bagaimana kita dapat menggunakannya untuk memecahkan masalah Linux.
Catatan Penting: Setiap perintah/utilitas yang disebutkan dalam posting ini memiliki banyak opsi dan flag. Setiap perintah memiliki halaman manual dan Anda dapat menggunakannya untuk mengidentifikasi flag dan opsi yang diperlukan untuk kasus penggunaan Anda. Misalnya, untuk
ip
perintah, Anda cukup mengetiknyaman ip
di terminal untuk mendapatkan semua detail tentang perintah itu.
1. nama host
Perintah hostname digunakan untuk melihat nama host mesin dan mengatur nama host.
hostname
Anda dapat menggunakan perintah hostname untuk menetapkan nama host baru untuk mesin. Misalnya,
sudo hostname temp.com
Jika Anda mengatur nama host menggunakan “hostname
”, ketika Anda me-restart mesin, nama host akan berubah menjadi nama yang ditentukan dalam file nama host (misalnya:/etc/hostname).
Jadi jika Anda ingin mengubah nama host secara permanen, Anda dapat menggunakan /etc/hosts
file atau file hostname relevan yang ada di server.
- Untuk mesin ubuntu, Anda dapat mengubahnya di
/etc/hostname
berkas. - Untuk RHEL, CentOS dan Fedora Anda dapat mengubahnya di
/etc/sysconfig/network
berkas.
2. tuan rumah
Perintah host adalah untuk pencarian balik IP atau nama DNS.
Misalnya, Jika Anda ingin menemukan DNS yang dilampirkan dengan IP, Anda dapat menggunakan perintah host sebagai berikut.
host 8.8.8.8
Anda juga dapat melakukan sebaliknya untuk menemukan alamat IP yang terkait dengan nama domain. Misalnya,
host devopscube.com
3. ping
Utilitas jaringan ping digunakan untuk memeriksa apakah server jauh dapat dijangkau atau tidak. Ini terutama digunakan untuk memeriksa konektivitas dan memecahkan masalah jaringan.
Ini memberikan detail berikut.
- Byte yang dikirim dan diterima
- Paket terkirim, diterima, dan hilang
- Perkiraan waktu pulang pergi (dalam milidetik)
Perintah ping memiliki sintaks berikut.
ping <IP or DNS>
Misalnya,
ping devopscube.com
Untuk melakukan ping ke alamat IP
ping 8.8.8.8
Jika Anda ingin membatasi output ping tanpa menggunakan ctrl+c, maka Anda dapat menggunakan flag “-c” dengan angka seperti di bawah ini.
ping -c 1 devopscube.com
4. keriting
Utilitas Curl terutama digunakan untuk mentransfer data dari atau ke server. Namun, Anda dapat menggunakannya untuk pemecahan masalah jaringan.
Untuk pemecahan masalah jaringan, curl
mendukung protokol seperti DICT
, FILE
, FTP
, FTPS
, GOPHER
, HTTP
, HTTPS
, IMAP
, IMAPS
, LDAP
, LDAPS
, MQTT
, POP3
, POP3S
, RTMP
, RTMPS
, RTSP
, SCP
, SFTP
, SMB
, SMB
, SMTP
, SMTPS
, TELNET
dan TFTP
Misalnya, curl
dapat memeriksa konektivitas pada port 22 menggunakan telnet.
curl -v telnet://192.168.33.10:22
Anda dapat memeriksa konektivitas FTP menggunakan curl.
curl ftp://ftptest.net
Anda juga dapat memecahkan masalah konektivitas server web.
curl http://devopscube.com -I
5. wget
wget
perintah ini terutama digunakan untuk mengambil halaman web.
Anda dapat menggunakan wget
untuk memecahkan masalah jaringan juga.
Misalnya, Anda dapat memecahkan masalah koneksi server proxy menggunakan wget.
wget -e use_proxy=yes http_proxy=<proxy_host:port> http://externalsite.com
Anda dapat memeriksa apakah situs web aktif dengan mengambil file.
wget www.google.com
6. ip (ifconfig)
ip
perintah digunakan untuk menampilkan dan memanipulasi rute dan antarmuka jaringan. ip perintah adalah versi yang lebih baru dari ifconfig
. ifconfig berfungsi di semua sistem, tetapi lebih baik menggunakan perintah ip daripada ifconfig.
Mari kita lihat beberapa contoh ip
perintah.
Menampilkan perangkat dan konfigurasi jaringan
ip addr
Anda dapat menggunakan perintah ini dengan pipa dan grep untuk mendapatkan output yang lebih terperinci seperti alamat IP antarmuka eth0. Ini sangat berguna saat Anda bekerja pada alat otomatisasi yang membutuhkan IP untuk diambil secara dinamis.
Perintah berikut mendapatkan alamat IP eth0
antarmuka jaringan.
ip a | grep eth0 | grep "inet" | awk -F" " '{print $2}'
Dapatkan detail antarmuka tertentu
ip a show eth0
Anda dapat membuat daftar tabel perutean.
ip route
ip route list
7. arp
ARP (Protokol Resolusi Alamat ) menunjukkan tabel cache alamat IP dan alamat MAC jaringan lokal yang berinteraksi dengan sistem.
arp
Contoh keluaran,
[email protected]:~$ arp
Address HWtype HWaddress Flags Mask Iface
10.0.2.3 ether 52:54:00:12:35:03 C eth0
192.168.33.1 ether 0a:00:27:00:00:00 C eth1
10.0.2.2 ether 52:54:00:12:35:02 C eth0
8. ss (netstat)
ss
perintah adalah pengganti netstat
. Anda masih dapat menggunakan netstat
perintah pada semua sistem.
Menggunakan ss
perintah, Anda bisa mendapatkan informasi lebih dari netstat
memerintah. Perintah ss cepat karena mendapatkan semua informasi dari ruang pengguna kernel.
Sekarang mari kita lihat beberapa penggunaan ss
perintah.
Mencantumkan semua koneksi
“ss
” perintah akan mencantumkan semua koneksi soket TCP, UDP, dan Unix pada mesin Anda.
[email protected]:~$ ss Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port u_str ESTAB 0 0 * 7594 * 0 u_str ESTAB 0 0 @/com/ubuntu/upstart 7605 * 0 u_str ESTAB 0 0 * 29701 * 0 u_str ESTAB 0 0 /var/run/dbus/system_bus_socket 29702 * 0 tcp ESTAB 0 400 172.31.18.184:ssh 1.22.167.31:61808
Keluaran dari ss
perintah akan menjadi besar sehingga Anda dapat menggunakan ” ss | less
” untuk membuat output dapat digulir.
Memfilter soket TCP, UDP, dan Unix
Jika Anda ingin memfilter detail soket TCP , UDP atau UNIX, gunakan flag “-t” “-u” dan “-x” dengan perintah “ss”. Ini akan menunjukkan semua koneksi yang dibuat ke port tertentu. Jika Anda ingin membuat daftar port yang terhubung dan mendengarkan menggunakan "a" dengan tanda tertentu seperti yang ditunjukkan di bawah ini.
ss -ta ss -ua ss -xa
Mencantumkan semua port yang mendengarkan
Untuk membuat daftar semua port yang mendengarkan, gunakan tanda “-l” dengan perintah ss. Untuk membuat daftar soket TCP, UDP atau UNIX tertentu, gunakan flag “-t”, “-u” dan “-x” dengan “-l” seperti yang ditunjukkan di bawah ini.
[email protected]:~$ ss -lt State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:ssh *:* LISTEN 0 50 :::http-alt :::* LISTEN 0 50 :::55857 :::* LISTEN 0 128 :::ssh :::* LISTEN 0 50 :::53285 :::* [email protected]:~$
Daftar semua yang sudah mapan
Untuk membuat daftar semua port yang telah dibuat, gunakan state established
bendera seperti yang ditunjukkan di bawah ini.
ss -t -r state established
Untuk membuat daftar semua soket dalam status mendengarkan,
ss -t -r state listening
9. traceroute
Jika Anda tidak memiliki traceroute
utilitas di sistem atau server Anda, Anda dapat menginstalnya dari repositori asli.
traceroute
adalah utilitas pemecahan masalah jaringan. Menggunakan traceroute Anda dapat menemukan jumlah hop yang diperlukan untuk paket tertentu untuk mencapai tujuan.
Misalnya,
traceroute google.com
Berikut adalah outputnya.
traceroute to google.com (173.194.33.163), 30 hops max, 60 byte packets 1 ec2-50-112-0-84.us-west-2.compute.amazonaws.com (50.112.0.84) 1.974 ms 1.895 ms 1.899 ms 2 100.64.1.247 (100.64.1.247) 1.414 ms 100.64.1.137 (100.64.1.137) 1.127 ms 100.64.1.97 (100.64.1.97) 1.313 ms 3 100.64.0.198 (100.64.0.198) 1.443 ms 100.64.0.62 (100.64.0.62) 2.160 ms 100.64.0.60 (100.64.0.60) 2.116 ms 10 66.249.94.214 (66.249.94.214) 6.313 ms 7.104 ms 209.85.249.34 (209.85.249.34) 5.986 ms 11 209.85.244.65 (209.85.244.65) 6.157 ms 6.341 ms 6.574 m. . 12 sea09s18-in-f3.1e100.net (173.194.33.163) 6.302 ms 6.517 ms 6.071 ms [email protected]:~$
Output di atas menunjukkan jumlah lompatan (12) untuk mencapai google.com dari server devopscube AWS ec2.
10. mtr
mtr
utilitas adalah alat diagnostik jaringan untuk memecahkan masalah kemacetan jaringan. Ini menggabungkan fungsi ping
dan traceroute
Misalnya, perintah berikut menunjukkan traceroute
keluaran secara real-time.
mtr google.com
Berikut adalah outputnya.

laporan mtr
Anda dapat membuat laporan menggunakan flag –report. Saat Anda menjalankan laporan mtr, ia mengirim 10 paket ke tujuan dan membuat laporan.
mtr -n --report google.com

11. gali
Jika Anda memiliki tugas yang terkait dengan pencarian DNS, Anda dapat menggunakan “dig
” perintah untuk menanyakan server nama DNS.
Dapatkan semua data DNS dengan dig
Perintah berikut mengembalikan semua catatan DNS dan informasi TTL dari twitter.com
dig twiter.com ANY

Gunakan +short
untuk mendapatkan output tanpa verbose.
dig google.com ANY +short
Dapatkan Data DNS Spesifik dengan dig
Misalnya, Jika Anda ingin mendapatkan A record
untuk nama domain tertentu, Anda dapat menggunakan perintah dig. +short
akan memberikan informasi tanpa verbose
dig www.google.com A +short
Demikian pula, Anda bisa mendapatkan informasi rekaman lainnya secara terpisah menggunakan perintah berikut.
dig google.com CNAME +short
dig google.com MX +short
dig google.com TXT +short
dig google.com NS +short
Terbalik Pencarian DNS dengan dig
Anda dapat melakukan pencarian DNS terbalik dengan menggali menggunakan perintah berikut. Ganti 8.8.8.8
dengan IP yang diperlukan
dig -x 8.8.8.8
12. nslookup
Nslookup Utilitas (Name Server Lookup) digunakan untuk memeriksa entri DNS. Ini mirip dengan perintah dig.
Untuk memeriksa catatan DNS domain, Anda dapat menggunakan perintah berikut.
nslookup google.com
Anda juga dapat melakukan pencarian terbalik dengan alamat IP.
nslookup 8.8.8.8
Untuk mendapatkan semua data DNS dari nama domain, Anda dapat menggunakan yang berikut ini.
nslookup -type=any google.com
Demikian pula, Anda dapat meminta catatan seperti mx
, soa
dll
13. nc (netcat)
nc
(netcat) command dikenal sebagai swiss army of networking command.
Menggunakan nc
, Anda dapat memeriksa konektivitas layanan yang berjalan pada port tertentu.
Misalnya, untuk memeriksa apakah ssh
port terbuka, Anda dapat menggunakan perintah berikut.
nc -v -n 192.168.33.10 22
netcat
juga dapat digunakan untuk transfer data melalui TCP/UDP dan pemindaian port.
Pemindaian port tidak disarankan di lingkungan cloud. Anda perlu meminta penyedia cloud untuk melakukan operasi pemindaian port di lingkungan Anda.
14. telnet
Perintah telnet digunakan untuk memecahkan masalah koneksi TCP pada sebuah port.
Untuk memeriksa konektivitas port menggunakan telnet, gunakan perintah berikut.
telnet 10.4.5.5 22
15. rute
“route
Perintah ” digunakan untuk mendapatkan rincian tabel rute untuk sistem Anda dan untuk memanipulasinya. Mari kita lihat beberapa contoh untuk perintah route.
Mencantumkan semua rute
Jalankan “route
” perintah tanpa argumen untuk mendaftar semua rute yang ada di sistem atau server Anda.
[email protected]:~$ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default ip-172-31-16-1. 0.0.0.0 UG 0 0 0 eth0 172.17.0.0 * 255.255.0.0 U 0 0 0 docker0 172.31.16.0 * 255.255.240.0 U 0 0 0 eth0 [email protected]:~$
Jika Anda ingin mendapatkan output lengkap dalam bentuk numerik tanpa nama host, Anda dapat menggunakan flag “-n” dengan perintah route.
[email protected]:~$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 172.31.16.1 0.0.0.0 UG 0 0 0 eth0 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0 172.31.16.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0 [email protected]:~$
16. tcpdump
tcpdump
perintah ini terutama digunakan untuk memecahkan masalah lalu lintas jaringan.
Catatan: Untuk menganalisis keluaran
tcpdump
perintah memerlukan beberapa pembelajaran, jadi menjelaskannya di luar cakupan artikel ini.
tcpdump
perintah bekerja dengan antarmuka jaringan sistem. Jadi, Anda perlu menggunakan hak administratif untuk menjalankan perintah.
Mencantumkan semua antarmuka jaringan
Gunakan perintah berikut untuk membuat daftar semua antarmuka.
sudo tcpdump --list-interfaces
Tangkap Paket pada Antarmuka Tertentu
Untuk mendapatkan dump paket pada antarmuka tertentu, Anda dapat menggunakan perintah berikut.
Catatan: tekan
ctrl + c
untuk berhenti menangkap paket.
sudo tcpdump -i eth0
Untuk membatasi pengambilan paket, Anda dapat menggunakan -c
bendera dengan nomornya.
Misalnya,
sudo tcpdump -i eth0 -c 10
Tangkap Paket di Semua Antarmuka
Untuk menangkap paket di semua antarmuka, gunakan any
bendera seperti yang ditunjukkan di bawah ini.
sudo tcpdump -i any
17. lsof
lsof
adalah perintah yang akan digunakan dalam pemecahan masalah linux sehari-hari. Perintah ini sama pentingnya bagi siapa saja yang bekerja dengan sistem Linux.
Untuk membuat daftar semua file yang terbuka, jalankan lsof
perintah.
lsof
Salah satu kesalahan umum yang dihadapi pengembang &insinyur DevOps adalah “Kesalahan gagal mengikat:Alamat sudah digunakan “. Anda dapat menemukan ID proses yang terkait dengan port menggunakan perintah berikut. Anda dapat mematikan proses untuk mengosongkan port.
lsof -i :8080
Utilitas Pemecahan Masalah Jaringan Pihak Ketiga
Ada lebih banyak utilitas baris perintah pemecahan masalah jaringan yang tersedia dari solusi pihak ketiga.
Anda perlu menginstalnya secara terpisah dan menggunakannya untuk tujuan pemecahan masalah Anda. Karena alasan kepatuhan keamanan, tidak semua organisasi mengizinkan Anda melakukannya. Namun, jika Anda harus memilih untuk menggunakan alat pihak ketiga, Anda dapat menjelajahinya.
Kesimpulan
Dalam artikel ini, kami telah membahas utilitas baris perintah Linux yang penting untuk pemecahan masalah dan konfigurasi jaringan.
Jika Anda memulai dengan administrasi sistem, DevOps, atau peran SRE, penting untuk mempelajari utilitas ini untuk mendukung proyek yang sedang Anda kerjakan.
Setiap utilitas memiliki banyak fungsi, dan Anda dapat menjelajahi lebih jauh untuk memenuhi kebutuhan Anda.
Jika menurut Anda kami melewatkan perintah penting, beri tahu kami di bagian komentar.
Juga, jika Anda ingin mempelajari skrip shell, lihat panduan kami tentang cara mempelajari skrip shell. Jika Anda adalah pengembang, lihat panduan saya tentang Perintah Linux yang harus diketahui oleh setiap Pengembang.