본문 바로가기

Linux

[Linux] java.net.BindException: Permission denied <null>:80

반응형

리눅스에서 Tomcat 접속 포트를 80으로 한 뒤에 일반 사용자 계정으로 startup 했을때 발생하는 문제이다.

리눅스의 경우 1024 이하의 포트는 well-known port(잘 알려진 포트)라고 해서 루트 권한으로만 실행이 가능하다.


[해결책]

1. root 권한으로 실행
  - root 계정으로 실행하는것은 보안정책상 추천하지 않는다.

2. apache2 연동
  - 다중 톰캣 연동 및 로드밸런싱등을 이용할 수 있음. 추천.

3. iptable을 이용한 포트 포워딩
  - 담당자가 바뀔경우 port 추적관리 어려움이 따른다.

  - 포트 포워딩 방법 : iptable에 아래내용 추가

 iptables -t nat -A OUTPUT -d localhost -p tcp --dport 80 -j REDIRECT --to-ports 8080
 iptables -t nat -A OUTPUT -d 서버IP -p tcp --dport 80 -j REDIRECT --to-ports 8080
 iptables -t nat -A PREROUTING -d 서버IP -p tcp --dport 80 -j REDIRECT --to-ports 8080