How to Check All Open Ports in Ubuntu
Isi kandungan:
- Apakah Pelabuhan Mendengar?
- Semak Pelabuhan Mendengar dengan
netstat
- Semak Pelabuhan Mendengar dengan
ss
- Semak Pelabuhan Mendengar dengan
lsof
- Kesimpulannya
Apabila masalah penyelesaian masalah rangkaian atau isu khusus aplikasi salah satu perkara pertama yang perlu dipertimbangkan adalah apa yang sebenarnya digunakan oleh pelabuhan pada sistem anda dan aplikasi mana yang didengar pada port tertentu.
Artikel ini menerangkan bagaimana untuk mencari perkhidmatan mana yang mendengar di mana pelabuhan menggunakan perintah
netstat
,
ss
dan
lsof
. Arahan ini boleh digunakan untuk semua sistem operasi berasaskan Linux dan Unix seperti macOS.
Apakah Pelabuhan Mendengar?
Port rangkaian dikenalpasti dengan nombornya, alamat IP yang berkaitan, dan jenis protokol komunikasi seperti TCP atau UDP.
Port pendengaran ialah port rangkaian di mana aplikasi atau proses didengar, bertindak sebagai titik akhir komunikasi.
Setiap pelabuhan mendengar boleh dibuka atau ditutup (ditapis) menggunakan firewall. Secara umum, port terbuka ialah port rangkaian yang menerima paket masuk dari lokasi terpencil.
Anda tidak boleh mempunyai dua perkhidmatan yang mendengar port yang sama pada alamat IP yang sama.
Contohnya, jika anda menjalankan pelayan web Apache yang mendengar pada port
80
dan
443
dan cuba untuk memasang Nginx yang kemudiannya akan gagal dimulakan kerana port HTTP dan HTTPS sudah digunakan.
Semak Pelabuhan Mendengar dengan
netstat
netstat
adalah alat baris arahan yang dapat memberikan maklumat mengenai sambungan rangkaian.
Untuk menyenaraikan semua port TCP atau UDP yang sedang didengar, termasuk perkhidmatan yang menggunakan port dan status soket menggunakan arahan berikut:
sudo netstat -tunlp
Pilihan yang digunakan dalam perintah ini mempunyai makna yang berikut:
-
-t
- Paparkan port TCP.-u
- Tunjukkan port UDP.-n
- Tunjukkan alamat berangka dan bukannya menyelesaikan tuan rumah.-l
- Tunjuk hanya pelabuhan mendengar.-p
- Tunjukkan PID dan nama proses pendengar. Maklumat ini ditunjukkan hanya jika anda menjalankan arahan sebagai root atau sudo user.
Output akan kelihatan seperti ini:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 445/sshd tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 929/master tcp6 0 0:::3306:::* LISTEN 534/mysqld tcp6 0 0:::80:::* LISTEN 515/apache2 tcp6 0 0:::22:::* LISTEN 445/sshd tcp6 0 0:::25:::* LISTEN 929/master tcp6 0 0:::33060:::* LISTEN 534/mysqld udp 0 0 0.0.0.0:68 0.0.0.0:* 966/dhclient
Lajur penting dalam kes kami ialah:
-
Proto
- Protokol yang digunakan oleh soket.Local Address
-Local Address
IP dan nombor port di mana proses mendengar.PID/Program name
- PID dan nama proses.
sudo netstat -tnlp | grep:22
Output menunjukkan bahawa pada port mesin ini 22 digunakan oleh pelayan SSH:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 445/sshd tcp6 0 0:::22:::* LISTEN 445/sshd
Sekiranya output kosong, bermakna tiada apa yang didengar di pelabuhan.
Anda juga boleh menapis senarai berdasarkan kriteria, contohnya, PID, protokol, keadaan, dan sebagainya.
netstat
adalah usang dan digantikan dengan
ss
dan
ip
, tetapi masih ia adalah arahan yang paling digunakan untuk memeriksa sambungan rangkaian.
Semak Pelabuhan Mendengar dengan
ss
ss
adalah
netstat
baru. Ia tidak mempunyai beberapa ciri
netstat
tetapi mendedahkan lebih banyak keadaan TCP dan ia lebih cepat sedikit. Pilihan perintah kebanyakannya sama supaya peralihan dari
netstat
ke
ss
tidak sukar.
Untuk mendapatkan senarai semua port pendengaran dengan
ss
anda akan menaip:
sudo ss -tunlp
Keluaran hampir sama dengan yang dilaporkan oleh
netstat
:
State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd", pid=445, fd=3)) LISTEN 0 100 0.0.0.0:25 0.0.0.0:* users:(("master", pid=929, fd=13)) LISTEN 0 128 *:3306 *:* users:(("mysqld", pid=534, fd=30)) LISTEN 0 128 *:80 *:* users:(("apache2", pid=765, fd=4), ("apache2", pid=764, fd=4), ("apache2", pid=515, fd=4)) LISTEN 0 128:22:* users:(("sshd", pid=445, fd=4)) LISTEN 0 100:25:* users:(("master", pid=929, fd=14)) LISTEN 0 70 *:33060 *:* users:(("mysqld", pid=534, fd=33))
Semak Pelabuhan Mendengar dengan
lsof
lsof
adalah utiliti baris perintah yang kuat yang menyediakan maklumat mengenai fail yang dibuka oleh proses.
Di Linux, semuanya adalah fail. Anda boleh memikirkan soket sebagai fail yang menulis ke rangkaian.
Untuk mendapatkan senarai semua pelabuhan TCP yang mendengar dengan jenis
lsof
:
sudo lsof -nP -iTCP -sTCP:LISTEN
Pilihan yang digunakan adalah seperti berikut:
-
-n
- Jangan menukar nombor port ke nama pelabuhan.-p
- Jangan selesaikan nama host, tunjukkan alamat berangka.-iTCP -sTCP:LISTEN
- Tunjukkan hanya fail rangkaian dengan keadaan TCP LISTEN.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 445 root 3u IPv4 16434 0t0 TCP *:22 (LISTEN) sshd 445 root 4u IPv6 16445 0t0 TCP *:22 (LISTEN) apache2 515 root 4u IPv6 16590 0t0 TCP *:80 (LISTEN) mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN) mysqld 534 mysql 33u IPv6 19973 0t0 TCP *:33060 (LISTEN) apache2 764 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN) apache2 765 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN) master 929 root 13u IPv4 19637 0t0 TCP *:25 (LISTEN) master 929 root 14u IPv6 19638 0t0 TCP *:25 (LISTEN)
Kebanyakan nama lajur output adalah jelas:
-
COMMAND
,PID
,USER
- Nama, pid dan pengguna yang menjalankan program yang berkaitan dengan port.NAME
- Nombor port.
Untuk mengetahui proses apa yang sedang didengar di port tertentu, misalnya, port
3306
akan anda gunakan:
sudo lsof -nP -iTCP:3306 -sTCP:LISTEN
Menunjukkan output bahawa port
3306
digunakan oleh pelayan MySQL:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN)
Untuk mendapatkan maklumat lanjut, lawati halaman lelaki lsof dan baca mengenai semua pilihan berkuasa lain alat ini.
Kesimpulannya
Kami telah menunjukkan kepada anda beberapa arahan yang boleh anda gunakan untuk memeriksa pelabuhan apa yang sedang digunakan pada sistem anda, dan bagaimana untuk mencari proses yang didengar di pelabuhan tertentu.
terminalSelusin telefon bimbit, termasuk beberapa dari LG Electronics dan Samsung, sudah sedia untuk digunakan dengan teknologi TD-SCDMA (Teknologi Division Division Division Access Multiple Access) yang hanya digunakan di China.

[Bacaan lanjut: Telefon Android terbaik untuk setiap anggaran.
Di tengah-tengah muka jam tangan adalah paparan skrin sentuh 1.4-inci yang digunakan untuk kebanyakan interaksi. Ia digunakan sebagai pad kekunci semasa membuat panggilan, contohnya. Terdapat juga butang di sisi badan telefon.

[Bacaan lanjut: Telefon Android terbaik untuk setiap anggaran. ]
Bagaimana untuk memeriksa (scan) untuk pelabuhan terbuka di linux

Artikel ini menerangkan beberapa pendekatan untuk mengetahui apa port dibuka ke luar pada sistem Linux anda.