갬미의 성장일기

Day 29 - Linux network 명령어 , 서버 배포하기 본문

Cloud/Cloud 공부일기

Day 29 - Linux network 명령어 , 서버 배포하기

갬미 2022. 2. 15. 18:37

오늘 배운 내용

- Linux network 명령어 

- VS Code에서 작성한 파일 AWS 서버에 올리기

Linux 실습 환경

- 어제처럼 AWS에서 EC2를 생성하여 cmd에서 실행한다

- 오늘은 리눅스 기본 명령어가 아니기 때문에 구름 환경에서는 X

 

리눅스 사용 용도

1. 클라이언트용

2. 서버용

 

서버 - 서비스를 전문으로 하는 특별한 컴퓨터 

         컴퓨터의 모든 자원을 서비스에 집중하는 특별한 컴퓨터

 

리눅스 -> 서버용으로 많이 사용됨

 

리눅스에서 install 할때 왜 apt를 사용할까?

윈도우일때 - A 프로그램 실행할 때

                  B DLL 파일이 필요함

 

리눅스일때 - A 프로그램 실행할 때

                  B 의존성 파일이 필요함

 

dpkg로 프로그램 설치가 가능하지만 의존성 파일을 찾아 같이 설치해줘야 한다

apt는 의존성 파일까지 같이 설치해주므로 편리함!

Linux Network 명령어

일단 리눅스 설치 목록을 최신화 시켜준다

sudo apt update
sudo apt upgrade

update와 upgrade의 차이?

update - 설치할 목록을 갱신 (현재 우분투 목록에 있는 리스트만 최신화)

upgrade - 모든 패키지를 최신버전으로 갱신 (현재 설치되어 있는 목록 업데이트) / 버전간 호환되는 것이 다를 수 있으므로 주의하여 사용

 

ifconfig

eth0 - 랜카드 이름

특정 랜카드 정보만 보려면 

ifconfig eth0(NIC 이름)

 

netstat 

네트워크에 대한 내용 중 내가 해당되는 부분에서 어디로 와서 나가고 어떤 연결상태인지

외부 ip가 내부 ssh로 붙는다

netstat -a 모든 소켓정보를 표시

netstat -i 인터페이스 정보

netstat -l 리눅스 서버가 어떤 포트로 통신하려고 하는지 확인 : 대기중(리스닝)은 포트 또는 소켓을 표시

netstat -p 소켓의 프로세스 ID (PID)/프로그램 이름 표시 (kill등을 할때)

netstat -r 라우팅테이블 확인

netstat -s 프로토콜의 통계 정보 표시

netstat -v 정보를 자세히 해주는것

👇 더 자세한 내용

 

[리눅스 명령어] netstat

netstat : 네트워크 상태 확인 netstat 명령어는 네트워크 연결상태, 라우팅 테이블, 인터페이스 상태 등을 보여주는 명령어입니다. netstat명령어 [root@localhost~]$ netstat 이름 netstat - 네트워크 상태를 확

hippogrammer.tistory.com

route 

= 네비게이션 / 내 PC에서 외부로 나가 어디를 거쳐가야하는지 확인하는 것

내PC (DNS에서 받아온 domain 주소(www.naver.com) 의 ip주소 확인) -> Default Gateway (NIC) -> 공유기 -> 공유기의 route -> 통신사의 Route에서 www.naver.com의 ip주소에 가는 경로를 확인함 -> 그 경로에 맞추어서 naver 사이트로 이동 

 

traceroute 도메인  -> 집에서 도메인까지 가는 경로, 네비게이션임

최대 30홉 이상의 경로 추적 

traceroute google.com

현재 PC에서 거치는 라우트를 표시함

순서가 별로 안많다면 -> 우리집과 가까운곳에 도메인 서버가 있는거임

👇 더 자세한 내용

 

 

[리눅스 명령어] traceroute

traceroute : 최종 host까지 패킷이 거쳐가는 라우터 길 출력 traceroute는 실행하는 컴퓨터에서 데이터 패킷을 목적지 서버로 보내어 가는 네트워크 경로를 확인해주는 명령어입니다. traceroute 명령어

hippogrammer.tistory.com

 

ping 도메인주소 : 네트워크 연결을 확인 

서버에 한번에 많은 ping 을 보내서 과부하 걸리게 하는 공격이 있음

따라서 큰 회사들은 이걸 막음

윈도우는 n번까지만 하지만

리눅스는 끝없이 요청한다

👇 더 자세한 내용

 

[리눅스 명령어] ping

