>  기사  >  운영 및 유지보수  >  Linux에서 프로세스 포트를 보는 명령은 무엇입니까?

Linux에서 프로세스 포트를 보는 명령은 무엇입니까?

青灯夜游
青灯夜游원래의
2022-06-17 14:30:3933802검색

View 명령에는 다음이 포함됩니다. 1. "ss -tnlp | grep "port number"" 구문을 사용하여 프로세스 포트의 점유를 확인할 수 있는 ss 명령 2. 포트 및 프로세스와 같은 관련 정보를 표시할 수 있는 netstat 명령 , "netstat - tnlp | grep "port number"" 구문을 사용하면 3. lsof 명령을 사용하여 포트 점유를 확인할 수 있습니다. 구문은 "lsof -i tcp:port number"입니다. 포트 점유, 구문 "fuser -v 포트 번호/tcp".

Linux에서 프로세스 포트를 보는 명령은 무엇입니까?

이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.

포트는 물리적 포트와 소프트웨어 포트를 포함하여 Linux 시스템의 특정 프로세스 간의 논리적 연결 식별자입니다. Linux 운영 체제는 소프트웨어이므로 이 문서에서는 소프트웨어 포트에 대해서만 설명합니다. 소프트웨어 포트는 항상 호스트의 IP 주소 및 관련 통신 프로토콜과 연결되므로 포트는 종종 애플리케이션을 구별하는 데 사용됩니다. 네트워킹과 관련된 대부분의 서비스는 들어오는 네트워크 요청을 수신하기 위해 소켓을 열어야 하며 각 서비스는 별도의 소켓을 사용합니다.

소켓은 IP 주소, 소프트웨어 포트 및 프로토콜과 함께 사용됩니다. 포트 번호는 TCP(전송 제어 프로토콜) 및 UDP(사용자 데이터그램 프로토콜) 프로토콜에 모두 적용 가능합니다. TCP와 UDP 모두 0~65535를 사용할 수 있습니다. 의사소통하기.

다음은 포트 할당 범주입니다.

  • 0 – 1023: 공용 포트 및 시스템 포트

  • 1024 – 49151: 소프트웨어의 등록 포트

  • 49152 – 65535: 동적 포트 또는 개인 포트

다음 6가지 방법을 사용하여 프로세스의 포트 정보를 볼 수 있습니다

  • ss: 소켓 통계를 덤프하는 데 사용할 수 있습니다.

  • netstat: 열린 소켓 목록을 표시할 수 있습니다.

  • lsof: 열린 파일을 나열할 수 있습니다.

  • fuser: 파일이 열려 있는 프로세스의 프로세스 ID를 나열합니다.

  • nmap: 네트워크 감지 도구이자 포트 스캐너입니다.

  • systemctl: systemd 시스템의 제어 관리자이자 서비스 관리자입니다.

아래에서는 sshd 데몬이 사용하는 포트 번호를 알아 보겠습니다.

방법 1: ss 명령 사용

ss는 일반적으로 소켓 통계를 덤프하는 데 사용됩니다. netstat의 출력과 유사한 정보를 출력할 수 있지만 다른 도구보다 더 많은 TCP 정보 및 상태 정보를 표시할 수 있습니다.

PACKET, TCP, UDP, DCCP, RAW, Unix 도메인 등을 포함한 모든 유형의 소켓 통계도 표시할 수 있습니다.

# ss -tnlp | grep ssh

Linux에서 프로세스 포트를 보는 명령은 무엇입니까?

포트번호를 통해서도 확인이 가능합니다.

# ss -tnlp | grep ":22"

Linux에서 프로세스 포트를 보는 명령은 무엇입니까?

방법 2: netstat 명령 사용

netstat는 네트워크 연결, 라우팅 테이블, 인터페이스 통계, 가장된 연결 및 멀티캐스트 구성원을 표시할 수 있습니다.

기본적으로 netstat는 열린 소켓을 나열합니다. 주소 계열이 지정되지 않으면 구성된 모든 주소 계열에 대한 활성 소켓이 표시됩니다. 그러나 netstat는 오래되었으며 일반적으로 ss가 대신 사용됩니다.

# netstat -tnlp | grep ssh

Linux에서 프로세스 포트를 보는 명령은 무엇입니까?

포트번호를 통해서도 확인이 가능합니다.

# netstat -tnlp | grep ":22"

Linux에서 프로세스 포트를 보는 명령은 무엇입니까?

방법 3: lsof 명령 사용

lsof는 열린 파일을 나열하고 시스템의 프로세스에서 열린 파일에 대한 정보를 나열할 수 있습니다.

# lsof -i -P | grep ssh

Linux에서 프로세스 포트를 보는 명령은 무엇입니까?

포트번호를 통해서도 확인이 가능합니다.

# 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)

방법 4: 퓨저 명령 사용

퓨저 도구는 로컬 시스템에 파일이 열려 있는 프로세스의 프로세스 ID를 표준 출력에 표시합니다.

# fuser -v 22/tcp

Linux에서 프로세스 포트를 보는 명령은 무엇입니까?

방법 5: nmap 명령 사용

nmap(“Network Mapper”)은 네트워크 감지 및 보안 감사를 위한 오픈 소스 도구입니다. 원래는 대규모 네트워크를 빠르게 검색하도록 설계되었지만 개별 호스트를 검색하는 데에도 좋은 성능을 발휘합니다.

nmap은 원시 IP 패킷을 사용하여 네트워크에서 사용 가능한 호스트, 해당 서비스(애플리케이션 이름 및 버전 포함), 호스트가 실행 중인 운영 체제(운영 체제 버전 등 정보 포함), 사용 중인 패킷 필터 또는 다른 많은 정보 중에서 방화벽 유형.

# nmap -sV -p 22 localhost

Linux에서 프로세스 포트를 보는 명령은 무엇입니까?

방법 6: 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에서 프로세스 포트를 보는 명령은 무엇입니까?

相关推荐:《Linux视频教程

위 내용은 Linux에서 프로세스 포트를 보는 명령은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.