또 뭐하지

[포너블 기초] 생활코딩 리눅스 섹션 9. 인터넷, 네트워크 그리고 서버 본문

I.sly()/9기 기초 - 포너블

[포너블 기초] 생활코딩 리눅스 섹션 9. 인터넷, 네트워크 그리고 서버

mameul 2024. 4. 1. 16:57
728x90

인터넷

인터넷 통신 : request, response 가 계속해서 왕래하는 컴퓨터 간의 대화
client : request를 하는 컴퓨터
server : request를 받아서 response를 하는 컴퓨터

domain name : google.com과 같이 서버에 접속할 때 사용하는 이름
ip address : 서버에 접속할 수 있는 주소.ping google.com으로 확인해볼 수 있다.

DNS 서버 : domain name의 ip address를 저장해둔 서버
domain name을 입력하면 DNS 서버를 통해 ip address로 변환되어 서버에 접속하여 응답이 온다.

ip addr : 본인의 ip 주소를 알 수 있는 명령어 -> 컴퓨터에 부여된 실제 ip, private address
curl ipinfo.io/ip : 본인 컴퓨터의 ip를 알려주는 명령어 -> 온라인 서비스 입장에서 접속 ip를 확인, public address
두 값이 같다면 컴퓨터에 부여된 실제 ip와 외부에 접속할 때 사용하는 ip가 같은 것이다. (router를 사용하지 않는 경우)

cf) curl google.com : google의 HTML 파일을 받아서 보여준다.

router(공유기)를 사용하여 하나의 회선으로 여러개의 device에 연결해서 사용할 수 있도록 한다.
통신사가 제공한 ip(public address)는 router의 ip가 된다.
router에 연결된 각각의 컴퓨터들은 사설 ip (private address)를 사용하여 ip를 부여받는다.


apache 웹서버

sudo apt-cache search apache : apache라는 이름을 가진 패키지를 검색
sudo apt-get update; : 프로그램 설치하기 전에 해주면 좋음
sudo apt-get install apache2 : apache2 설치
sudo service apache2 start : apache2 실행

웹 서버 접속 (여러 프로그램 중 elinks 사용)
sudo apt-get install elinks : elinks 설치
elinks : elinks 실행

elinks https://[ip address]/ 통해서 설치한 apache 서버에 접속해 볼 수 있다.

localhost : 동일한 컴퓨터 안에 있는 서버를 접속할 때 사용
127.0.0.1 : 자기자신을 가리키는 특수한 ip 주소

apache 설정파일 : 웹서버는 사용자가 요청한 파일을 지정된 디렉토리에서 읽어옴. 해당 설정은 apache 설정 파일에서 변경 가능.
/etc/apache2/apache2.conf : apache의 메인 설정 파일
/etc/apache2/sites-enabled/000-default.conf : 기본 사이트 설정 파일. DocumentRoot 설정을 확인 가능.

DocumentRoot 설정은 기본적으로 /var/www/html로 되어 있음.
var/www/html/index.html : 기본 웹 페이지 파일. sudo nano를 통해서 편집
elinks http://127.0.0.1/index.html : 변경사항을 웹브라우저에서 확인

로그파일 : apache 웹 서버의 동작을 모니터링하고 문제를 해결하기 위해 로그 파일을 확인할 수 있습니다.
/var/log/apache2/access.log : 접속기록 저장
tail -f /var/log/apache2/access.log : 실시간으로 업데이트되는 접속기록을 열람가능한 명령어
/var/log/apache2/error.log : 에러기록 저장


원격제어 ssh

sever 컴퓨터에 ssh server 설치, client 컴퓨터에 ssh client 설치

  1. 로컬 컴퓨터 내 설치된 ssh client를 통해 명령 전달
  2. ssh sever를 통해 전달받은 명령어를 sever 컴퓨터에 전달해 실행
  3. server 컴퓨터는 실행결과를 ssh server에 전달
  4. ssh server는 해당 내용을 client에 보냄
  5. 내용을 전달받은 client는 ssh client 화면에 내용을 보임

sudo apt-get purge openssh-server openssh-client : 서버 삭제
sudo apt-get install openssh-server openssh-client : 서버설치
sudo service ssh start : ssh 실행
sudo ps aux | grep ssh : 실행확인

ssh \[접속하고자 한 아이디\]@\[접속하고자하는 컴퓨터 ip\] : 원격 제어를 통해 타 컴퓨터에 접속


포트 port

포트 : 네트워크 상에서 특정 서비스나 애플리케이션이 통신을 위해 사용하는 논리적 접속 지점

ssh -p \[포트번호\] \[접속하고자 한 아이디\]@\[접속하고자하는 컴퓨터 ip\] : 포트번호를 입력해서 접속 (포트 번호 생략해도 접속 가능)

포트 번호는 0번부터 65535번까지 사용 ex ) web : 80 / ssh : 22
Well-Known Ports (0-1023):주요 네트워크 서비스와 프로토콜에 할당된 포트
1024 바깥쪽은 임의로 할당 가능

포트 포워딩 port forwarding : 라우터나 방화벽이 외부 네트워크에서 특정 포트로 들어오는 데이터를 내부 네트워크의 특정 장치로 전달하는 기술

라우터에 사용자가 접근할 때 9000번 포트 사용
사용자는 웹브라우저 상에서 211.46.24.37:9000를 통해 라우터에 접근
라우터 설정 : 9000번 포트는 192.168.0.4:80으로 가라고 지정
그러면 192.168.0.4:80으로 데이터가 전달됨

default gateway : 공유기(라우터)의 내부에서만 통용되는 ip (내부 네트워크와 외부 네트워크(또는 인터넷) 간의 트래픽을 전달하는 역할)
ip route : default gateway 정보