다음 명령을 사용하여 포트 8088을 통해 내 컴퓨터에 IP를 연결하고 싶습니다.
18.23.292.9
포트 8088에서 Explorer 서비스를 실행하는 컴퓨터입니까?
ss -tanp | grep 8088 | grep ESTAB
ESTAB 0 0 18.23.292.9:8088 118.2.291.2:52874 users:(("java",pid=13970,fd=829))
ESTAB 0 0 18.23.292.9:8088 110.6.52.2:56379 users:(("java",pid=13970,fd=668))
ESTAB 0 0 18.23.292.9:8088 110.6.52.2:52337 users:(("java",pid=13970,fd=666))
ESTAB 0 0 18.23.292.9:8088 118.2.280:34088 users:(("java",pid=13970,fd=790))
ESTAB 0 0 18.23.292.9:8088 110.6.52.2:59794 users:(("java",pid=13970,fd=660))
ESTAB 0 0 18.23.292.9:8088 110.6.52.2:59415 users:(("java",pid=13970,fd=665))
ESTAB 0 0 18.23.292.9:8088 118.2.279:53610 users:(("java",pid=13970,fd=750))
ESTAB 0 0 18.23.292.9:8088 110.6.52.2:63875 users:(("java",pid=13970,fd=661))
ESTAB 0 0 18.23.292.9:8088 110.6.52.2:50267 users:(("java",pid=13970,fd=667))
이제 원격 시스템의 어떤 애플리케이션/서비스가 실제로 포트 8088에 연결되어 있는지 알고 싶습니다.
그 이유는 포트 8088에 대한 많은 연결이 있고 어떤 프로세스가 연결을 시도하는지 알고 싶기 때문입니다.
기계는 다음과 같습니다 118.2.291.2
. 110.6.52.2
그동안 연결된 컴퓨터의 IP와 포트를 캡처하는 다음 스크립트를 성공적으로 만들지 못했습니다.
#!/bin/bash
port=` netstat -anp | grep :8088 | grep ESTAB | head -1 | awk '{print $5}' | sed s'/:/ /g' | awk '{print $2}' ` ; IP=` netstat -nape | grep $port | awk '{print $5}' | sed s'/:/ /g' | awk '
{print $1}' `
export PORT=` netstat -nape | grep $port | awk '{print $5}' | sed s'/:/ /g' | awk '{print $2}' `
echo $IP
echo $PORT
어쩌면 다른 좋은 예가 있을 수도 있습니다.
이것은 현재 Linux에서 특정 포트를 사용하고 있는 프로세스를 찾는 방법에 대한 좋은 예입니다. 연결된 머신 목록도 얻습니다(오른쪽).
lsof -i tcp:8088
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 13970 yarn 396u IPv4 1052681821 0t0 TCP *:radan-http (LISTEN)
java 13970 yarn 559u IPv4 1201044836 0t0 TCP master02.bigdata130.cgnt:radan-http->worker01.TATA130.cgnt:47506 (ESTABLISHED)
java 13970 yarn 617u IPv4 1201044953 0t0 TCP master02.TATA130.com:radan-http->master03.TATA130.com:33736 (ESTABLISHED)
java 13970 yarn 621u IPv4 1200925788 0t0 TCP master02.TATA130.com:radan-http->master01.TATA130.com:37762 (ESTABLISHED)
java 13970 yarn 631u IPv4 1201038517 0t0 TCP master02.TATA130.com:radan-http->master02.TATA130.com:56258 (ESTABLISHED)
java 13970 yarn 634u IPv4 1201046323 0t0 TCP master02.TATA130.com:radan-http->master02.TATA130.com:56272 (ESTABLISHED)
java 13970 yarn 635u IPv4 1201038518 0t0 TCP master02.TATA130.com:radan-http->master02.TATA130.com:56270 (ESTABLISHED)
java 13970 yarn 664u IPv4 1201049689 0t0 TCP master02.TATA130.com:radan-http->kafka03.TATA130.com:39486 (ESTABLISHED)
java 13970 yarn 693u IPv4 1201050710 0t0 TCP master02.TATA130.com:radan-http->worker02.TATA130.com:39090 (ESTABLISHED)
java 18394 ambari 1511u IPv4 1201046322 0t0 TCP master02.TATA130.com:56258->master02.TATA130.com:radan-http (ESTABLISHED)
java 18394 ambari 1515u IPv4 1201049634 0t0 TCP master02.TATA130.com:56270->master02.TATA130.com:radan-http (ESTABLISHED)
java 18394 ambari 1516u IPv4 1201008383 0t0 TCP master02.TATA130.com:41112->master01.TATA130.com:radan-http (ESTABLISHED)
java 18394 ambari 1517u IPv4 1201038519 0t0 TCP master02.TATA130.com:56272->master02.TATA130.com:radan-http (ESTABLISHED)
이는 사용자의 어떤 PID가 대상 시스템의 포트를 사용하고 있는지 아는 경우에도 유용합니다.
예를 들어
java 13970 yarn 617u IPv4 1201044953 0t0 TCP master02.TATA130.com:radan-http->master03.TATA130.com:33736 (ESTABLISHED) PID=32424 user=root
java 13970 yarn 621u IPv4 1200925788 0t0 TCP master02.TATA130.com:radan-http->master01.TATA130.com:37762 (ESTABLISHED) PID=324424 user=yarn
java 13970 yarn 631u IPv4 1201038517 0t0 TCP master02.TATA130.com:radan-http->master02.TATA130.com:56258 (ESTABLISHED) PID=324224 user=yarn
아니면 이렇게 설명할 수도 있겠네요
줄을 서자
java 13970 yarn 617u IPv4 1201044953 0t0 TCP master02.TATA130.com:radan-http->master03.TATA130.com:33736 (ESTABLISHED)
따라서 master03 시스템의 포트는 33736입니다.
따라서 master03 머신에 액세스하여 실행하면
netstat -nlp | grep :33736
tcp 0 0 0.0.0.0:33736 0.0.0.0:* LISTEN 13970/java
그리고
ps -ef | grep 13970 | grep -v grep | awk '{print $1}'
yarn
그래서 내 질문은 - 예상된 결과를 제공하기 위해 다른 명령에 파이프된 이 명령을 사용할 수 있습니까 lsof -i tcp:8088
? 아니면 스크립트로 다른 아이디어를 얻을 수 있습니까?
기대되는 성과
java 13970 yarn 617u IPv4 1201044953 0t0 TCP master02.TATA130.com:radan-http->master03.TATA130.com:33736 (ESTABLISHED) PID=32424 user=root
java 13970 yarn 621u IPv4 1200925788 0t0 TCP master02.TATA130.com:radan-http->master01.TATA130.com:37762 (ESTABLISHED) PID=324424 user=yarn
java 13970 yarn 631u IPv4 1201038517 0t0 TCP master02.TATA130.com:radan-http->master02.TATA130.com:56258 (ESTABLISHED) PID=324224 user=yarn
답변1
나는 다른 방법으로 할 것입니다.
나는 가정한다
- 원격 호스트에 접속할 수 있으며,
- 원격 호스트는 유닉스입니다.
빨리 달려
ss -tanp | awk '$5 == "18.23.292.9:8088"'
원격 호스트에서.
- 또한 NAT가 설정되지 않았다고 가정합니다.