운영중입니다

lsof 사용법 가이드 – 프로세스와 연결된 파일 확인하기 본문

리눅스

lsof 사용법 가이드 – 프로세스와 연결된 파일 확인하기

https443 2025. 9. 29. 21:23

✅ 1. lsof 는 무엇인가?

lsof는 List Open Files의 줄임말.
리눅스/유닉스에서 “모든 것은 파일”이라는 철학 때문에, 일반 파일뿐 아니라 디렉토리, 라이브러리, 파이프, 장치 파일, 네트워크 소켓까지 모두 파일로 취급됨.
즉, lsof를 사용하면 현재 실행 중인 프로세스가 열고 있는 모든 파일과 연결을 확인할 수 있음.


✅ 2. 주요 용도

  • 네트워크 포트 추적: 어떤 프로세스가 80, 443 같은 포트를 사용 중인지 확인할 때 유용함.
  • 파일 잠금 문제 해결: 특정 파일을 삭제하거나 수정하려고 할 때 어떤 프로세스가 잡고 있는지 확인 가능함.
  • 보안 점검: 외부와 몰래 통신하는 프로세스를 추적할 때 사용함.
  • 디버깅/운영: 서비스가 어떤 설정 파일이나 라이브러리를 로딩하는지 확인할 때 활용함.

즉, 시스템 관리와 보안, 문제 해결, 디버깅 등 다양한 상황에서 필요함.

 


✅ 3. 기본 사용법

📌 대표적인 옵션과 예시를 정리함.

   3.1 특정 프로세스가 연 파일 보기

lsof -p <PID>


#PID를 가진 프로세스가 열고 있는 파일, 라이브러리, 소켓 등을 모두 보여줌.

 

 

  3.2 모든 네트워크, 특정 포트, 사용 중인 프로세스 확인

 
lsof -i             # 모든 네트워크 소켓 확인

lsof -i :80         # 특정 포트(80) 사용 중인 프로세스 확인

lsof -i TCP:22-80   # TCP 포트 범위 22~80 사용 프로세스 확인

lsof -i TCP         # TCP 소켓 사용 중인 모든 프로세스 확인

lsof -i UDP         # UDP 소켓 사용 중인 모든 프로세스 확인

#네트워크 트래픽과 관련된 문제를 추적하거나 서비스 포트 확인할 때 필수임.

 

   3.3 특정 사용자 프로세스 확인

lsof -u <사용자 계정>

#특정 계정이 연 파일과 소켓만 필터링해서 보여줌.
#멀티유저 서버에서 각 사용자의 프로세스 상태를 확인할 때 유용함.

 


  3.4 특정 파일을 열고 있는 프로세스 확인

lsof /경로/파일명

#해당 파일을 열고 있는 프로세스를 즉시 확인 가능.
#파일 삭제/수정이 안 될 때, 어떤 프로세스가 잡고 있는지 확인하는 데 사용함.

💡 참고

  • lsof는 옵션이 매우 다양하고 조합도 많음.
  • 모든 사용법을 다 나열하기는 어려움.
  • 기본적으로 PID, 사용자, 파일/소켓, 포트 상태 확인 정도만 알아도 대부분 상황에서 충분히 활용 가능함.

✅ 4. lsof 사용 시 함께 활용하는 명령어 및 IP 차단 방법

구분 명령어  / 설정 의미   사용 용도
4.1 top 시스템 전체 프로세스 및 자원 사용 현황 모니터링 lsof로 특정 프로세스를 확인한 뒤 CPU, 메모리 사용량을 종합적으로 분석
4.2 geoiplookup <IP> (GeoIP 설치 시) 특정 IP 주소의 국가 및 지역 정보를 조회 lsof로 확인한 외부 접속 IP의 위치를 파악하여 보안 점검에 활용
4.3 netstat -tnap 또는 ss -tnap 현재 열려 있는 네트워크 포트 및 연결 상태 확인 lsof와 함께 네트워크 연결 상태를 종합적으로 분석
4.4.1 vim /etc/oops-firewall/user.conf
%-A INPUT -s <IP 대역대> -j DROP
service oops-firewall restart
oops-firewall 설정 파일을 수정해 특정 IP 대역 차단 oops-firewall 환경에서 불필요한 외부 접속 차단 (사용자님 적용)
4.4.2 iptables -A INPUT -s <IP 대역대> -j DROP
service iptables save
service iptables restart
iptables 규칙 추가 후 저장 CentOS 5/6 등 구버전 서버에서 IP 대역 차단 시 사용
4.4.3 firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="<IP 대역대>" reject'
firewall-cmd --reload
firewalld 환경에서 특정 IP 대역 접근 거부 CentOS 7+, RHEL 7+, Rocky/AlmaLinux 등 최신 계열 서버에서 사용


👉 정리

 

  • 공통적으로 lsof로 프로세스·연결 정보를 확인 후, top/geoiplookup/netstat(ss)와 함께 활용하면 원인 분석이 빠름.
  • IP 차단은 서버 환경에 따라 oops-firewall / iptables / firewalld 중 적절한 방법 선택.

* oops-firewall 사용 방법
https://https443.tistory.com/11