[DevOps] IP와 Port 개념
[DevOps] IP와 Port 개념
클라이언트 요청이 서버까지 오는 과정
- IP 는 PC의 주소
- Port는 실행중인 프로그램의 주소
즉 내 pc에서 8080포트에 springboot서버를 실행시키면 로컬IP로 들어와서 8080을 호출해도, 퍼블릭IP로 들어와서 8080을 호출해도 springboot서버에 접근가능함.
잘 알려진 포트(well-known prot)란?
Port에는 잘 알려진 포트라는 개념이 있다.
포트번호는 0 ~ 65,535번까지 사용할 수 있다. 그 중에서 0 ~ 1023
번까지의 포트 번호는 주요 통신을 위한 규약에 따라 이미 정해져 있다. 이렇게 규약을 통해 역할이 정해져있는 포트 번호
를 보고 잘알려진 포트(well-known prot)
라고 부른다
주요 포트 번호를 살펴보면
- 22번 (SSH,Secure Shell Protocal) : 원격 접속을 위한 포트 번호
- EC2 인스턴스에 연결할 때 22번 포트를 사용한다
- 80번 (HTTP) : Http로 통신을 할때 사용
- 443번 (HTTPS) : Https로 통신을 할때 사용
단 규약이기 때문에 꼭 지킬 필요는 없다. springboot도 Http 통신이지만 80포트가 아닌 8080포트를 사용한다.
AWS와 로컬pc 배포의 차이
- AWS EC2 인스턴스는 보안설정으로 0.0.0.0 열어주면 퍼블릭 Ip로 접근해서 서버 접근 간단하게 구현 가능
- 로컬에서는 퍼블릭 Ip부터 설정해줘야하고,
포트포워딩
으로 공유기 설정도 해줘야하고, 8080포트는 방화벽으로 막히고 … 모든 순간이 차단되어있음. (덕분에 보안은 좋다)
이제 로컬pc에서 서버를 열때 설정해줘야하는 부분을 설명한다
- 외부 사용자가 http://내 퍼블릭 IP:8080으로 접속하는 경우
🔹 1) 퍼블릭 IP 사용 설정
- 하는 일: 인터넷에서 내 컴퓨터를 찾을 수 있도록 퍼블릭 IP를 사용해야 함.
- 이유:
- 일반적으로 공유기 뒤의 로컬 PC들은 사설 IP(192.168.x.x 등)를 사용함.
- 그래서 외부에서 접속하려면 퍼블릭 IP가 필요함.
- 설정 방법:
- 고정 퍼블릭 IP 사용 (유동 IP라면 DDNS 설정 필요)
- 인터넷 공급 업체(ISP)에서 퍼블릭 IP 제공 여부 확인
🔹 2) 공유기에서 포트 포워딩 설정
- 🔍 하는 일: 공유기가 외부(인터넷)에서 오는 요청을 내 PC로 전달하도록 설정.
- 💡 이유:
- 보통 공유기는 외부(인터넷)에서 오는 요청을 자동으로 차단함.
- 포트 포워딩(Port Forwarding)을 설정하면 공유기가 특정 포트의 요청을 내 PC로 보내줌.
- ⚙️ 설정 방법:
- 공유기 관리자 페이지(예: 192.168.0.1)에 접속
- “포트 포워딩” 설정 추가
- 외부(인터넷) → 공유기의 8080포트로 요청
- 공유기가 이를 내 PC의 8080포트로 전달
Ex)
외부포트 내부 IP(로컬PC) 내부포트 8080 192.168.0.100 8080
🔹 3) 내 PC 방화벽에서 8080 포트 열기
- 🔍 하는 일: 내 PC에서 8080 포트에 대한 외부 접근을 허용
- 💡 이유:
- 내 PC의 방화벽이 기본적으로 외부에서 오는 포트 접근을 차단함.
- 그래서 8080 포트를 허용해줘야 외부에서 내 서버에 접근 가능.
- ⚙️ 설정 방법 (Windows 예제):
- Windows 방화벽 설정 → 고급 설정
- 인바운드 규칙 추가
- 포트: 8080
- 허용: 예
- 프로토콜: TCP
- 프로필: 공용(Public) 체크
🔹 4) Spring Boot의 server.address=0.0.0.0 설정
- 🔍 하는 일: Spring Boot 서버가 외부(인터넷)에서 오는 요청도 받을 수 있도록 허용
- 💡 이유:
- 기본적으로 Spring Boot는 localhost(127.0.0.1)에서만 실행됨.
- 즉, 로컬에서만 접속 가능하고, 외부에서는 접근 불가능함.
- server.address=0.0.0.0을 설정하면 모든 네트워크 인터페이스에서 요청을 받을 수 있음.
⚙️ 설정 방법 (Spring Boot application.properties
또는 application.yml
)
1
2
server.address=0.0.0.0
server.port=8080
✅ 최종 정리
💡 외부(인터넷)에서 http://내 퍼블릭 IP:8080으로 접근하려면
1️⃣ 퍼블릭 IP 사용
- 인터넷에서 내 컴퓨터를 찾을 수 있도록 함.
2️⃣ 공유기에서 포트 포워딩 설정
- 공유기가 8080 포트 요청을 내 PC(예: 192.168.0.100)로 전달하게 설정.
3️⃣ 내 PC의 방화벽에서 8080 포트 열기
- 방화벽이 8080 포트 접근을 막지 않도록 허용.
4️⃣ Spring Boot의 server.address=0.0.0.0 설정
- 내 PC의 모든 네트워크 인터페이스에서 8080 포트로 접속 가능하도록 함.
This post is licensed under CC BY 4.0 by the author.