Linux의 특정 포트에서 어떤 서비스가 실행되고 있는지 어떻게 알 수 있나요? [복사]

Linux의 특정 포트에서 어떤 서비스가 실행되고 있는지 어떻게 알 수 있나요? [복사]

내 Linux 시스템에서 weblogic 서버를 실행하려고 하는데 다음 오류가 발생합니다.

ERROR: transport error 202: bind failed: Address already in use
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:690]
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)

이 오류는 기본적으로 8453인 디버거 포트가 이미 다른 서비스에서 사용되고 있음을 의미한다고 생각합니다. 특정 포트 번호에서 어떤 서비스가 실행되고 있는지 확인하는 방법은 무엇입니까?

추신: 이 명령을 사용했지만 netstat모든 포트를 차지하는 모든 서비스가 표시됩니다. 여기서는 특정 포트에만 관심이 있습니다.

답변1

두 가지 방법:

  • lsof -i :port -S
  • netstat -a | grep port

넌 할 수있어man lsof또는man netstat필요한 정보를 얻으세요. port검색하려는 포트 번호로 바꾸십시오 .

답변2

fuser다음 을 사용할 수 있습니다 lsof.

fuser 8453/tcp
lsof -i TCP:8453

더 많은 정보를 원할 경우 fuser이 플래그를 사용할 수도 있습니다 -v. 예:fuser -v 8453/tcp

답변3

그만한 가치가 있는 경우... 사용 중인 버전 netstat(특히 GNU netstat)에 따라 다음을 사용할 수 있습니다.

netstat -punta | grep <port>

이는 ESTABLISHED 및 LISTEN 상태의 UDP 및 TCP 연결을 표시하고 UNIX 로컬 소켓을 무시합니다. 최종 결과는 훌륭하고 깔끔하고 작은 결과 세트입니다.

-p플래그는 포트를 사용하는 프로세스 ID와 프로세스 이름을 제공합니다.

플래그 -u에 udp가 표시됩니다.

-n플래그는 숫자 주소에 사용됩니다.

-t플래그는 TCP를 표시합니다.

-a청취 소켓 및 비청취 소켓 표시

편집 - 이 명령은 최신 EL 배포판에서 대체 ss되었습니다.netstat

답변4

센토스에서

/usr/sbin/lsof -i tcp:8453 (lsof -i protocol:port)

우분투에서

/usr/bin/lsof -i tcp:8453

또는 필터를 사용하여 netstat의 결과 범위를 좁힐 수도 있습니다.

관련 정보