Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apakah arahan untuk melihat port proses dalam Linux?

Apakah arahan untuk melihat port proses dalam Linux?

青灯夜游
青灯夜游asal
2022-06-17 14:30:3933852semak imbas

Arahan lihat termasuk: 1. perintah ss, yang boleh menyemak penghunian port proses Sintaksnya ialah "ss -tnlp | grep "nombor port"" 2. perintah netstat, yang boleh memaparkan maklumat berkaitan seperti sebagai port dan proses. Sintaks "netstat -tnlp | grep "nombor port""; penghunian port, sintaks "fuser - v port number/tcp".

Apakah arahan untuk melihat port proses dalam Linux?

Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.

Port ialah pengecam sambungan logik antara proses tertentu pada sistem Linux, termasuk port fizikal dan port perisian. Memandangkan sistem pengendalian Linux ialah perisian, artikel ini hanya membincangkan port perisian. Port perisian sentiasa dikaitkan dengan alamat IP hos dan protokol komunikasi yang berkaitan, jadi port sering digunakan untuk membezakan aplikasi. Kebanyakan perkhidmatan yang melibatkan rangkaian mesti membuka soket untuk mendengar permintaan rangkaian masuk, dan setiap perkhidmatan menggunakan soket yang berasingan.

Soket digunakan dalam kombinasi dengan alamat IP, port perisian dan protokol, dan nombor port boleh digunakan untuk kedua-dua protokol Kawalan Penghantaran (TCP) dan Protokol Datagram Pengguna (UDP) Kedua-dua TCP dan UDP boleh digunakan. Gunakan nombor port antara 0 dan 65535 untuk komunikasi.

Berikut ialah kategori peruntukan port:

  • 0 – 1023: Port biasa dan port sistem

  • 1024 – 49151 : Port Berdaftar Perisian

  • 49152 – 65535: Port dinamik atau port peribadi

Anda boleh menggunakan enam kaedah berikut untuk melihat maklumat port proses

  • ss: Boleh digunakan untuk membuang statistik soket.

  • netstat: Boleh memaparkan senarai soket terbuka.

  • lsof: Boleh menyenaraikan fail yang dibuka.

  • fuser: Menyenaraikan ID proses bagi proses yang mempunyai fail terbuka.

  • nmap: Ia ialah alat pengesanan rangkaian dan pengimbas port.

  • systemctl: ialah pengurus kawalan dan pengurus perkhidmatan sistem sistem.

Di bawah ini kita akan mengetahui nombor port yang digunakan oleh daemon sshd.

Kaedah 1: Gunakan arahan ss

ss biasanya digunakan untuk membuang statistik soket. Ia boleh mengeluarkan maklumat yang serupa dengan output netstat, tetapi ia boleh memaparkan lebih banyak maklumat TCP dan maklumat status daripada alat lain.

Ia juga boleh memaparkan semua jenis statistik soket termasuk PACKET, TCP, UDP, DCCP, RAW, domain Unix, dsb.

# ss -tnlp | grep ssh

Apakah arahan untuk melihat port proses dalam Linux?

Anda juga boleh menggunakan nombor port untuk menyemak.

# ss -tnlp | grep ":22"

Apakah arahan untuk melihat port proses dalam Linux?

Kaedah 2: Gunakan arahan netstat

netstat boleh memaparkan sambungan rangkaian, jadual penghalaan, statistik antara muka, penyamaran sambungan serta ahli multicast.

Secara lalai, netstat menyenaraikan soket terbuka. Jika tiada keluarga alamat ditentukan, soket aktif untuk semua keluarga alamat yang dikonfigurasikan dipaparkan. Tetapi netstat sudah lapuk, dan ss biasanya digunakan sebaliknya.

# netstat -tnlp | grep ssh

Apakah arahan untuk melihat port proses dalam Linux?

Anda juga boleh menggunakan nombor port untuk menyemak.

# netstat -tnlp | grep ":22"

Apakah arahan untuk melihat port proses dalam Linux?

Kaedah 3: Gunakan arahan lsof

lsof boleh menyenaraikan fail terbuka dan menyenaraikan fail yang dibuka pada sistem. Maklumat tentang fail yang dibuka oleh proses.

# lsof -i -P | grep ssh

Apakah arahan untuk melihat port proses dalam Linux?

Anda juga boleh menggunakan nombor port untuk menyemak.

# lsof -i tcp:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1208 root 3u IPv4 20919 0t0 TCP *:ssh (LISTEN)
sshd 1208 root 4u IPv6 20921 0t0 TCP *:ssh (LISTEN)
sshd 11592 root 3u IPv4 27744 0t0 TCP vps.2daygeek.com:ssh->103.5.134.167:49902 (ESTABLISHED)

