Search

리눅스(Linux) - 인터넷, 네트워크, 그리고 서버

Created at
2019/02/13
Updated at
2021/02/21
Tags
Keywords
Linux 기초
3 more properties
리눅스를 통해서 컴퓨터를 서버로 활용하는 방법에 대한 강의
생활코딩 생활코딩 리눅스 강좌 내용을 들으면서 정리하는 노트
강의 듣기 (같은 강의이니 편한 곳을 선택해서 공부하면 된다!)

1. 인터넷 구조 - client & server

클라이언트(client): request하는 컴퓨터
서버(server): response하는 컴퓨터
인터넷은 request와 response가 왔다갔다하는 컴퓨터들간(client-server)의 대화
서버에 접속하는 방법
domain name
e.g. 'google.com'
ip(internet protocol) address
e.g. $ ping google.com으로 확인 가능 → '172.217.161.46'
DNS server를 통해서 domain → ip address 확인해서 ip address로 server에 접속하게 됨
내 컴퓨터의 ip address 확인하기
private address: 라우터(Router)에 연결된 각 컴퓨터의 ip (like 전화 내선번호)
확인: $ ip addr → 결과에서 'inet' 뒤에 오는 주소
public address: 라우터의 ip (like 전화 대표번호)
확인: $ curl ipinfo.io/ip or 웹브라우저에서 'https://ipinfo.io/ip' 접속

2. 웹서버

웹서버를 리눅스에 설치하는 방법. Apache로 설명함
웹서버
웹브라우저에게 response해주는 프로그램
서버컴퓨터에 웹서버가 설치되어있어야 웹 서비스가 가능
Apache, nginx, iis 등의 프로그램이 있음
Apache 웹서버 설치 & 실행
설치: $ sudo apt-get install apache2
실행: $ sudo service apache2 start
종료: $ sudo service apache2 stop
재시동: $ sudo service apache2 restart
접속 - 웹서버 구동 확인
ip로 접속: $ elinks http://[private address]/ (브라우저로도 가능)
elinks 설치: $ sudo apt-get install elinks
private address check: $ ip addr
local host(127.0.0.1)로 접속: $ elinks http://local host/
설정(configuration)
etc/apache2/: 설정이 저장되어 있는 경로
apache2.conf: 설정 파일
/etc/apache2/sites-enable/000-default.conf → DocumentRoot /var/www/html
/var/www/html 안에 index.html 파일 존재
로그(log)
/etc/apache2/sites-enable/000-default.conf → ErrorLog ${APACHE LOG_DIR}/error.log CustomLog ${APACHE LOG_DIR}/access.log combined
${APACHE LOG_DIR}: /var/log/apache2/
$ tail -f /var/log/apache2/access.log: 실시간으로 끝에 추가되는 정보를 화면에 출력

3. 원격제어 ssh

내 컴퓨터로 인터넷을 통해서 서버 컴퓨터를 원격제어 하기
동작방식: 서버(제어 대상)와 클라이언트 구조
서버: SSH Server를 설치
클라이언트: SSH Client를 설치
SSH Client가 명령을 SSH Server로 보내면 그 명령을 서버컴퓨터로 전달하여 동작 → 동작 결과를 SSH Server에게 돌려주고 SSH Client로 전달
대부분의 unix 계열 시스템에는 ssh가 기본적으로 설치되어 있음
설치: $ sudo apt-get install openssh-server openssh-client
확인: $ sudo ps aux | grep ssh
접속: $ ssh [username]@[ip address]
접속종료: exit

4. 포트(Port)

4.1 포트란 무엇인가?

client는 port를 통해서 server에 접속한다.
1024번까지는 well-known port로 default로 고정되어 있음
e.g. web server: 80번 포트에 연결되도록 약속되어 있음 (포트번호 생략 가능)
www.naver.com:80
e.g. ssh server: 22번 포트에 연결되도록 약속되어 있음 (포트번호 생략 가능)
$ ssh -p 22 [username]@[ip address]
포트번호 변경
/etc/ssh/sshd_config(ssh server 설정파일)에서 포트번호를 수정하고 재시작하면 포트번호가 변경됨

4.2 포트 포워딩(port forwarding)

라우터(public address)의 특정 port로 접근하면 네트워크에 연결되어 있는 특정 컴퓨터(private address)의 특정 port로 전달하여 접속 가능하게 함
라우터(공유기)에서 환경설정을 해주어야 함
공유기 서버에 접속: default gateway
$ ip route로 확인
mac은 환경설정-네트워크-WiFi-고급-TCP/IP에서 라우터 주소 확인
웹브라우저로 해당 ip로 접속
NAT/라우터 관리-포트 포워드 설정 메뉴에서 설정 가능 (라우터에 따라 다를 수 있음)
내부 IP 주소: 서버를 설치할 컴퓨터의 내부 ip
외부 포트: 사용자가 사용할 포트 번호 (라우터 쪽의 포트)
내부 포트: 서버를 설치할 컴퓨터의 포트 번호
규칙이름을 지정하고 추가
사용자는 public address:[외부포트 번호]로 서버 컴퓨터에 접속할 수 있게 됨
참고자료