14 Perintah Jaringan Linux yang Berguna
Diterbitkan: 2015-02-15Mengonfigurasi, memantau, dan mengamankan jaringan merupakan bagian penting dari pekerjaan Sysadmin. Ketika datang untuk mengelola jaringan Linux, ada banyak perintah dan utilitas yang tersedia.
Terkadang sistem jaringan gagal. Anda sebagai administrator diharuskan untuk mendiagnosis dan menyelesaikan masalah. Pemantauan membantu dalam mendeteksi masalah dan memperbaikinya sebelum semuanya menjadi tidak terkendali. Pemantauan keamanan dan kinerja juga merupakan bagian penting dari aktivitas admin.
Di sini kita membahas beberapa perintah yang biasa digunakan untuk mengelola jaringan Linux.
aku p
Paket iproute2 menyertakan perintah IP yang digunakan untuk konfigurasi jaringan dan perutean. Ini menggantikan perintah ifconfig
dan route
tradisional.
ip
mengambil argumen kedua yang menentukan objek tempat Anda ingin menjalankan perintah dan tindakan seperti menambah, menghapus, atau menampilkan.
tautan ip
ip link
adalah untuk mengonfigurasi, menambah, dan menghapus antarmuka jaringan. Gunakan perintah ip link show
untuk menampilkan semua antarmuka jaringan pada sistem:
$ ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 02:35:97:08:6b:2a brd ff:ff:ff:ff:ff:ff 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 08:00:27:6f:60:ff brd ff:ff:ff:ff:ff:ff
Anda dapat melihat halaman manual untuk ip link
dengan:
$ man ip-link
alamat IP
Gunakan perintah alamat ip untuk menampilkan alamat, mengikat alamat baru atau menghapus yang lama. Perintah alamat ip halaman manual disebut sebagai alamat ip.
Misalnya, perintah berikut menunjukkan alamat IP yang ditetapkan ke antarmuka jaringan enp0s8:
ip address show dev enp0s8 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:6f:60:ff brd ff:ff:ff:ff:ff:ff inet 10.0.0.51/24 brd 10.0.0.255 scope global enp0s8 ...
rute ip
Gunakan rute IP untuk mencetak atau menampilkan tabel perutean. Perintah berikut menampilkan isi tabel routing:
$ ip route show default via 10.0.2.2 dev enp0s3 10.0.0.0/24 dev enp0s8 proto kernel scope link src 10.0.0.51 10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15
nmap
Sementara Nmap telah digunakan di banyak film, The Matrix Reloaded ( Wikipedia , IMDB , Amazon ) mengubah Nmap menjadi bintang film!.
Nmap (“Network Mapper”) adalah utilitas yang kuat yang digunakan untuk penemuan jaringan, audit keamanan, dan administrasi. Banyak admin sistem menggunakannya untuk menentukan sistem mana yang online, dan juga untuk deteksi OS dan deteksi layanan.
Pemindaian Nmap default menunjukkan port, statusnya (terbuka/tertutup), dan protokol. Ini mengirimkan paket ke 1000 port paling umum dan memeriksa responsnya.
$ nmap 10.0.0.50 Starting Nmap 7.01 ( https://nmap.org ) at 2020-09-07 10:32 UTC Nmap scan report for 10.0.0.50 Host is up (0.00077s latency). Not shown: 997 filtered ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 3306/tcp closed mysql
Untuk memeriksa host mana di jaringan Anda yang aktif:
$ nmap -sn 10.0.0.0/24 Starting Nmap 7.01 ( https://nmap.org ) at 2020-09-07 11:59 UTC Nmap scan report for 10.0.0.1 Host is up (0.00084s latency). Nmap scan report for 10.0.0.50 Host is up (0.0021s latency). Nmap scan report for 10.0.0.51 Host is up (0.00026s latency). Nmap done: 256 IP addresses (3 hosts up) scanned in 2.61 seconds
Gunakan flag -O untuk mengidentifikasi sistem operasi mana yang dijalankan host.
$ sudo nmap 10.0.0.50 -O Starting Nmap 7.01 ( https://nmap.org ) at 2020-09-07 13:44 UTC Nmap scan report for 10.0.0.50 Host is up (0.00053s latency). ... Running: Linux 3.X OS CPE: cpe:/o:linux:linux_kernel:3 OS details: Linux 3.10 - 3.19 Network Distance: 1 hop OS detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 21.95 seconds
Perhatian: Tidak ada yang menghargai sistem mereka yang dipindai melalui internet. Jadi sebelum Anda melakukannya, mintalah izin.
Anda juga dapat menggunakan Nmap di Windows, lihat panduan instalasi ini.
ping
Gunakan ping untuk melihat apakah host masih hidup. Perintah super sederhana ini membantu Anda memeriksa status host atau segmen jaringan. Perintah Ping mengirim paket ICMP ECHO_REQUEST ke host target dan menunggu untuk melihat apakah itu membalas.
Namun, beberapa host memblokir permintaan gema ICMP dengan firewall. Beberapa situs di internet mungkin juga melakukan hal yang sama.
Secara default, ping berjalan dalam loop tak terbatas. Untuk mengirim sejumlah paket yang ditentukan, gunakan flag -c
.
$ ping -c 3 google.com PING google.com (172.217.167.238): 56 data bytes 64 bytes from 172.217.167.238: icmp_seq=0 ttl=118 time=7.898 ms 64 bytes from 172.217.167.238: icmp_seq=1 ttl=118 time=7.960 ms 64 bytes from 172.217.167.238: icmp_seq=2 ttl=118 time=6.247 ms --- google.com ping statistics --- 3 packets transmitted, 3 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 6.247/7.368/7.960/0.793 ms
Dengan -o flag ping berhasil keluar setelah menerima satu paket balasan.
$ ping -o google.com PING google.com (172.217.167.46): 56 data bytes 64 bytes from 172.217.167.46: icmp_seq=0 ttl=118 time=7.540 ms --- google.com ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 7.540/7.540/7.540/0.000 ms
Anda dapat menggunakan -n
flag untuk menghindari pencarian DNS terbalik. Nomor urut ICMP sangat penting. Pemutusan nomor urut menunjukkan paket yang hilang.
Ping yang gagal bisa disebabkan oleh
- kesalahan jaringan
- tuan rumah tidak hidup
- firewall memblokir permintaan ICMP ECHO
Anda juga dapat melakukan tes ping online untuk memeriksa konektivitas dari berbagai belahan dunia.
iPerf
Sementara ping memverifikasi ketersediaan host, iPerf membantu menganalisis dan mengukur kinerja jaringan antara dua host. Dengan iPerf, Anda membuka koneksi antara dua host dan mengirimkan beberapa data. iPerf kemudian menunjukkan bandwidth yang tersedia antara dua host.
Anda dapat menginstal iPerf menggunakan manajer paket distribusi Anda. Misalnya pada distro berbasis Ubuntu Anda dapat menginstal seperti ini:
$ sudo apt install iperf -y
Setelah Anda menginstal iPerf di kedua mesin, mulai server iPerf di salah satunya. Contoh berikut memulai server iPerf di host dengan alamat IP 10.0.0.51.
$ iperf -s ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------
Pada mesin kedua mulai iPerf dengan flag -c. Ini terhubung dengan server dan mengirimkan beberapa data.
$ iperf -c 10.0.0.51 ------------------------------------------------------------ Client connecting to 10.0.0.51, TCP port 5001 TCP window size: 85.0 KByte (default) ------------------------------------------------------------ [ 3] local 10.0.0.50 port 42177 connected with 10.0.0.51 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 1.13 GBytes 972 Mbits/sec
iPerf kembali dengan hasil bandwidth dalam beberapa detik.
traceroute
Jika ping menunjukkan paket yang hilang, Anda harus menggunakan traceroute untuk melihat rute mana yang diambil paket tersebut. Traceroute menunjukkan urutan gateway yang dilalui paket untuk mencapai tujuannya. Misalnya, traceroute dari mesin saya ke google.com menunjukkan hal berikut:
$ traceroute google.com traceroute to google.com (172.217.167.46), 64 hops max, 52 byte packets 1 dlinkrouter.dlink (192.168.0.1) 5.376 ms 2.076 ms 1.932 ms 2 10.194.0.1 (10.194.0.1) 5.190 ms 5.125 ms 4.989 ms 3 broadband.actcorp.in (49.207.47.201) 7.165 ms 5.749 ms 5.755 ms 4 broadband.actcorp.in (49.207.47.225) 5.918 ms * 8.483 ms ... 9 108.170.251.97 (108.170.251.97) 6.359 ms del03s16-in-f14.1e100.net (172.217.167.46) 5.448 ms 108.170.251.97 (108.170.251.97) 6.400 ms
Baris 4 pada keluaran ini menunjukkan * pada waktu perjalanan bolak-balik. Ini menunjukkan tidak ada tanggapan yang diterima. Hal ini dapat terjadi karena berbagai alasan – karena paket ICMP traceroute memiliki prioritas rendah, paket ini dapat dijatuhkan oleh router. Atau mungkin hanya ada kemacetan. Jika Anda melihat tanda * di semua kolom waktu untuk gateway tertentu, kemungkinan gateway sedang down.
Banyak alat pelacakan rute berbasis web memungkinkan Anda melakukan traceroute terbalik, yaitu dari situs web ke host Anda. Anda dapat memeriksanya di traceroute.org atau Geekflare Traceroute.
tcpdump
tcpdump adalah alat pengendus paket dan dapat sangat membantu saat menyelesaikan masalah jaringan. Itu mendengarkan lalu lintas jaringan dan mencetak informasi paket berdasarkan kriteria yang Anda tentukan.
Misalnya, Anda dapat memeriksa semua paket yang dikirim ke atau dari host tertentu, Ubuntu18 dalam contoh ini:
$ sudo tcpdump host ubuntu18 -n -c 5 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 14:12:11.509092 IP 10.0.0.4.22 > 183.83.208.234.9633: Flags [P.], seq 2991049004:2991049112, ack 2956233368, win 501, options [nop,nop,TS val 292041322 ecr 405604219], length 108 14:12:11.509146 IP 10.0.0.4.22 > 183.83.208.234.9633: Flags [P.], seq 108:252, ack 1, win 501, options [nop,nop,TS val 292041322 ecr 405604219], length 144 14:12:11.509218 IP 10.0.0.4.22 > 183.83.208.234.9633: Flags [P.], seq 252:288, ack 1, win 501, options [nop,nop,TS val 292041322 ecr 405604219], length 36 14:12:11.509259 IP 10.0.0.4.22 > 183.83.208.234.9633: Flags [P.], seq 288:500, ack 1, win 501, options [nop,nop,TS val 292041322 ecr 405604219], length 212 14:12:11.509331 IP 10.0.0.4.22 > 183.83.208.234.9633: Flags [P.], seq 500:768, ack 1, win 501, options [nop,nop,TS val 292041322 ecr 405604219], length 268 5 packets captured 6 packets received by filter 0 packets dropped by kernel
Secara default, tcpdump menyelesaikan alamat IP menjadi nama host. Gunakan -n
flag, jika Anda tidak ingin tcpdump melakukan pencarian nama.

output tcpdump mencetak satu baris untuk setiap paket. Gunakan flag -c
untuk membatasi keluaran, 5 pada contoh di atas.
tcpdump berguna untuk memecahkan masalah jaringan dan juga mengidentifikasi potensi masalah. Sebaiknya jalankan tcpdump di jaringan Anda sesekali untuk memverifikasi semuanya beres.
netstat
Perintah Netstat digunakan untuk memeriksa koneksi jaringan, tabel perutean, dan berbagai pengaturan dan statistik jaringan.
Gunakan flag -i
untuk membuat daftar antarmuka jaringan di sistem Anda.
Ini contohnya:
$ netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 4001 0 0 0 2283 0 0 0 BMRU eth1 1500 0 27154 0 0 0 838962 0 0 0 BMRU lo 65536 0 0 0 0 0 0 0 0 0 LRU
Menggunakan -r
flag akan menampilkan tabel routing. Ini menunjukkan jalur yang dikonfigurasi untuk mengirim paket jaringan.
$ netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface default 10.0.2.2 0.0.0.0 UG 0 0 0 eth0 10.0.0.0 * 255.255.255.0 U 0 0 0 eth1 10.0.2.0 * 255.255.255.0 U 0 0 0 eth0
Tanda bintang di dua baris terakhir menunjukkan bahwa tidak diperlukan gateway untuk mengirim paket ke host mana pun di jaringan ini. Host ini terhubung langsung ke jaringan 10.0.0.0 dan 10.0.2.0.
Di baris pertama, tujuan adalah default, yang berarti setiap paket yang ditujukan untuk jaringan yang tidak tercantum dalam tabel ini ditangani oleh router 10.0.2,2.
perintah netstat tanpa opsi menampilkan daftar soket terbuka. Gunakan flag -l
untuk hanya menampilkan soket mendengarkan, yang secara default tidak ditampilkan. Anda dapat menggunakan -a bendera untuk menampilkan soket mendengarkan dan tidak mendengarkan. Ini contohnya:
$ netstat -a Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:ssh *:* LISTEN tcp 0 36 10.0.2.15:ssh 10.0.2.2:51017 ESTABLISHED tcp6 0 0 [::]:ssh [::]:* LISTEN udp 0 0 *:bootpc *:* Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 3 [ ] DGRAM 8186 /run/systemd/notify ...
Lebih banyak contoh perintah Netstat di sini
ss
Instalasi Linux memiliki banyak layanan yang berjalan secara default. Ini harus dinonaktifkan atau sebaiknya dihapus, karena ini membantu mengurangi permukaan serangan. Anda dapat melihat layanan apa yang sedang berjalan dengan perintah netstat. Sementara netstat masih tersedia, sebagian besar distribusi Linux beralih ke perintah ss
.
gunakan perintah ss dengan flag -t
dan -a
untuk mencantumkan semua soket TCP. Ini menampilkan soket mendengarkan dan tidak mendengarkan.
$ ss -t -a State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:sunrpc *:* LISTEN 0 128 *:http *:* LISTEN 0 128 *:ssh *:* LISTEN 0 128 *:60031 *:* ESTAB 0 0 10.0.2.15:ssh 10.0.2.2:51699 ESTAB 0 0 10.0.2.15:ssh 10.0.2.2:51049 LISTEN 0 128 :::sunrpc :::* LISTEN 0 128 :::http :::* LISTEN 0 128 :::ssh :::* LISTEN 0 128 :::54715 :::*
Untuk menampilkan hanya koneksi TCP dengan status yang ditetapkan:
ss -a -t -o state established Recv-Q Send-Q Local Address:Port Peer Address:Port 0 0 10.0.2.15:ssh 10.0.2.2:51699 timer:(keepalive,23min,0) 0 0 10.0.2.15:ssh 10.0.2.2:51049 timer:(keepalive,114min,0)
ssh
ssh memungkinkan Anda terhubung secara aman dengan host jarak jauh melalui internet. Sebelumnya rlogin dan telnet digunakan untuk menyambung ke dan mengelola host jarak jauh. Namun, keduanya mengalami kelemahan mendasar, yaitu mengirim semua informasi termasuk nama login dan kata sandi dalam teks yang jelas.
ssh memungkinkan komunikasi yang aman melalui internet dengan dua fitur berikut:
- Ini menegaskan bahwa host jarak jauh adalah, siapa yang dikatakannya.
- Itu mengenkripsi semua komunikasi antara host.
Untuk terhubung ke host jarak jauh, Anda harus memiliki server OpenSSH yang berjalan di host jarak jauh. Anda dapat menginstalnya menggunakan manajer paket distribusi Anda. Misalnya di Ubuntu Anda dapat menginstalnya seperti ini:
$ sudo apt install openssh-server
Berikut adalah contoh yang menunjukkan bagaimana Anda dapat terhubung ke host jarak jauh 10.0.0.50 menggunakan perintah ssh:
me@ubuntu-xenial:~$ ssh 10.0.0.50 The authenticity of host '10.0.0.50 (10.0.0.50)' can't be established. ECDSA key fingerprint is SHA256:s2tNJQa/C1/W0SevGm7Rt3xoBZG1QL5yT3ff/+PMpnY. Are you sure you want to continue connecting (yes/no)? yes
Anda mendapatkan pesan yang mengatakan bahwa keaslian host 10.0.0.50 tidak dapat dibuat, ini karena ini adalah pertama kalinya koneksi dibuat dengan 10.0.0.50 (server) dan klien ssh belum pernah melihat host jarak jauh ini sebelumnya. Masukkan ya untuk melanjutkan koneksi. Setelah koneksi dibuat, Anda dimintai kata sandi:
Warning: Permanently added '10.0.0.50' (ECDSA) to the list of known hosts. [email protected]'s password:
Setelah Anda memasukkan kata sandi yang benar, Anda masuk ke host jarak jauh.
Welcome to Ubuntu 14.04.6 LTS (GNU/Linux 3.13.0-170-generic x86_64) * Documentation: https://help.ubuntu.com/ .. me@vagrant-ubuntu-trusty-64:~$
Anda dapat keluar dari shell jarak jauh ini dengan perintah keluar.
Selain itu, Anda dapat dengan mudah menjalankan satu perintah pada host jarak jauh menggunakan ssh. Misalnya, untuk menjalankan df -h pada host jarak jauh:
$ ssh 10.0.0.50 df -h [email protected]'s password: Filesystem Size Used Avail Use% Mounted on udev 241M 12K 241M 1% /dev tmpfs 49M 384K 49M 1% /run /dev/sda1 40G 1.6G 37G 5% / ... none 224G 113G 111G 51% /vagrant me@ubuntu-xenial:~$
scp dan sftp
scp (salinan aman) sangat mirip dengan perintah cp
untuk menyalin file, dengan tambahan – Anda dapat menyertakan nama host jarak jauh di nama jalur sumber atau tujuan. Nama host dan jalur direktori dipisahkan oleh titik dua. Ini memungkinkan Anda untuk menyalin file dengan aman melalui jaringan dalam bentuk terenkripsi. Perintah berikut menyalin a.txt dari mesin lokal ke 10.0.0.50 :
me@ubuntu-xenial:~$ scp a.txt 10.0.0.50:/home/me [email protected]'s password: a.txt 100% 0 0.0KB/s 00:00
sftp (ftp aman) juga merupakan program salin file yang mirip dengan ftp
. Namun, ia menggunakan terowongan terenkripsi SSH untuk menyalin file, alih-alih mengirim semuanya dalam bentuk teks-jelas. Selain itu, Anda tidak memerlukan server FTP yang berjalan di host jarak jauh. Anda hanya membutuhkan server ssh. Berikut adalah contoh sesi:
me@ubuntu-xenial:~$ sftp 10.0.0.50 [email protected]'s password: Connected to 10.0.0.50. sftp> put kali-linux-2020.3-installer-netinst-i386.iso Uploading kali-linux-2020.3-installer-netinst-i386.iso to /home/me/kali-linux-2020.3-installer-netinst-i386.iso kali-linux-2020.3-installer-netinst-i386.iso 100% 435MB 27.2MB/s 00:16 sftp> bye
ifconfig
Sebagian besar kami menggunakan perintah ifconfig
untuk memeriksa alamat IP yang ditetapkan ke sistem.
[root@lab ~]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 209.97.137.171 netmask 255.255.240.0 broadcast 209.97.143.255 inet6 fe80::c035:b2ff:fe9d:72d5 prefixlen 64 scopeid 0x20<link> ether c2:35:b2:9d:72:d5 txqueuelen 1000 (Ethernet) RX packets 1333200 bytes 167143230 (159.4 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 979666 bytes 93582595 (89.2 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 16 bytes 1392 (1.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 16 bytes 1392 (1.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@lab ~]#
menggali
dig (Domain Information Groper) adalah alat yang fleksibel untuk menginterogasi server nama DNS.
Itu melakukan pencarian DNS dan menampilkan jawaban yang dikembalikan dari server nama.
[root@lab ~]# dig geekflare.com ; <<>> DiG 9.11.13-RedHat-9.11.13-5.el8_2 <<>> geekflare.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12310 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;geekflare.com. IN A ;; ANSWER SECTION: geekflare.com. 30 IN A 104.27.119.115 geekflare.com. 30 IN A 104.27.118.115 ;; Query time: 12 msec ;; SERVER: 67.207.67.2#53(67.207.67.2) ;; WHEN: Wed Sep 16 17:58:45 UTC 2020 ;; MSG SIZE rcvd: 74 [root@lab ~]#
telnet
telnet menghubungkan host dan port tujuan melalui protokol telnet jika koneksi terbentuk berarti konektivitas antara dua host berfungsi dengan baik.
[root@lab ~]# telnet gf.dev 443 Trying 104.27.153.44... Connected to gf.dev. Escape character is '^]'.
nslookup
nslookup adalah program untuk menanyakan server nama domain dan menyelesaikan IP.
[root@lab ~]# nslookup relicflare.com Server: 67.207.67.2 Address: 67.207.67.2#53 Non-authoritative answer: Name: relicflare.com Address: 192.64.119.178 [root@lab ~]#
Ringkasan
Jaringan di Linux adalah subjek yang luas, dengan sejumlah besar perintah dan utilitas. Pada artikel ini, kami telah membahas beberapa perintah yang umum digunakan yang diharapkan dapat membantu Anda dalam mengelola dan mengamankan jaringan Anda.