Cara Semak Port Terbuka pada Linux: Panduan Lengkap 2026

Terminal Linux menunjukkan port terbuka dengan arahan ss dan netstat

Mengetahui cara menyemak port terbuka di Linux adalah kemahiran asas bagi sesiapa yang menguruskan pelayan, menyelesaikan masalah rangkaian, atau mengukuhkan keselamatan sistem. Port terbuka pada dasarnya adalah pintu masuk ke dalam sistem anda - dan jika anda tidak tahu pintu mana yang terbuka, anda tidak boleh menjaminnya dengan betul. Sama ada anda menjalankan pelayan web di Ubuntu, menguruskan VPS, atau mendiagnosis masalah sambungan, menyenaraikan port terbuka memberi anda gambaran jelas tentang apa yang sistem anda dedahkan kepada rangkaian. Panduan ini membincangkan empat kaedah praktikal, menerangkan cara menapis keputusan, dan menunjukkan cara menutup port yang tidak diperlukan.

Perkara Utama:

  • Perintah ss adalah cara moden dan terpantas untuk menyenaraikan port terbuka di Linux.
  • nmap membolehkan anda mengimbas port dari perspektif luar, mendedahkan apa yang sebenarnya dilihat oleh penyerang.
  • Gunakan lsof untuk segera mengenal pasti proses mana yang memiliki sesuatu port.
  • Menutup port yang tidak diperlukan menggunakan ufw atau iptables adalah cara paling langsung untuk mengurangkan permukaan serangan anda.

Mengapa Menyemak Port Terbuka Penting di Linux

Setiap perkhidmatan yang berjalan pada mesin Linux anda mendengar pada satu atau lebih port. SSH mendengar pada port 22, HTTP pada port 80, HTTPS pada port 443. Tetapi selepas berbulan-bulan memasang dan menyahpasang perisian, pelayan sering berakhir dengan port terbuka yang tidak dikonfigurasi secara sengaja oleh sesiapa pun. Daemon pangkalan data yang terlupa sedang mendengar pada port 5432 tanpa peraturan firewall adalah risiko nyata yang telah membawa kepada kebocoran data.

Menyemak port terbuka di Linux membantu anda:

  • Mengaudit perkhidmatan yang sebenarnya sedang berjalan dan terdedah.
  • Menyelesaikan masalah mengapa sesuatu aplikasi tidak dapat menyambung ke perkhidmatan lain.
  • Mengesahkan bahawa peraturan firewall anda berfungsi seperti yang dimaksudkan.
  • Bersedia untuk audit keselamatan atau ujian penembusan.

Kaedah di bawah merangkumi pemeriksaan tempatan (apa yang dilaporkan oleh mesin itu sendiri) dan imbasan luar (apa yang dapat dilihat oleh hos jauh). Kedua-dua perspektif ini penting.

Kaedah 1: Perintah ss (Moden, Disyorkan)

Perintah ss (statistik soket) menggantikan netstat pada kebanyakan pengedaran Linux moden. Ia lebih pantas, lebih terperinci, dan dibina dalam pakej iproute2 yang disertakan secara lalai pada Ubuntu, Debian, CentOS, dan Fedora.

Untuk menyenaraikan semua port terbuka bersama nama prosesnya, jalankan:

sudo ss -tulnp

Penjelasan flag:

  • -t - paparkan soket TCP
  • -u - paparkan soket UDP
  • -l - paparkan soket yang sedang mendengar sahaja
  • -n - paparkan nombor port berangka dan bukannya nama perkhidmatan
  • -p - paparkan proses yang menggunakan setiap soket

Contoh konkrit: Pada pelayan Ubuntu baharu yang menjalankan Nginx dan PostgreSQL, output mungkin kelihatan seperti ini:

Netid  State   Recv-Q  Send-Q  Local Address:Port  Peer Address:Port  Process
tcp    LISTEN  0       128     0.0.0.0:80           0.0.0.0:*          users:(("nginx",pid=1234,fd=6))
tcp    LISTEN  0       128     127.0.0.1:5432       0.0.0.0:*          users:(("postgres",pid=5678,fd=5))
tcp    LISTEN  0       128     0.0.0.0:22           0.0.0.0:*          users:(("sshd",pid=910,fd=3))

Perhatikan bahawa PostgreSQL terikat kepada 127.0.0.1 sahaja, bermakna ia tidak boleh dicapai dari luar. SSH dan Nginx terikat kepada 0.0.0.0, bermakna ia menerima sambungan dari mana-mana IP. Output tunggal ini memberitahu anda banyak tentang pendedahan sistem anda.

