We.TIL 42 : 포트번호 안뜨게 만드는법

김기욱·2020년 9월 28일
0

We.TIL

목록 보기
65/69

포트란 무엇인가?

문득 개발공부를 하다보면 기본적인 개념에 대해서 망각하는 경우가 왕왕 발생하게 된다. 그러므로 기본개념부터 되짚어보자. 나같은 경우는 웹개발을 공부하고 있으므로, 네트워크 상에서 쓰이는 포트(Port)의 개념을 기준으로 잡았다.

쉽게 말하자면 TCP나 UDP에서 어플리케이션이 상호구분을 위해 사용하는 번호다.
IP내에서 프로세스 구분을 하기 위해서 사용된다. 쉽게말하면 각 프로토콜의 데이터가 통하는 논리적 통로라고 생각하면되는데, 컴퓨터의 물리적 포트(LAN)에서 전기신호가 흐르는 것 처럼, 컴퓨터 안의 각 프로토콜의 데이터가 컴퓨터 내부의 논리적 포트에 따라 흐르게 된다.

포트 번호는 크게 다음과 같이 나눠진다.

1) Well-Known ports(0번부터 1023번포트)

시스템 포트라고도 불리며, ICANN(nternet Corporation for Assigned Names and Numbers: 국제 도메인 관리기구)에 의해 통제된다.

대중적인 네트워크 서비스를 제공하는 시스템 프로세스에서 사용되는 포트번호들이며, Unix계열 운영체제에서 사용하기 위해선 반드시 수퍼유저(SUDO)권한으로 실행되어야 한다.

실제로 나한테 가장 유용한 포트번호는 80번 HTTP443번 HTTPS 포트다.

2) Registered ports(1024번부터 49151번포트)

ICANN산하기관인 IANA에 등록된 포트번호들이다. 등록은 되어있지만 Well-known ports들 처럼 직접 통제당하진 않은 포트번호들이다.

가장 유명한 포트번호로는 Mysql 기본포트번호인 3306 오라클 기본포트번호인 1521등이 있겠다.
웹프레임워크인 Django는 8000, Flask는 5000을 개발자서버 기본포트로 지정해두고있다.

3) Private ports(49152번부터 65535번포트)

IANA에 등록되지 않은 동적포트들

포트번호 감추기

포트번호를 따로 커스텀해서 설정해두지않으면 Django의 경우 8000, Flask는 5000번 포트를 뒤에붙이고 서버가 실행된다. AWS EC2나 와이파이 IP를 사용하지 않을 경우, 로컬호스트 기준 서버 주소는 그러므로 다음과 같이 된다.

http://127.0.0.1:5000/ <--Flask case

뒤에붙는 :5000이라는 포트번호를 없애고 사용하고 싶다면 다음과 같이 하면 된다. Flask나 Django에서 포트번호를 설정하는 파일(Django는 주로 settings.py, Flask는 config.py라는 형식으로 많이 사용한다)에서 포트번호를 80번으로 설정해주면 된다.

그리고 모든 클라이언트가 접속할 수 있는 호스트 주소인 0.0.0.0으로 설정해보자 그럼 다음과 같은 기본 서버 주소를 사용할 수 있게된다.

http://0.0.0.0/

한눈에 봐도 서버 주소가 한결 간결해진것을 확인할 수 있을 것이다.

profile
어려운 것은 없다, 다만 아직 익숙치않을뿐이다.

0개의 댓글