post-thumbnail

인터넷, 네트워크 그리고 서버

img

내 컴퓨터의 ip address 알아내기

  1. 쉘에서 ip addr 입력, inent 뒤의 부분이 주소 -> 10.0.2.15
  2. ipinfo.io/ip라는 사이트로 접속 또는 쉘 환경에서 curl ipinfo.io/ip -> 211.36.24.37

두 개의 결과가 다르다.

왜 다른가?

img

public ip와 private ip가 같으면 컴퓨터를 그대로 서버로 사용하면 된다. 하지만 다를 경우에도 할 수 있는 방법이 여러 가지가 있다. 예를 들어 라우터로 묶여있는 컴퓨터 간에는 접속할 수 있다.


웹서버 (아파치)

이번 수업에서는 서버의 구체적인 사례로서 웹서버 그 중에서 아파치 웹서버를 설치하고 운영하는 방법에 대해서 알아본다.

apache install

configuration 환경 설정

log


원격제어 (ssh)

원격으로 쉘을 제어할 수 있는 방법인 ssh에 대해서 알아본다.

img

포트 (port)

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

포트란 무엇인가?

예시 1) www.naver.com == www.naver.com:80 != www.naver.com:8888 여기서 80이라는 숫자가 포트이다.

예시 2) ssh -p 22 egoing@192.168.0.65 p는 포트라는 의미, 접속이 된다. (exit) ssh -p 2222 egoing@192.168.0.65 Connection refused -> ssh는 22번이라는 포트를 쓴다는 추론이 가능

포트 포워딩이란?

img

포트 포워딩 실습


도메인 (domain)

기본

img

hosts 파일

도메인 구입

서브 도메인

DNS의 동작 원리

img

  1. ‘우리의 DNS 서버’는 root DNS 리스트를 알고 있다. (dig +trace egoing.ga치면 나오는 첫번째 문단)
    • root DNS 서버는 10대가 넘는 서버가 전세계가 흩어져 있다. root DNS 서버가 죽으면 엄청난 혼란이 오기 때문이다.
  2. 사용자가 egoing.ga 접속을 시도할 때, 클라이언트는 그 ip를 DNS 서버에 물어볼 것이다. ‘우리의 DNS 서버’는 ‘root DNS 서버’에게 .ga를 담당하는 DNS 서버가 누구인지를 물어본다. 그러면 root DNS 서버는 .ga라는 도메인을 담당하는 네임 서버들의 목록을 돌려준다. (dig +trace egoing.ga치면 나오는 두번째 문단)
    • 이 서버들도 마찬가지로 여러 개의 서버로 흩어져 있다.
  3. 2번의 결과로 나온 ‘ga의 DNS 서버’에게 egoing.ga를 관리하는 DNS 서버를 또 물어본다. (dig +trace egoing.ga치면 나오는 세번째 문단)
  4. ‘우리의 DNS 서버’는 ‘egoing.ga의 DNS 서버’에게 egoing.ga의 아이피가 무엇인지 물어보고 반환한다. (dig +trace egoing.ga치면 나오는 네번째 문단)
  5. 이것을 클라이언트에게 보내주면 그 ip에 따라 접속한다.

인터넷을 통한 서버간 동기화 (rsync)

기본

remote sync


로그인 없이 로그인 하기 (ssh key)

ssh public private key

rsync

RSA


연속적으로 명령 실행시키기 (;과 &와 &&의 차이)

; 성공여부와 상관없이 다음 명령어 실행

&& 성공한 경우에 다음 명령어 실행

명령어의 반환값

&와 &&는 다르다.

&는 명령어를 백그라운드로 동작시킬 때 사용한다.

명령의 그룹핑 {}

mkdir test3 && { cd test3; touch abc; echo 'success!!' } || echo 'There is no dir';

본 포스팅은 생활코딩 리눅스 강의(https://opentutorials.org/course/2598)를 참고하여 작성하였습니다.