본문 바로가기

LINUX

[LINUX] 인터넷, 네트워크, 서버, 도메인

인터넷이 돌아가는 원리

클라이언트는 요청하고, 서버는 응답하고~

 

구글 사이트에 접속하는 방법

google.com  --> domain name (엄마)

172.21.25.78 --> ip address (010-1234-5678)

 

DNS서버

이 세상에 있는 모든 도메인이 어떤 ip를 가지는지 저장되어있는 사전이라고 생각해라.

내가 google.com 이라고 검색하면 DNS 서버에 접속해서 뒤진 후, 구글의 ip를 내컴에게 몰래 알려준다.

그럼 내컴은 그 ip를 가지고 구글 서버에 접근하게 되는 것이다.

 

라우터 = 공유기

하나의 회선으로 여러 대의 컴퓨터 사용 가능

라우터가 하나의 ip를 가짐 = 대표번호 = public address = public ip

각각의 컴퓨터도 ip를 가짐 = 내선번호 = private address = private ip

 


웹 서버를 리눅스에 설치해보자

sudo apt-get update; // 업데이트 먼저

sudo apt-get apache2 // 아파치 설치

sudo service apache2 start // 켜기

sudo service apache2 stop // 끄기

 

sudo apt-get install elinks // 쉘 환경에서 브라우저 사용하기

 

내 컴퓨터에서 웹과 웹 서버를 같이 돌릴 경우, ip를 그대로 써도 되지만

localhost(127.0.0.1)라고 입력해도 됨! 와.. 이렇게 썼던 이유!

 

127.0.0.1 -> 자기 자신을 가리키는 ip

그래서 톰캣 돌리고 웹에 localhost로 검색하면 고양이가 떴잖아!

 


원격제어 ssh

Secure SHell protocol

네트워크 프로토콜 중 하나로 컴퓨터와 컴퓨터가 인터넷과 같은 public network를 통해

서로 통신을 할 때 보안적으로 안전하게 통신을 하기 위해 사용하는 프로토콜

 

예를 들어, 깃헙을 통한 데이터 전송, AWS와 같은 원격제어 서비스를 말한다.

 

맥과 리눅스는 기본적으로 설치되어 있으며, 윈도우는 putty나 xshell을 통해 사용 가능

 

다른 컴퓨터와 통신을 위해 사용되는 프로토콜인 FTP, Telnet도 있지만, 이 둘은 ssh에 비해 보안에 취약하다.

왜? 누구나 해당 정보를 열람할 수 있기 때문에

 

server 컴퓨터에는 ssh server를 깔고, client의 컴퓨터에는 ssh client를 깐다.

즉, 컴퓨터끼리 직접 통신하는 것이 아니라,

ssh server <-> ssh client 끼리 통신하는 것!

 

구체적으로 어떻게 통신하느냐?

ssh는 다른 컴퓨터와 통신을 위해 접속 시, 우리가 일반적으로 사용하는 비밀번호 입력을 통한 접속을 하지 않는다.

기본적으로 한쌍의 key(private/public)를 통해 접속하려는 컴퓨터와 인증과정을 거친다.

 

public key : 공개키, 메세지 전송 전 암호화 (복호화불가)

private key : 비밀키, 본인 컴퓨터 내부에 저장, private key를 통해 암호화된 정보를 복호화

 

즉, 암호화 기법을 사용하기 때문에 안전한 통신이 가능하다. 22번 포트를 사용한다.

 


포트 port

네트워크를 통해 적절한 애플리케이션을 실행 시키기 위해 포트가 꼭 필요하다.

 

www.naver.com:80  = www.naver.com

 

위 두 주소 모두 접속이 가능함. 여기서 80은 뭘까?

 

서버에는 약 65000여 개의 구멍이 있다. 이 구멍이 포트이다.

ssh는 22번 포트, 웹 서버는 80번 포트에 접속하도록 약속되어 있다.

 

1024번까지의 포트는 well-known 포트

-> 너무 유명해서 굳이 포트 번호를 명시하지 않음. 그래서 주소에서 80을 생략하는거야.

 

1025~

-> 표준은 아니기 때문에 명시해줘야함


도메인 Domain

ip란?

인터넷에 연결되어 있는 장치(컴퓨터, 스마트폰, 테블릿, 서버 등)들은 각각의 장치를 식별할 수 있는 주소

 

도메인이란?

ip는 사람이 이해하고 기억하기 어렵기 때문에 이를 위해 ip에 이름을 부여하는데 이것이 도메인

 

DNS (Domain Name System)이란?

사람이 읽을 수 있는 도메인 이름을 컴퓨터가 읽을 수 있도록 ip주소로 변환하는 것

DNS는 모든 사이트의 ip주소를 가지고 있는 사전과도 같다.

DNS는 서버. 예전에는 hosts file을 보고 변환했다ㅠ_ㅠ

 

host란?

인터넷에 참여하고 있는 모든 컴퓨터들. 서버. 클라이언트.

 

네트워크란?

host + host = 네트워크

 

인터넷이란?

네트워크들의 집합

 

ip 검색 명령어

curl ipinfo.io/ip

'LINUX' 카테고리의 다른 글

[LINUX] 사용자와 권한  (0) 2021.02.02
[LINUX] 프로세스와 실행  (0) 2021.02.01
[LINUX] 디렉토리 구조와 파일 찾기  (0) 2021.02.01
[LINUX] 쉘과 쉘스크립트  (0) 2021.02.01
[LINUX] IO Redirection  (0) 2021.02.01