-
[IPv6] ENETUNREACHTIL 2024. 4. 22. 14:33
nest를 사용하는 관제 서버에서 telegram api를 이용하고,
api 메소드 중 sendMessage를 사용해서 보낼 떄
AggregateError
code: 'ENETUNREACH',
code: 'ETIMEDOUT',
두가지 오류로 인해 제대로 작동하지 않던 현상
처음엔 간헐적으로 발생하다가, 어느 시점부터는 대부분 이 오류로 인해 메세지가 가지 않았다.
ETIMEDOUT은 ENETUNREACH로 인해 발생한 오류고,
결국엔 ENETUNREACH를 해결하면 됨.
IPv6를 사용하지 않도록 서버 인스턴스에서 아래 명령어를 입력하면 귀신같이 해결되긴 함.
sudo sysctl net.ipv6.conf.all.disable_ipv6=1
물론 임시방편이긴 한데, 강력하고 편한 방법이라 IPv6에서도 문제가 없도록 세팅하는것보다 그냥 이렇게 두는것도 나쁘지 않을거같다...
아래는 영구적용방법
sudo vi /etc/sysctl.conf // sysctl.conf 파일 맨 아래에 아래 라인 추가 net.ipv6.conf.all.disable_ipv6 = 1 //저장 후 아래 명령어 실행 sudo sysctl -p
근본적 해결 방법내 관제서버는 동일한 인스턴스에서 nginx를 사용하고 있었고,nginx의 서버블록 설정에listen [::]:80;listen [::]:443 ssl ipv6only=on;(ipv6only=on 구문은 옵션임, 관례적으로 쓰는게 좋긴 함)와 같은 IPv6 설정이 되어있지 않았기 때문이었다이 설정을 해주고,인스턴스의 보안규칙을 IPv6에 대해서도 적절히 설정해주면 해결 완료이거아니네 허허
'TIL' 카테고리의 다른 글
[서버] http 502 서버 메모리 부족 (0) 2024.04.30 [https] redirect (0) 2024.04.17 [https] nginx로 간단하게 https 설정 (0) 2024.04.16 [Nest] 모듈 export (0) 2024.04.01 [.env] 환경변수 로드 순서 (0) 2024.03.26