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
ipperintah, Anda cukup mengetiknyaman ipdi 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/hostnameberkas. - Untuk RHEL, CentOS dan Fedora Anda dapat mengubahnya di
/etc/sysconfig/networkberkas.
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
tcpdumpperintah 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 + cuntuk 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.