Untuk rujukan lengkap semua pilihan ss, lihat halaman manual ss rasmi.

Kaedah 2: Perintah netstat (Lama tapi Masih Biasa Digunakan)

Perintah netstat adalah sebahagian daripada pakej net-tools yang lebih lama. Ia tidak lagi dipasang secara lalai pada banyak pengedaran, tetapi masih digunakan secara meluas dan patut diketahui - terutamanya ketika bekerja pada sistem yang lebih lama.

Pasangnya jika diperlukan:

sudo apt install net-tools   # Debian/Ubuntu
sudo yum install net-tools   # CentOS/RHEL

Untuk menyenaraikan port terbuka di Linux menggunakan netstat:

sudo netstat -tulnp

Flag-flag tersebut mempunyai maksud yang sama seperti pada ss. Format output sedikit berbeza tetapi memberikan maklumat teras yang sama: protokol, alamat tempatan, port, dan proses pemilik.

Satu batasan praktikal: pada pelayan yang sangat sibuk dengan ribuan sambungan, netstat boleh ketara lebih perlahan berbanding ss. Untuk tugas harian pada pelayan biasa, perbezaannya boleh diabaikan.

Kaedah 3: Imbasan Port nmap (Perspektif Luar)

Alat di atas menunjukkan apa yang dilaporkan oleh mesin anda secara dalaman. nmap mengambil pendekatan berbeza - ia mengimbas port melalui rangkaian, mensimulasikan apa yang akan dilihat oleh penyerang luar atau klien jauh. Ini sangat penting kerana firewall mungkin menyekat sesuatu port yang masih ditunjukkan oleh ss sebagai sedang mendengar.

Pasang nmap:

sudo apt install nmap   # Debian/Ubuntu
sudo yum install nmap   # CentOS/RHEL

Imbas pelayan dari mesin lain pada rangkaian yang sama:

nmap -sT -p 1-1024 192.168.1.10

Untuk mengimbas 1000 port paling biasa dengan pengesanan versi perkhidmatan:

nmap -sV 192.168.1.10

Flag -sV cuba mengesan versi perisian yang berjalan pada setiap port terbuka. Ini berguna untuk mengenal pasti perkhidmatan lapuk yang memerlukan tampalan.

Penting: Jalankan nmap hanya pada pelayan yang anda miliki atau yang anda ada kebenaran eksplisit untuk mengimbas. Mengimbas sistem pihak ketiga tanpa kebenaran mungkin menyalahi undang-undang di kawasan anda.

Jika anda perlu menyemak sama ada sesuatu port boleh dicapai dari luar rangkaian anda tanpa memasang nmap, alat Port Checker percuma kami mengendalikannya dengan serta-merta - tiada pemasangan atau konfigurasi diperlukan.

Kaedah 4: Perintah lsof (Pemetaan Proses ke Port)

Perintah lsof (senarai fail terbuka) menganggap soket rangkaian sebagai fail, yang konsisten dengan falsafah Linux "segala-galanya adalah fail". Ia amat berguna apabila anda perlu menjawab soalan: "Proses mana yang menggunakan port 8080?"

Senaraikan semua sambungan rangkaian:

sudo lsof -i

Cari proses yang menggunakan port tertentu (contohnya, port 3000):

sudo lsof -i :3000

Ini amat berguna apabila aplikasi Node.js seorang pembangun menyekat sesuatu port dan anda perlu mengenal pasti serta mematikan proses tersebut sebelum memulakan semula sesuatu perkhidmatan.

Cara Menapis Keputusan mengikut Port, TCP, atau UDP

Output mentah dari mana-mana alat ini boleh menjadi bising. Berikut adalah corak penapisan yang paling berguna:

Paparkan hanya port TCP yang mendengar (ss):

sudo ss -tlnp

Paparkan hanya port UDP (ss):

sudo ss -ulnp

Semak sama ada port tertentu terbuka (grep dengan ss):

sudo ss -tulnp | grep :443

Tapis mengikut port dengan nmap:

nmap -p 80,443,8080 192.168.1.10

Corak-corak ini merangkumi sebahagian besar keperluan penapisan harian. Untuk penyelesaian masalah khusus HTTP pada port 80, lihat Panduan Penyelesaian Masalah HTTP Port 80 kami.

Jika anda menggunakan Windows dan memerlukan panduan yang sama, lihat Panduan Lengkap Menyemak Port Terbuka di Windows 2026 kami.

Cara Menutup atau Menyekat Port dengan ufw atau iptables

