반응형
오늘 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
반응형
'Linux' 카테고리의 다른 글
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! (0) | 2022.10.24 |
---|---|
[Tmux] MacOS에서 Tmux 설치 및 사용하기 (0) | 2022.03.07 |
[Linux] Nginx 설치하기, 버전 확인하기 (0) | 2021.11.05 |
[Linux] pm2 설치하기 (0) | 2021.11.05 |
[Linux] nvm을 이용하여 node 설치 확인하기 (0) | 2021.11.05 |