Ubuntu/Debian의 lsof 명령에서 아래와 같은 줄이 많이 표시됩니다.
PROGRAM 829 root 140u sock 0,8 0t0 244182 protocol: TCP
이 줄은 무엇입니까?
실패한 TCP 연결 시도의 결과일 수 있습니까?
답변1
lsof
이 줄은 TCP 소켓에 대한 추가 정보를 찾을 수 없을 때 표시됩니다 . TCP 소켓인 것은 알지만 그 이상은 알 수 없습니다.
제가 생각할 수 있는 이유는 두 가지입니다.
가능성 없음: 소켓이 여전히 수신하지도 않고 연결하지도 않습니다. 예를 들어 서버나 클라이언트가 사용됩니다.
socket(AF_INET, SOCK_STREAM, 0)
TCP 소켓을 생성했지만 아직 호출하지 않았습니다.listen(2)
또는connect(2)
. 이는 리소스 부족이나 소프트웨어 버그로 인해 발생할 수 있습니다.아마도 오늘날에는
lsof
다른 프로세스에서 실행되는 프로세스를 볼 수 있습니다.네트워크 네임스페이스, 일반적으로 컨테이너(Docker, LXC, LXD ...)에 있으므로lsof
관련 정보에 액세스할 수 없으며 표시하지 않습니다.lsof
그런 다음 프로세스와 동일한 네트워크 네임스페이스에서 실행해야 합니다 . 그만큼lsns
그리고nsenter
명령은 이를 위해 큰 도움이 될 수 있습니다. 귀하의 경우에는 아마도 작동할 것입니다.nsenter -t 829 --net lsof -n -p 829
일반적인 경우에는 수신 포트나 관련 주소와 같은 추가 정보가 표시되거나 대신 lsof
표시됩니다 IPv4
. 아직 진행 중인 연결도 관련된 주소와 함께 표시됩니다 .IPv6
sock
SYN_SENT