Menemui port terbuka yang tidak diperlukan hanyalah separuh daripada kerja. Berikut adalah cara menutupnya menggunakan dua alat firewall Linux yang paling biasa.

Menggunakan ufw (Firewall Mudah) - Disyorkan untuk Ubuntu

Sekat trafik masuk pada port 8080:

sudo ufw deny 8080/tcp

Benarkan hanya SSH dan HTTPS, dan tolak semua yang lain:

sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Semak status firewall semasa:

sudo ufw status verbose

Menggunakan iptables - Untuk Kawalan Lanjutan

Buang semua trafik masuk pada port 3306 (MySQL):

sudo iptables -A INPUT -p tcp --dport 3306 -j DROP

Simpan peraturan supaya kekal selepas but semula:

sudo iptables-save | sudo tee /etc/iptables/rules.v4

Untuk rujukan lebih mendalam tentang sintaks dan susunan peraturan iptables, dokumentasi rasmi Netfilter adalah sumber yang paling sahih.

Petua: Menyekat port dengan ufw atau iptables tidak menghentikan perkhidmatan daripada berjalan - ia hanya menghalang sambungan luar daripada mencapainya. Jika anda ingin menghentikan perkhidmatan sepenuhnya, gunakan sudo systemctl stop servicename dan sudo systemctl disable servicename.

Kesimpulan

Menyemak port terbuka di Linux tidak memerlukan alat yang kompleks atau kepakaran yang mendalam. Perintah ss memberikan anda pandangan tempatan yang pantas dan boleh dipercayai. nmap menunjukkan apa yang boleh dicapai oleh dunia luar. lsof menentukan dengan tepat proses mana yang memiliki sesuatu port. Dan ufw atau iptables membolehkan anda menutup apa sahaja yang tidak sepatutnya terdedah. Menjalankan semakan ini secara berkala - terutamanya selepas memasang perisian baharu atau mengubah konfigurasi rangkaian - adalah salah satu tabiat paling mudah yang boleh anda bina untuk memastikan pelayan Linux anda selamat. Mulakan dengan sudo ss -tulnp sekarang dan lihat apa yang sebenarnya didedahkan oleh pelayan anda.

Alat Port Checker percuma - semak sama ada port terbuka pada pelayan Linux anda dengan serta-merta

Semak Mana-mana Port pada Pelayan Linux Anda - Serta-merta

Tidak pasti sama ada sesuatu port benar-benar boleh dicapai dari luar? Alat Port Checker percuma kami mengimbas pelayan anda dari perspektif luar dalam beberapa saat - tiada pemasangan, tiada konfigurasi diperlukan.

Cuba Alat Port Checker Percuma Kami →

Soalan Lazim

Jalankan sudo ss -tulnp dalam terminal anda. Ini menggunakan perintah ss moden untuk memaparkan semua port TCP dan UDP yang sedang mendengar bersama nama proses. Ia lebih pantas daripada netstat dan tersedia secara lalai pada kebanyakan pengedaran Linux semasa termasuk Ubuntu dan Debian.

Kedua-dua perintah memaparkan port terbuka dan maklumat soket, tetapi ss adalah pengganti moden untuk netstat. Ia membaca data terus dari kernel, menjadikannya lebih pantas dan lebih tepat pada sistem yang sibuk. netstat memerlukan pakej net-tools yang berasingan, yang tidak lagi dipasang secara lalai pada banyak pengedaran.

Gunakan nmap -p PORT TARGET_IP dari mesin lain pada rangkaian. Untuk semakan luar yang pantas tanpa memasang apa-apa, gunakan alat penyemak port berasaskan web. Pendekatan ini menguji sama ada port boleh dicapai dari luar, dengan mengambil kira peraturan firewall yang tidak dapat dicerminkan oleh alat tempatan seperti ss.

Gunakan sudo lsof -i :PORT atau sudo ss -tulnp | grep :PORT. Kedua-dua perintah memaparkan nama proses dan PID yang dikaitkan dengan port tersebut. Kaedah lsof amat jelas kerana ia menyenaraikan perintah, PID, dan pengguna dalam format yang mudah dibaca.

Tidak. Menyekat port dengan ufw atau iptables menghalang sambungan luar daripada mencapai perkhidmatan, tetapi perkhidmatan itu sendiri terus berjalan. Untuk menghentikannya sepenuhnya, gunakan sudo systemctl stop servicename. Untuk penyingkiran kekal, jalankan juga sudo systemctl disable servicename bagi menghalangnya daripada bermula semasa but semula.