https://gigglehd.com/gg/soft/10708134
이 글과 약간 비슷한 느낌입니다만 OS와 설정 자체가 다른 것 같아서 재문의합니다.
이번에는 시놀로지 DSM에서 도커를 실행하는 것이 아닌 우분투 20.04.2 LTS에서 도커 컨테이너를 실행했습니다. 앞으로는 시놀로지 DSM에서 GUI로 도커 컨테이너를 생성하는 것이 아니라 리눅스 CLI로 실행하거나 도커 컴포즈로 실행하게 될거니까요. 그래서 조금 더 도커에 친숙해지고자 연습용으로 마인크래프트 서버를 열어보는 것을 목표로 하였습니다.
먼저 ESXi에서 우분투 20.04.2 LTS를 설치한 후 sudo apt update && sudo apt upgrade -y 를 통하여 모든 업데이트를 마친 후에 https://blog.dalso.org/linux/ubuntu-20-04-lts/13118 이 글을 통하여 도커를 설치하고 글에서 나온 portainer 컨테이너도 설치했습니다. (GUI로 컨테이너 상태가 어떤지 빠르게 확인하기 위해서 설치했습니다.) 일단 아무런 막힘 없이 도커 설치까지 정상적으로 완료되었습니다.
그리고 마인크래프트 서버 이미지 ( https://hub.docker.com/r/itzg/minecraft-server )를 pull 하여 이미지를 다운로드 한 후에 컨테이너를 만들었습니다. 호스트 포트는 11111, 컨테이너 포트는 25565(마인크래프트 서버 포트 디폴트 설정)로 하여 컨테이너를 만들었는데 내부망에서는 접속이 잘 되는데 외부에서는 포트포워드도 정상적으로 했음에도 불구하고 접속이 안됩니다.
사실은 라우터에서 HAProxy로 처리하려고 했으나 마인크래프트 서버는 http 프로토콜을 쓰지 않기 때문에 HAProxy를 사용할 수 없다는 글( https://gigglehd.com/gg/game/9055104 )을 봐서 몇 번 시도하다가 포기했습니다. 그래서 serv 서브도메인도 시도해보고 CNAME, A 네임 까지 전부 해봤는데 외부에서 접속 자체가 안되니 더 뭘 시도해야하나 싶습니다.
아마 전처럼 bridge에 연결되어있는 컨테이너를 host로 연결하면 정상적으로 될 것 같긴한데 컨테이너 네트워크에 bridge에 디폴트로 연결되는 이유가 분명히 있으니까 해놨겠죠? 굳이 host로 옮기지 않아도 정상적으로 실행되었으면 좋겠어서 질문글 남깁니다.
참고로 전에 쓴 글에서는 linuxserver/swag 컨테이너를 같이 사용하는 것을 권장하던데 이미 라우터에서 HAProxy라는 리버스 프록시를 사용하기 때문에 굳이 사용해야하나 싶긴 합니다. 또한 swag도 443과 80 포트를 사용하는 것 같아서 마인크래프트 서버에 맞지 않을 것 같기도 하구요.
글이 조금 난잡한데 대충 질문을 정리해보자면 컨테이너 네트워크가 연결되어있는 bridge를 어떻게 해야 내부망이 아닌 외부망 인터넷 연결이 가능하게 되는가? 가 될 것 같습니다. 감사합니다.
----
해결했습니다!!
원인은 그 포트가 제가 가끔 테스트용으로 사용하는 포트다보니 pfSesne에서 HAProxy에서 백엔드 서버로 연결되어있던 것이 원인이었습니다. HAProxy에서 백엔드 서버를 삭제하니 정상적으로
HAProxy로 백엔드를 마크 서버 포트에 연결되었습니다. 전혀 다른곳에서의 문제였네요. ㄷㄷ; 아무튼 도와주신 분들 정말 감사합니다!