본문 바로가기

Linux

[setcap/getcap] Linux에서 1024 이하 포트 사용하기

반응형

오늘 rhel 서버에서 80포트의 Node 서비스를 배포하였더니 접속이 안되는 문제가 발생했습니다. 기존에 5000 포트로 실행하였을 때는 정상이었는데 왜 80 포트로는 안되는지 찾아보던 중 linux 서버에서는 일반 사용자 계정이 1024이하 포트를 사용할 수 없다는 것을 알게되었습니다.

 

Linux에서 1024 이하 포트 사용하기

Linux는 1024 이하 port를 서비스에 할당하기 위해서는 root 사용자 권한이 필요하다고 합니다. 하지만 setcap 명령어 사용하여 일반 사용자가 1024 이하 포트 사용이 가능합니다.

 

setcap

setcap 명령어로 1024 이하 포트를 사용할 파일에 CAP_NET_BIND_SERVICE를 설정해주면 됩니다.

sudo /usr/sbin/setcap 'cap_net_bind_service=+ep' /home/.nvm/versions/node/v18.16.0/bin/node

 

setcap 옵션

-e : effective 효력 부여
-p : permitted 허용

 

getcap

설정을 확인하려면 getcap 명령어를 이용한다.

sudo /usr/sbin/getcap /home/.nvm/versions/node/v18.16.0/bin/node
// result: /home/.nvm/versions/node/v18.16.0/bin/node = cap_net_bind_service+ep

 

반응형