[10주차] 임베디드 시스템 - changook123/Embedded GitHub Wiki
영상 시청 후 요약(포트 & 포트포워딩), 네트워크 주소 실습
서버 접속 문제 해결
문제 원인
사설 IP를 사용하는 서버는 외부에서 직접 접근이 불가능하고 공인 IP를 사용해야 외부에서 서버에 접속 가능한 점
네트워크 용어 정리
공유기: 하나의 회선으로 여러 PC를 연결하며 공유기 자체도 IP 주소(공인 IP)를 가집니다. WiFi: 무선으로 공유기와 통신합니다. 사설 IP: 공유기 내부에서만 사용 가능, 외부에서 접근 불가. 공인 IP (Public IP): 인터넷 제공업체(ISP)로부터 할당받은 IP 주소로, 외부 네트워크에서 접근 가능합니다.
포트포워딩(Port Forwarding)
- 포트포워딩: 공인 IP로 접속한 사용자를 사설 IP가 설정된 서버로 연결시킵니다.
- 예시: http://222.109.62.43:80 -> 222.109.62.43 IP의 80번 포트를 사용해 접속.
- 80(http) 대신해서 8080(대체 포트)도 사용 가능합니다.
- 사설 IP는 외부에서 직접 접근할 수 없으므로, 포트포워딩을 통해 공인 IP로 접속할 수 있도록 설정함.
포트포워딩 설정방법
-
공유기의 WAN 포트에 케이블 연결: 공인 IP를 부여받음.
-
공유기 관리자 페이지 접속:
- 서버가 설치된 컴퓨터를 공유기의 LAN 포트에 연결.
- 브라우저에서 192.168.0.1(공유기 주소)로 접속.
-
포트포워딩 설정:
- 관리자 페이지 -> 고급 설정 -> NAT 라우터 관리 -> 포트포워드 설정.
- 서버 컴퓨터의 사설 IP 주소를 입력 (터미널에서 ipconfig로 확인 가능).
- 외부 포트와 내부 포트 설정:
- 외부 포트: 공인 IP로 접속할 때 사용할 포트 (예: 80, 8080).
- 내부 포트: 서버 컴퓨터가 사용하는 포트 (예: 80, 8080).
ngrok 설치
- ngrok으로 터널링 및 로컬과 도메인을 연결시킬 수 있다.
- https://ngrok.com/에 접속하여 사용자 계정을 만든다.
- 로그인 한 후 Authtoken이 생성 됐는지 확인
- 윈도우에서 ngrok 설치
- 관리자 권한으로 프롬프트 실행
choco install ngrok
ngrok config add-authtoken {token_value}
- 위 명령어로 윈도우 환경에서 ngrok을 설정한다.
라즈베리파이에서 ngrok 설치
wget https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-arm64.tgz
tar xvzf ngrok-v3-stable-linux-arm64.tgz
sudo mv ngrok /usr/local/bin
ngrok config add-authtoken {token_value}
위 명령어로 라즈베리파이 os 환경에서 ngrok을 설정한다.
-
Ngrok에 로그인 후, "Your Authtoken" 메뉴에서 인증키를 복사한다.
-
인증키 값 저장하기
ngrok config add=authtoken [인증키값]
- 웹 서버를 외부로 호스팅하기
ngrok tcp [서버IP:서버포트]