ping : 네트워크 상태 점검 ping 명령어는 'Packet INternet Groper'의 약자입니다. 네트워크 상태를 확인하려는 대상(target) 컴퓨터(또는 네트워크 기기)를 향해 일정 크기의 패킷(Packet, 네트워크의 최소

hippogrammer.tistory.com

 

dig 도메인 도메인에 대한 정보를 알려줌

dig -t mx 도메인

👇 더 자세한 내용

 

[리눅스 명령어] dig

dig : DNS 네임 서버의 정보 확인 dig 명령어는 Domain Information Groper의 약자로 네임서버로 부터 정보를 가져올 수 있는 툴입니다. dig 명령은 DNS 네임 서버 구성과 도메인 설정이 완료된 후, 일반 사용

hippogrammer.tistory.com

 

host도메인

도메인명은 알고 있는데 ip주소를 모르거나 혹은 그 반대의 경우에 사용하는 명령어

👇 더 자세한 내용

 

[리눅스 명령어] host - 도메인 정보 및 ip 정보 출력

※ 요약 도메인(호스트)명은 알고 있는데 ip주소를 모르거나 혹은 그 반대의 경우에 사용하는 명령어다. 호스트명을 이용하면 ip주소 뿐만이 아니라 하위 호스트명도 조회할 수 있다. 호스트는

shaeod.tistory.com

 

nslookup

네트워크 디버깅을 위해 자주 사용되는 리눅스 명령어로, DNS 서버에 직접 DNS 쿼리를 하고 그 결과를 출력한다

DNS 설정이 정상적인지, 혹은 DNS 서버가 정상적으로 동작하고 있는지, 네트워크가 의도한대로 설정되어있는지 등을 확인함

👇 더 자세한 내용

 

[리눅스] nslookup 명령어: DNS 쿼리하는 방법

리눅스 nslookup 명령어는 도메인 정보 등 DNS 레코드를 쿼리할 수 있는 도구입니다. 이 글에서는 nslookup의 사용법과 옵션들을 알아봅니다.

www.lainyzine.com

sudo systemctl 

프로그램을 제어하는 명령어이다

sudo systemctl restart  재부팅
sudo systemctl stop nginx  종료
sudo systemctl stop nginx  시작

 

👇 더 자세한 내용

 

[Linux] systemctl 명령어 & 프로세스 상태 확인

○ systemctl 서비스 제어 명령어 # systemctl [명령] [서비스명] : 서비스명 입력할 때 [서비스명].service를 다 쳐야하는 경우도 있습니다. 예시) # systemctl start httpd 아파치 서비스 시작 # systemctl st..

it-serial.tistory.com

nginx 접속 html 수정하기

초기 화면

sudo nginx -t 환경설정 현재 값의 위치

nginx 설정파일을 찾아간다 

ls -al /etc/nginx

.conf -> 환경설정 파일

nginx 홈페이지를 보면 문서를 보면 해당 내용에 대한 뜻이 있음

include = 여기를 참조하고 있다 --> 이동 / Virtual에 대한 내용이 참조하는 위치로 이동

default 파일이 /etc/nginx/sites-available에 있다는 뜻

다시 이동

default 파일을 수정한다

읽기전용이라 수정 안됨 -> sudo vi default 로 하기

사용하는 index.html 파일의 위치를 바꾼다 (해당 위치에 내가 만든 index.html 문서를 넣어둘것임)

 

해당 디렉터리에 인덱스로 사용할 html 파일을 만든다

nginx 재시작

sudo systemctl restart nginx

index 바뀜

 

VS Code에서 작성한 파일 AWS 서버에 올리기

VS Code를 열고 index.html파일을 만든다

이후 해당 위치에서 cmd열기

ssh를 scp로 변경하여 붙여넣기 (원격으로 복사하는 명령어임)

키 위치 잘 넣기 

scp -i 키페어 복사할 파일 ubuntu@~~:옮겨질 경로 적기 (띄어쓰기 주의)

scp -i "키페어 경로/keypair.pem" index.html ubuntu@13.52.0.61:~/www/html

클라우드 환경에서 확인

nginx 재시작 후 확인

 

HTML 파일 수정하고 수동 배포하기

변경할때 마다 scp 명령어로 배포 (수정 -> 배포 반복)

수정 후 scp 다시 입력 

다시 재시작

적용 됨

 

자동배포 (DevOps) -> Git으로 올리고 배포 함

git에 올려놓으면 시간 맞춰서 클라우드 환경으로 올라감

 

오늘의 회고

  • 네트워크부분은 여전히 머리가 아프지만 재미있었다 
  • 배포라는거를 처음 해봤는데 신기하기도 하고 이걸 어떻게 더 디밸롭할지 궁금했다 
    • nginx를 어떻게 수정한다는거지,,? 했는데 리눅스 상에서 디폴트파일을 수정하고 로컬에서 html을 만들어 올리니까 뭔가 신기했다 
  • 내일부터 2일은 취업특강이다~ ^______^ 
Comments