생활코딩 - Linux 을 듣고 정리한 내용입니다.
Group
은 거의 사용하지 않는다.
!!
: 직전에 입력한 명령어
domain name
, Ip address
로 구글 웹에 접근할 수 있다.google.com
으로 입력시, ip address
로 변환되서 서버에 접속한다.dns server
: 세상의 어딘가에 존재한다. 각각 도메인의 ip address
를 저장하고 있다.dns server
에 접근한다. 입력한 도메인 네임의 ip address
를 발급해준다.
ip
설치 : brew install iproute2mac
ip addr
결과
ip addr
: 이 컴퓨터에 부여된 실제 ip
이다.
inet
192.168.219.102/24
inet
, 현재 나의 노트북 주소이다. 위 주소 이용시 접근가능하다.
✔️ 웹에서 ip번호 발급
ipinfo.io
: 사용자가 웹 접속했다는 사실을 알고, 어떤 ip
로 접속했는지 분석하고, 나의 ip
를 알려준다.
✔️ shell
환경에서 ip번호를 발급
ip
번호를 발급받는다.curl ipinfo.io
: 온라인 서비스 입장에서 접속한 사용자 ip
번호를 출력한다. (접속하고나서 ip
번호가 발급됨)
✔️ ipinfo.io
와 curl
결과가 다르다?
ipinfo.io
와 curl
결과가 같다면 서비스를 운영할 수 있다.
ipinfo.io
와 curl
결과 다를시
장비마다 서로 다른 ip
를 준다.
public address
: curl
를 입력시 외부에 있는 address
를 알 수 있다. private address
: ip addr
를 입력시 내부에 있는 address
를 알 수 있다.
💡 참고
- 똑같은
wifi
,Router
를 사용한다면 통신을 할 수 있다.
리눅스 환경에서 웹 서버를 설치!
google.com
로 부터 index.html
이 보고 싶다.
Apache
이용하여 동작, 웹 서버 모습 공부ip address
를 이용한다.
sudo apachectl start
: apachectl
시작
주소 입력 : 127.0.0.1
sudo apachectl stop
: apachectl
종료
sudo htop
에서 apache
실행 확인 가능
apache
: web 서버는 많은 접속이 왔을 때 분석해서 처리하기 위해 여러개의 apache
가 자동으로 실행된다. 접속이 많아질 수록 새로운 아파치가 실행되고 접속이 적을 수로 아파치가 없어진다.
✔️ elinks
brew install elinks
: elinks
를 설치
elinks
: shell
환경에서 웹 브라우저를 할 수 있는 명령어
elinks
11버전에서 구글 웹 화면이 실행 되지 않는다.
q 입력시 빠져나간다.
✔️ 테스트
현재 테스트 웹 화면
elinks http://169.254.22.50/
입력 후 실행
화면에 있는 똑같은 글자가 나온다.
자신의 ip주소로 접속하여 웹 서버에 웹 브라우저가 접속하였다.
✔️ ip 알아내는 방법
ip addr
: 웹 브라우저를 통해서 같은 컴퓨터에 설치된 웹 서버에 접근할 때 ip addr
를 이용하여 ip
를 알아내서 그 ip
로 접속한다.localhost
: 자신의 컴퓨터, 서버 컴퓨터에 존재하는 웹 서버에 접속한다. (127.0.0.1
== localhost
자기 자신을 의미한다.)localhost
: 도메인 이름이다.)
storage
: HDD
, SDD
169.25.16.2/index.html
라고 wb
가 웹 주소로 요청할 시
ws
는 요청한 주소를 보고 index.html
파일을 읽는다. (파일안에 있는 html
을 해석한다.)
읽고나서, 웹 브라우저에게 응답한다.
✔️ 그런데? 웹 서버는 사용자가 요청한 index.html
파일을 어디서 읽어오는걸까?
/etc/apache2
에 있는 여러가지 설정파일들을 참고한다.
document root
Apache
는 www
서버이기 때문에 클라이언트 요청에 대응하는 응답을 반환한다. 이러한 내용을 저장해두는 위치이다.
어떤 서버를 설치하든 /etc
하위 디렉터리에 밑에 자신의 이름으로 설정파일이 있고 그 파일을 수정하면 동작하는 방식이 달라진다.
✔️ access_log
access_log
: 누군가가 웹 서버에 접속할 때마다, 접속한 사람의 정보가 추가된다.
tail /var/log/apache2/access_log
: 웹 서버 마지막으로 접속한 사람의 정보를 추가된다. (끝에 있는 정보를 추가 됨)
tail -f /var/log/apache2/access_log
: 실시간(마지막) 접속한 사람의 정보를 확인할 수 있다.
✏️ 실시간 접속한 사람 정보 확인하기 테스트
curl
: 접속 테스트
✔️ error_log
apache
web server에 특정한 error
가 있을 때 (실행은 시켰지만, 동작하지 않을 때) error_log
파일을 열어서 어떠한 문제가 있는지 확인하면 된다.
tail -f /var/log/apache2/error_log
💡 서버 프로그램, 공통적으로 가지고 있는 특성
- 운영하고 있는 웹 서버에 사용자들이 이용하는 현황을 확인하고 싶을 때,
log
파일을 실행(뒤지면) 된다.- 그렇기에 이 서버의
log
가 어디에 있는지 알아보며log
를 통해 동작 상태를 확인한다.
인터넷을 통해 다루는 컴퓨터는 리눅스를 사용한다.
✔️ Server(Unix 계열)
ssh
를 사용해야 한다.)shell
을 통해 제어하는 컴퓨터인경우, ssh
를 사용하면 원격제어를 할 수 있다.ssh
를 사용하려면 서버와 컴퓨터가 필요하다.
✔️ SSH Client ↔️ SSH Server
Rm
, ls
, pwd
등 명령어를 입력할 시 ssh
서버를 제어하게 된다.ssh
서버에게 명령어가 전달되면, ssh
서버는 자기가 설치되어 있는 컴퓨터에게 명령어를 전달한다.ssh
프로그램에게 결과를 돌려준다.ssh
프로그램을 결과를 ssh client
에게 되돌려주고, ssh client
화면에 출력된다.
💡 참고
유닉스 계열에서는 대부분ssh
가 설치되어 있다.
purge
: 강력한 삭제
sudo apt-get install openssh-server
: unix
에 openssh, ssh 관련된 여러가지 프로그램을 제공하는 프로젝트를 설치한다.
sudo apt-get install openssh-client
: 다른 컴퓨터를 원격제어할 때 client
가 필요하다.
✔️ 클라이언트에서 서버 접근할 때
ssh 접속하고자 하는 컴퓨터 username@접속하고자 하는 컴퓨터 주소
다음, password
입력한다.
이제, 원격 접속하였기에 클라이언트는 접속한 서버의 컴퓨터에서 작업할 수 있다.
www.naver.com
➡️ www.naver.com:80
와 같은 결과로 실행된다.
www.naver.com:8888
➡️ 80
이외 숫자들은 실행되지 않는다.
80
: port 번호
ssh -p 22 leekyoungchang@192.268.0.65
: 원격 접속이 된다.
exit
: 원격 접속 종료하기
22
: ssh 번호
✔️ port 번호 구간
0~1024
port 번호 : 굉장히 유명한 인프라와 같은 통신 시스템 port 구간이다. 많은 사람들이 port 번호를 적지 않아도 웹 접속 가능하도록 하였다. ex) www.naver.com
만 입력해도 auto로 80번이 입력된다.
1024~65xxx
port 번호 : 특별한 프로그램을 만들어 이 중에 하나를 사용하면 된다. 표준이 아닌 port 번호이다.
💡 참고
- 원격 접속은 굉장히 위험한 행위이다.
- 웹 서버 port를 바꿀시 다른 서버로 접속하게 할 수 있다.
Router
는 port
가 존재하며, 사용자의 컴퓨터에도 port
가 존재한다.
port forwarding
: 만약, 특정한 port
로 접속 요청왔을 때 그 접속을 특정한 컴퓨터로 전달한다.
ex)
사용자가 211.46.24.37:9000
입력시 router
에 접근하게 된다.
9000
이란? router
에 있는 65xxx
개의 port
중에 9000
번 port
로 접속하였다. 라우터의 설정을 열어서 9000
번 port
는 "192.168.0.4
로 가라!" 라고 설정을 지정한다.
그럴 시, 9000
번으로 접속하면 router
는 신호를 192.168.0.4
의 컴퓨터 그중에서 80번 port
로 보낸다.
192.168.0.4
의 주소를 가진 컴퓨터에서는 80
번 port
를 가진 웹 서버가 설치되어 있으므로 웹 서버가 동작해서 그 신호를 받아 반대로 라우터를 경유하여 요청한 사용자에게 돌아간다. (돌아서 보냄)
요청 사용자의 컴퓨터에서는 저장되어있는 웹 페이지가 해석해서 출력(실행)된다.
💡 참고
- 공유기에 접속하기 위해서는 공유기가 내부에서는 통영되는 외부에서는 통영되지 않는
ip
를 가지고 있어야한다.- 공유기 안에서만 통영되는(공유기가 갖고 있는)
ip
:default gateway
- 환경설정하는 방법은 회사마다 다르다.
- 위와 같은 기능이 필요하면 사용하는 공유기 회사의 환경설정 관련된 사용설명서를 보고 따라하면 된다.
이제 default gateway
를 알아내는 방법에 대해 공부를 한다.
나의 라우터 번호 (게이트 웨이)