개발

서버, 방화벽 | java.net.ConnectExceptionMESSAGE: Connection refused (Connection refused)

AM0530 2021. 4. 28. 12:13

1. 오류상황 : 테스트 서버 접속 안됨.

(오류메세지) 

Caused by: jJava.lang.reflect.InvocationTargetException
...
Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in sqlmaps/empty.xml.  
--- The error occurred while executing query.  
--- Check the  (쿼리) 
--- Check the SQL Statement (preparation failed).  
--- Cause: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 
...
 ** BEGIN NESTED EXCEPTION ** 

java.net.ConnectException
MESSAGE: Connection refused (Connection refused)

STACKTRACE:

java.net.ConnectException: Connection refused (Connection refused)
... 
Caused by: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

 

 * 오류메세지에서는 특정쿼리를 체크하라고 나오지만

쿼리가 원인이 아니다.

 

2. 오류원인 : 

방화벽 해외  IP 차단 정책 설정 

-> 테스트 서버의 내부 IP가 사설 주소로 사용되어서 해외 IP 대역으로 포함되어 차단됨 

 

3. 해결방법 : 

방화벽 순서 변경

// 기존 정책 확인 명령어 
iptables -L -nv --line-num

//기존 규칙 삭제
iptables -D [Chain Name] [Rule Number]

// 규칙 추가
iptables -A [Chain Name] [Option]
//(1111~4444는  PORT 번호 예시) 
예시) iptables -I INPUT 4 -m geoip ! --src-cc KR -p tcp -m multiport --dports 21,1111,2222,3333,4444 -j DROP