Kaedah 4: Gunakan arahan fuser

Alat fuser akan memaparkan ID proses proses yang membuka fail pada sistem tempatan dalam keluaran standard.

# fuser -v 22/tcp

Apakah arahan untuk melihat port proses dalam Linux?

Kaedah 5: Gunakan arahan nmap

nmap ("Pemeta Rangkaian") ialah alat untuk pengesanan rangkaian dan alatan sumber terbuka untuk pengauditan keselamatan. Ia pada asalnya direka untuk pengimbasan pantas rangkaian besar, tetapi ia juga berfungsi dengan baik untuk mengimbas hos individu.

nmap menggunakan paket IP mentah untuk menentukan hos yang tersedia pada rangkaian, perkhidmatan mereka (termasuk nama dan versi aplikasi), sistem pengendalian yang sedang dijalankan oleh hos (termasuk maklumat seperti versi sistem pengendalian), Jenis penapis paket atau tembok api, dan banyak maklumat lain.

# nmap -sV -p 22 localhost

Apakah arahan untuk melihat port proses dalam Linux?

Kaedah 6: Gunakan arahan systemctl

systemctl 是 systemd 系统的控制管理器和服务管理器。它取代了旧的 SysV 初始化系统管理,目前大多数现代 Linux 操作系统都采用了 systemd。

# systemctl status sshd
● sshd.service - OpenSSH server daemon
 Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
 Active: active (running) since Sun 2018-09-23 02:08:56 EDT; 6h 11min ago
 Docs: man:sshd(8)
 man:sshd_config(5)
 Main PID: 11584 (sshd)
 CGroup: /system.slice/sshd.service
 └─11584 /usr/sbin/sshd -D

Sep 23 02:08:56 vps.2daygeek.com systemd[1]: Starting OpenSSH server daemon...
Sep 23 02:08:56 vps.2daygeek.com sshd[11584]: Server listening on 0.0.0.0 port 22.
Sep 23 02:08:56 vps.2daygeek.com sshd[11584]: Server listening on :: port 22.
Sep 23 02:08:56 vps.2daygeek.com systemd[1]: Started OpenSSH server daemon.
Sep 23 02:09:15 vps.2daygeek.com sshd[11589]: Connection closed by 103.5.134.167 port 49899 [preauth]
Sep 23 02:09:41 vps.2daygeek.com sshd[11592]: Accepted password for root from 103.5.134.167 port 49902 ssh2

以上输出的内容显示了最近一次启动 sshd 服务时 ssh 服务的监听端口。但它不会将最新日志更新到输出中。

# systemctl status sshd
● sshd.service - OpenSSH server daemon
 Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
 Active: active (running) since Thu 2018-09-06 07:40:59 IST; 2 weeks 3 days ago
 Docs: man:sshd(8)
 man:sshd_config(5)
 Main PID: 1208 (sshd)
 CGroup: /system.slice/sshd.service
 ├─ 1208 /usr/sbin/sshd -D
 ├─23951 sshd: [accepted]
 └─23952 sshd: [net]

Sep 23 12:50:36 vps.2daygeek.com sshd[23909]: Invalid user pi from 95.210.113.142 port 51666
Sep 23 12:50:36 vps.2daygeek.com sshd[23909]: input_userauth_request: invalid user pi [preauth]
Sep 23 12:50:37 vps.2daygeek.com sshd[23911]: pam_unix(sshd:auth): check pass; user unknown
Sep 23 12:50:37 vps.2daygeek.com sshd[23911]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=95.210.113.142
Sep 23 12:50:37 vps.2daygeek.com sshd[23909]: pam_unix(sshd:auth): check pass; user unknown
Sep 23 12:50:37 vps.2daygeek.com sshd[23909]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=95.210.113.142
Sep 23 12:50:39 vps.2daygeek.com sshd[23911]: Failed password for invalid user pi from 95.210.113.142 port 51670 ssh2
Sep 23 12:50:39 vps.2daygeek.com sshd[23909]: Failed password for invalid user pi from 95.210.113.142 port 51666 ssh2
Sep 23 12:50:40 vps.2daygeek.com sshd[23911]: Connection closed by 95.210.113.142 port 51670 [preauth]
Sep 23 12:50:40 vps.2daygeek.com sshd[23909]: Connection closed by 95.210.113.142 port 51666 [preauth]

大部分情况下,以上的输出不会显示进程的实际端口号。这时更建议使用以下这个 journalctl 命令检查日志文件中的详细信息。

# journalctl | grep -i "openssh\|sshd"

Apakah arahan untuk melihat port proses dalam Linux?

相关推荐:《Linux视频教程

Atas ialah kandungan terperinci Apakah arahan untuk melihat port proses dalam Linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn