728x90
problem
윈도우 os 환경에서 WSL 안에 Docker 로 띄운 Kafka 에 메세지를 Publish 하려고 한다.
그림으로 설명 하자면...
데이터가 넘어야 할 산이 매우 많았다.
solution
순서
1. 공유기 포트 포워딩
2. 윈도우 방화벽 설정
3. WSL 포트 포워딩 ( 윈도우 -> WSL )
4. Docker 포트 매핑
5. KAFKA_ADVERTISED_LISTENERS 설정
1. 공유기 포트포워딩
192.168.0.1 에 접속하여 포트포워딩 설정을 해준다.
2. window 내부 포트 열기
고급 보안이 포함된 Windows Defender 방화벽 -> 인바운드 규칙 -> 새 규칙을 추가 해준다.
3.WSL 포트 포워딩
Widows 의 power Shell 을 관리자 권한으로 실행 시키고 windows 포트와 WSL 포트를 매핑 시켜준다
netsh interface portproxy add v4tov4 listenport=<Windows_port> listenaddress=0.0.0.0 connectport=<WSL_port> connectaddress=<WSL IP>
4. 도커 포트 매핑
도커 컨테이너를 올릴때 8080:8080 이 부분을 매핑 시켜준다.
4 -1. Kafka 외부 연결
이 부분때문에 글을 쓰게 되었다.
KAFKA_ADVERTISED_LISTENERS: EXTERNAL://공인IP:포트
카프카는 외부 요청을 받을때 설정을 해주는 부분이 있는데
외부에서 59로 들어오는 요청을 공유기에서 9991 로 포트포워딩을 해서 받았으니,
카프카에서도 9991 로 받아오는줄 알았다.
KAFKA_ADVERTISED_LISTENERS: EXTERNAL://공인IP:포트
위 옵션은 최초 요청을 받아오는 Ip와 port 이다.
여기서 혼란스러운 Ip 들이 있었는데
- 요청ip:요청port
- 요청ip:포워딩된port
- 내부ip:요청port
- 내부ip:내부port
- wsl_ip:내부port
아무것도 아니고 최초 요청ip 와 port 이다. 중간에 포트가 뒤바뀌더라도
KAFKA_ADVERTISED_LISTENERS: 옵션에 들어갈 Ip 와 port 는
네이버에 검색해서 나오는 ip 와 들어온 port 이다
728x90
'개-발 > Infra' 카테고리의 다른 글
[aws] S3 bucket 버킷 복제 하기 for macOS (0) | 2024.10.17 |
---|---|
[Kafka] 자주 쓰는 명령어 (0) | 2024.10.02 |
[NAS] 시놀로지 Nas 도메인 설정 (0) | 2024.08.20 |
[Docker] 이미 생성된 컨테이너의 포트 바꾸기 (0) | 2024.08.20 |
[Kafka] Kafka Transaction (0) | 2024.07.11 |