YoungSoo

포트포워딩과 MySQL 외부 접속 허용 본문

프로젝트

포트포워딩과 MySQL 외부 접속 허용

YoungSooSoo 2023. 1. 17. 17:33

포트포워딩(port forwarding)은 컴퓨터 네트워크 상에서 패킷이 방화벽이나 라우터 같은 네트워크 게이트를 지날 때 IP 주소와 포트 번호 결합의 통신 요청을 다른 곳으로 넘겨주는 네트워크 주소 변환의 응용이라고 볼 수 있는데 간단하게 말해 포트를 전달해 주는 것이다.

이것을 사용하는 이유는 MySQL을 외부에서 사용하고 싶을 때 IP주소를 개인 노트북의 주소와 연결해줘야 하기 때문이다.

지금부터 MySQL에 외부 접속을 해보려고 합니다.

저는 Docker에서 mysql 이미지를 받아 컨테이너를 실행시켜 DB를 사용하고 있고 Window10 OS를 사용 중이라서 먼저 WSL을 설치 및 사용법을 알아보겠습니다.

WSL을 사용하기 전에 가상화를 지원하는지 아닌 지를 먼저 알아야 하기 때문에 사양을 알아보아야 한다.

window 검색에서 pc정보를 검색하면 Windows 사양이라는 곳에 버전에 20H1 버전 이상이어야 합니다. 저는 22H2이고 가상화를 지원하기 때문에 그냥 진행했습니다.

먼저 window powershell를 열어 DISMMicrosoft-Windows-Subsystem-Linux 기능을 활성화시켜주고

다음 명령어로 VirtualMachinePlatform 기능을 활성화시켜 줍니다.

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

그다음 wsl 버전을 2로 업데이트해 주기 위해서 윈도우의 명령 프롬프트를 열어 다음 명령어를 실행시켜 준다.

wsl --set-default wsl --set-default-version 2

그다음 Microsoft Store에서 ubuntu를 다운로드하여준다.

ubuntu에서 다음 명령어를 통해 VERSION이 2라면 버전 설정이 잘 된 것이다.

wsl --set-version Ubuntu 2

wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         2

그리고 ubuntu에서 sshd server를 활성화시켜주기 위해서 아래 명령어를 입력해 수정해주어야 한다.

sudo apt update
sudo apt upgrade

#ssh 설치
sudo apt install openssh-server

#read-only라고 뜨면 권한이 없어서 수정이 안 되는 것이므로 sudo를 붙여주어야 한다.
sudo vim /etc/ssh/sshd_config

Port 22
PermitRootLogin no
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
PasswordAuthentication yes
X11Forwarding yes
UseDNS no

주석이 되어있는 것들은 주석을 제거해주어야 하고 바꿔야 하는 값은 바꿔주어야 한다.

이 작업이 완료되었으면 다음 명령어를 통해 ssh 서비스를 실행시켜 준다

sudo service ssh start

이때 DB서버가 열려있어야 하고 저는 docker 컨테이너를 실행시켜 둔 상태였습니다.

윈도우에서 포트포워딩을 위해서 방화벽 규칙 추가해 줍니다.

윈도우 방화벽 → 고급 설정 → 인바운드 규칙 → 새 규칙 → 포트 → (TCP, 특정로컬포트=3306, 22, 80) → 나머진 default로 하고 마지막에 나오는 이름도 마음대로 하시면 됩니다.

마지막으로 포트포워딩을 해야 합니다. 공인 아이피는 공유기에 할당되는데, 공유기에 연결된 컴퓨터나 휴대폰 등의 디바이스에는  192.168.0.x 형태의 사설 아이피가 할당되기 때문에 외부에서는 접속할 수 없다.

먼저 명령 프롬프트에 ipconfig를 검색해 192.168.0.x로 끝나는 ip주소를 찾아서 인터넷 브라우저 검색 창에 입력한다.

그럼 위와 같은 창이 나오는데 보통 초기 암호는 위에 쓰여있는 거처럼 admin이다.

로그인 → 관리 도구 → 고급 설정 → NAT/라우터 관리 → 포트포워드 설정에 들어간다.

하단에 규칙 이름을 설정하고 위에 처럼 포트를 해주었다. 완료하고 적용을 누르면 된다.

이렇게 하고 네이버에 ip주소를 검색하면 내 디바이스의 IP주소를 알 수 있는데 그것을 사용하면 된다.

'프로젝트' 카테고리의 다른 글

[Spring Cloud Gateway] CORS 문제 해결하기  (0) 2023.06.20
순환 참조에 의한 종속성 문제 발생  (0) 2023.05.30
Furry_Friend_v2 변경사항  (0) 2023.05.22
파일을 정리해주자!  (0) 2023.05.17
프로젝트 시작  (0) 2022.10.11