리눅스를 통해서 컴퓨터를 서버로 활용하는 방법에 대한 강의
생활코딩 생활코딩 리눅스 강좌 내용을 들으면서 정리하는 노트
•
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 전화 대표번호)
▪
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:[외부포트 번호]로 서버 컴퓨터에 접속할 수 있게 됨
참고자료