집 >운영 및 유지보수 >리눅스 운영 및 유지 관리 >Linux에서 프로세스 포트를 보는 명령은 무엇입니까?
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".
이 튜토리얼의 운영 환경: 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
포트번호를 통해서도 확인이 가능합니다.
# ss -tnlp | grep ":22"
방법 2: netstat 명령 사용
netstat는 네트워크 연결, 라우팅 테이블, 인터페이스 통계, 가장된 연결 및 멀티캐스트 구성원을 표시할 수 있습니다.
기본적으로 netstat는 열린 소켓을 나열합니다. 주소 계열이 지정되지 않으면 구성된 모든 주소 계열에 대한 활성 소켓이 표시됩니다. 그러나 netstat는 오래되었으며 일반적으로 ss가 대신 사용됩니다.
# netstat -tnlp | grep ssh
포트번호를 통해서도 확인이 가능합니다.
# netstat -tnlp | grep ":22"
방법 3: lsof 명령 사용
lsof는 열린 파일을 나열하고 시스템의 프로세스에서 열린 파일에 대한 정보를 나열할 수 있습니다.
# lsof -i -P | grep ssh
포트번호를 통해서도 확인이 가능합니다.
# 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
방법 5: nmap 명령 사용
nmap(“Network Mapper”)은 네트워크 감지 및 보안 감사를 위한 오픈 소스 도구입니다. 원래는 대규모 네트워크를 빠르게 검색하도록 설계되었지만 개별 호스트를 검색하는 데에도 좋은 성능을 발휘합니다.
nmap은 원시 IP 패킷을 사용하여 네트워크에서 사용 가능한 호스트, 해당 서비스(애플리케이션 이름 및 버전 포함), 호스트가 실행 중인 운영 체제(운영 체제 버전 등 정보 포함), 사용 중인 패킷 필터 또는 다른 많은 정보 중에서 방화벽 유형.
# nmap -sV -p 22 localhost
방법 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에서 프로세스 포트를 보는 명령은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!