Rumah > Artikel > Operasi dan penyelenggaraan > Apakah arahan untuk melihat port proses dalam Linux?
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".
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
Anda juga boleh menggunakan nombor port untuk menyemak.
# ss -tnlp | grep ":22"
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
Anda juga boleh menggunakan nombor port untuk menyemak.
# netstat -tnlp | grep ":22"
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
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
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
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"
相关推荐:《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!