728x90

Linux를 사용하다보면 SSH로 접속을 하더라도 운영체제에 대해서 정확히 모를때가 많습니다.

그럴때 사용하는 명령어에 대해서 설명드리겠습니다.

 

Linux의 커널의 버전은 /proc/version에서 관리합니다.

 

cat 명령어

cat명령어를 사용해 /proc/version을 확인해 보면 아래와 같이 커널 정보를 확인할 수 있습니다.

cat /proc/version

cat 명령어

일반적 커널 정보 확인

uname이란 명령어를 통해 확인이 가능합니다.

 

uname은 옵션은 아래와 같습니다.

 

a : 상세정보

r : 커널의 릴리즈 버전을 확인합니다.

 

보통 a라는 옵션을 사용해 사용합니다.

 

uname 명령어

OS 버전 정보 확인

버전을 까지 한번에 확인하는 방법도 있습니다.

그 방법은 아래와 같이 2가지 명령어로 확인이 가능합니다.

 

cat /etc/redhat-release

cat /etc/*release*

 

OS 비트 확인

OS에 대해 비트에 대해 확인해서 설치를 해야될때가 있습니다.

그럴때는 아래와 같은 명령어를 통해 간단히 확인이 가능합니다.

 

getconf LONG_BIT

반응형
728x90

프로젝트를 진행하다 보면 보안에 따라 mac주소를 넘겨야 하는 경우가 많이 생깁니다.

대표적인 OS 리눅스&WINDOW mac 주소 확인하는 방법에 대해 포스팅하려고 합니다.

 

WINDOW

Window에서는 시작 버튼을 누른 후 cmd로 콘솔 창을 열어 준 후 명령어를 통해 확인이 가능합니다.

명령어로는 아래 2가지로 확인이 가능합니다.

1. ipconfig -all

ipconfig -all 실행화면

cmd 창을 실행시킨 후 ipconfig -all 을 통해 전체 IP 정보와 mac주소 정보를 확인할 수가 있습니다.

2.getmac -v

getmac -v 실행화면

cmd 창을 실행시킨 후 getmac -v 명령어를 통해 mac 주소를 직관적으로 볼수가 있습니다.

 

window에서는 위에 2가지 명령어로 간단하게 확인이 가능합니다.

 

리눅스(Linux)

리눅스 terminal에 접속 후 ifconfig -a | grep eth 명령어를 통해 확인이 가능합니다.

ifconfig -a grep eth

 

반응형
728x90

개발서버를 구성하다 보면 한 공유기(ex. IPTIME)에 다양한 외부 포트에 대한 접근을 내부 포트로 보내는 포트 포워딩을 하게 됩니다. 이에 따라 한 공유기로 다양한 서버를 구성을 할 수 있게 됩니다.

 

이와 같은 작업은 아래 3가지의 간단한 작업을 통해 포트포워딩 구성이 가능합니다.

  • 로그인
  • 메뉴접근
  • 새 규칙 추가

우선 IPTIME 관리자 페이지로 접근합니다.

보통 192.168.0.1로 접근하면 페이지가 열리게 됩니다.

만약 접속이 안된다면 주소를 확인하여 접속을 하게 됩니다. cmd에서 "ipconfig" 명령어를 실행한다면 아래와 같은 화면이 나옵니다.

빨간색으로 구성된 부분에 IP로 접근하면 접속이 가능할 겁니다.

 

1. 로그인

IPTIME admin 아이디로 로그인을 해주시면 됩니다.

관리 도구를 클릭해주시면 됩니다.

 

2. 메뉴 접근

IPTIME 메뉴

메뉴 포트 포워딩 설정으로 접근합니다.

3. 새 규칙 추가

새 규칙 추가를 통해

프로토콜, 외부 포트, 내부 포트에 대한 규칙을 정해 외부에서 다양한 방법으로 접근했을 시에 규칙을 세워

내부에서 동작을 할 수 있도록 설정합니다.

 

이와 같이 공유기의 포트 포워딩은 단순하게 끝납니다.

저 또한 포트 포워딩을 하는데 처음에는 그냥 단순한 사용법을 몰라서 헤매는 바람에 이와 같은 포스팅을 하게 되었습니다.

반응형

'네트워크' 카테고리의 다른 글

도커(Docker) 란?  (1) 2021.04.25
728x90

서버 관리를 하다 보면 실시간으로 서버 상태를 체크해야 되는 경우가 많이 생깁니다.

갑자기 운영하는 서버가 느려지거나 하는 고객 컴플레인이 걸려올 때는 원인 분석을 해야 되기 때문입니다.

 

top 명령어

그걸 위해 리눅스에서는 Top 명령어를 지원해줍니다.

 

리눅스 서버를 접근 후 top명령어를 실행하면 아래와 같은 화면이 나옵니다.

top 명령어 실행 화면

 

위에 실행화면으로 line 별로 대략적으로 설명을 하자면 아래와 같습니다.

  • 1 Line - 서버시간 10:17:44 , 1 user 사용자 접속,  load average 서버 부하율
  • 2 Line - 전체 프로세스 tasks 247 total , 실행 중인 프로세스 1 running, 대기 중인 프로세스 246 sleeping, 멈춘 프로세스 0 stopped , 좀비 상태 프로세스 0 zombie 
  • 3 Line - 유저 cpu 비중 0.6 us, 시스템 cpu 비중 0.1 sy, 나이스 한 cpu 비중 0.0, 99.1

이 외에 라인 밑에 있는 부분들은 프로세스 리스트입니다.

해당 실행화면은 오라클 DB서버에 접속한 것 입니다.

이에 따른 예시입니다.

 

아래 표는 프로세스 리스트 컬럼에 대한 설명입니다.

 

PID  프로세스 ID
USER 프로세스 실행시킨 사용자
PRI 우선순위
NI NICE 값
마이너스를 가지는 Nice value 우선순위 높음
VIRT 가상 메모리 사용량
RES 현재 페이지 크기
SHR 분할된 페이지, 사용된 메모리를 나눈 총합
S 프로세스 상태
%CPU 프로세스가 사용하는 CPU 사용율
%MEM 프로세스가 사용하는 메모리 사용율
COMMAND 실행된 명령어

 

이러한 top 명령어를 통해 실행되는 프로세스의 cpu 사용량을 체크하여 해당 프로세스를 kill 해주어 서버 지연 상태를 해결합니다.

반응형
728x90

최근에 클라우드가 성행하게 되면서 클라우드 가상화 기술 중 하나인 도커(Docker)를 많은 기업에서 사용하고 있습니다.

이러한 도커(Docker)라는 개념을 정확히 알고 나면 머릿속에 많은 개념들이 잡혔습니다. 저 또한 처음에 도커(Docker)라는 의미가 머릿속에 들어오지 않기 때문에 도커를 진짜 모른다는 사람에게 설명한다는 식으로 이 포스팅으로 최대한 쉽게 풀어내려고 합니다.

도커란 무엇인가?

  • 도커(Docker)의 개념
  • 이미지(Image) 란?
  • 컨테이너(Container) 란?

2013년 도커는 처음 등장한 컨테이너(Container) 기반 가상화 도구입니다. 도커는 Google Go Language로 개발되고 있으며 현재까지 지속적으로 업데이트를 지속하며 컨테이너 가상화 도구 중 핵심으로 잡아가고 있습니다.

 

도커는 리눅스 OS 기반이며 컨테이너 방식으로 관리를 통해 프로세스 실행 환경을 구축할 수 있게 해 줍니다.

프로세스 실행 환경을 도커에서는 이미지(Image)라고 부릅니다.

컨테이너의 이미지를 관리 및 실행을 통해 어느 환경에서도 컨테이너를 실행하여 쉽게 서버 실행 환경을 구축할 수 있도록 도와줍니다.

 

위에 설명한 글은 제가 알고 있는 지식을 풀어냈으나 정확하게 이해가 안 가실 수 있습니다.

각각의 의미를 추적하여 정확하게 이해가 갈 수 있도록 설명하겠습니다.

이미지(IMAGE) 란?

도커에서 프로세스가 사용하는 자원들(서버 프로그램, 소스 등)을 도커 이미지(Image)라 부릅니다.

컨테이너(Container) 생성하기 위하여 필요한 모든 파일과 설정값을 가지고 있는 것이라 생각하면 됩니다.

 

이미지의 특징

  • 한 번 만들어진 이미지는 변하지 않음.
  • 하나의 이미지로 여러 컨테이너 생성 가능
  • 컨테이너가 삭제돼도 이미지는 삭제되지 않음.
  • DockerHub를 통해 형상 관리 가능
  • API를 통한 자동화 기능 가능
  • 이미지 생성과정을 확인 및 수정 가능

컨테이너(Container) 란?

도커 컨테이너

컨테이너는 네이버 백과사전에서는 아래와 같이 정의합니다.

 

화물 수송에 주로 쓰는, 쇠로 만들어진  상자.  꾸리기가 편하고 운반이 쉬우며, 안에 들어 있는 화물을 보호할  있는 장점이 있다.

 

우리 사전의 의미만 알고 있기 때문에 그림과 같은 컨테이너를 상상하실 겁니다. 우리가 컨테이너 없던 시절은 배에다가 짐을 싣을때 많은 짐을 쌓을 수가 없었습니다. 하지만 이제 종류/구분 별로 컨테이너에 짐을 실어 컨테이너만 싣어 운반하고 있어 관리 및 효율적인 측면에서 배송이 쉬워졌습니다.

마찬가지로 도커는 가상화 기술 중 하나로 도커의 컨테이너는 프로세스가 사용하는 자원들을 격리하는 환경을 컨테이너로써 만드는 것입니다. 그래서 그 컨테이너를 명령어를 통해 그 자원들을 그대로 사용할 수 있게 만들어 주는 역할을 합니다.

 

컨테이너 특징

  • 이식성이 좋다
  • 컨테이너의 격리공간이 있어 버전 간 관리에 있어 충돌이 없다.
  • 빠른 배포와 서비스가 가능하여 애플리케이션 라이프사이클의 자동화가 가능하다
  • 개발 환경을 실제 운영환경과 동일하게 사용이 가능하게 격리공간으로 활용해서 개발/운영 프로세스가 단순해진다.
반응형

'네트워크' 카테고리의 다른 글

공유기 포트포워딩(IPTIME) 하는법  (0) 2021.06.18
728x90

AJP

AJP는 웹서버(Apache)에서 요청되는 것을 WAS에서 들어오는 요청을 위임하는 프로토콜 입니다.

웹 WAS를 구축하는 사람들은 AJP를 통해 웹서버로부터의 오는 요청들을 로드 밸런스 역할로 이용합니다.

 

예를 들어 TOMCAT SERVER.XML에서 AJP를 사용해 각 PORT에 맞는것을 요청해 어떤 PORT로 들어오면 이 WAS를 탈 수 있게 해줍니다.

 

Tomcat Server.xml 예시

위에 사진은 웹서버에서 7019로 들어온 Port를 이 server.xml로 설정된 TOMCAT(WAS)에서 받는 예시입니다.

 

위에 AJP를 사용하기 전 아파치(웹) 서버에서 톰캣으로 보내기 위해 mod_jk라는 모듈을 사용합니다.

 

왜 굳이 웹 서버와 WAS를 나뉘어서 설정을 하는지에 대해서는 아래 포스팅을 보시면 이해가 되실것이라 생각합니다.

아래 URL에서 확인하시면 됩니다.

URL : (gaebaldiary.tistory.com/27)

 

 

 

mod_jk

그렇다면 mod_jk는 무엇인가에 대해 알아보도록 하겠습니다.

 

1. 사용자가 아파치 웹 서버에 접속 Request를 보냅니다.

2. 웹 서버는 맞는 URL과 PORT를 점검한 후 WAS로 보냅니다. (mod_jk역할)

3. 해당 WAS에 설정되어 있는 AJP포트에 맞는 것을 받아 해당 WAS에 소스를 실행합니다.

 

즉 mod_jk는 (APACHE)WEB 서버와 (TOMCAT)WAS를 연결해주는 중간역할 및 로드밸런스 역할을 해준다고 생각하면 됩니다. 그리하여 웹 서버하나로 다중의 WAS를 구현할 수 있게 해주는 프로토콜 입니다.

 

mod_jk 설정방법

 

아래는 해당 mod_jk 설정방법을 간략하게 설명했습니다.

 

아파치 웹 서버의 httpd.conf에 property로 정리해둔 파일을 include 해주어 아래와 같이 property에 코딩을 해줍니다.

그리고 어떤 url에 따라서 worker3으로 갈지도 설정을 해줍니다.

EX) /*.do = worker3

 

그렇다면 해당 URL로 접속 시 AJP포트 7019에 접속을 하여 Tomcat Server.xml 예시에 있는 WAS로 접속을 하게 되어 실행되게 됩니다.

 

웹 서버를 구축하면서 가장 중요시 되는 개념들을 차근차근 정리하고 있습니다.

해당사항이 도움이 됐을지는 모르겠지만 저또한 배우면서 진행중이라 계속하여 포스팅하고 포스팅 된 글에서 수정을 하도록 하겠습니다.

반응형
728x90

IT에 종사하는 분들이라면 정말 많이 들어본 단어 일 것 입니다.

그렇다면 과연 프록시 서버란 무엇일까요?

 

프록시(Proxy) 서버란?

 

프록시 서버는 간단하게 비유를 하자면 대리인 또는 중간업자 라고 생각하시면 됩니다

우리의 네트워크 구조 대부분이 클라이언트가 Request 요청 하면 서버에서 Response를 합니다. 그 중간에 프록시 서버가 끼어서 대리인 역할을 하여 통신을 수행해주는 역할을 합니다.

 

출처 : 위키피디아

위에 그림으로 Alice(Client), Bob(Server)라고 생각하고 설명을 드리자면

 

1. Alice(Client)가 프록시 서버에 현재 시간 알려줘. Request를 요청

2. 프록시서버가 이 Request를 받고 Bob(Server)에게 전달

3. Bob(Server) 는 7.PM이라는 Response를 프록시 서버에 전달

4. 프록시 서버는 Alice(Client)에게 Response를 전달

 

도식화 된 그림으로 설명하면 이렇게 된다.

 

자 그렇다면 그냥 바로 서버(Server)로 접근하면 더 빠를텐데 프록시서버에 접근하는 이유에 의아할 것 입니다.


프록시(Proxy) 서버 사용 목적

1. 캐시 데이터 사용을 위해

프록시 서버는 캐시를 사용해 저장해둔다. 그렇다면 Request를 서버에 접근할 필요 없이 캐시에 저장된 데이터를 Client에게 전달하면 됩니다. 전송 시간 및 트래픽 감소에 도움이 되어 서버 과부하 및 네트워크 병목 현상도 방지에 좋습니다.

 

2. 보안

프록시 서버는 중간에 경유하게 되면 IP를 숨기는 것이 가능합니다.

그리고 방화벽 또 한 가능하여 보안에 도움이 됩니다.

 

3.  접속우회

접속이 제한되어 있는 사이트를 다른나라로 우회하여 접근이 가능합니다.

그렇다면 많은 분들이 프록시 서버와 vpn의 차이를 궁금하실 겁니다.

그냥 접속우회의 관점은 똑같으나 하나의 차이가 있다면 프록시 서버는 데이터의 내용을 암호화 하지 않습니다.

하지만 vpn의 경우는 데이터 내용까지 암호화하기 때문에 더 보안에 좋다고 생각하시면 됩니다.

 

프록시 서버 설정 및 해제 (Chrome)

브라우저 오른쪽 상단에 점3개를 클릭합니다.

 

설정을 클릭합니다.

 

스크롤을 끝까지 내린 후 고급을 클릭합니다.

고급을 클릭하면 밑에 메뉴들이 펼쳐지는데 다시 한 번 스크롤을 끝까지 내린 후 컴퓨터 프록시 설정 열기를 클릭합니다.

그럼 MAC의 경우 아래와 같이 접속됩니다.

웹 프록시에 대해서 우회할 서버 ip와 포트를 설정 후 확인을 누르면 설정이 됩니다.

해제를 원하시면 구성프로토콜 전부를 체크해제 하시고 저장을 누르시면 됩니다.

 

윈도우도 마찬가지로 제가 설명해드린 프로세스대로 들어가신 다음에 우회할 서버 IP와 PORT를 설정하시고 확인을 누르시면 됩니다

반응형

'네트워크 > 기본용어' 카테고리의 다른 글

Yum 이란?  (0) 2021.03.11
IP에 대한 모든 것(IPv4, 유동Ip, 고정Ip, 공인Ip..)  (0) 2020.08.19
728x90

리눅스에서 가장 보는 명령어 중 "Yum" 입니다.

저도 처음에는 이 부분에 있어서 무슨 기능을 하는지 무엇을 뜻하는지 알수가 없었습니다.

 

Yum(Yellodog Update Modified) 이란?

 

리눅스에서 사용하는 인스톨(Install) 파일이라고 생각하면 될 것 같습니다.

구체적으로 말씀드리면, 레드햇 계열의 리눅스 배포판에서 사용하는 (패키지) 설치 관리 도구입니다.

기존에 rpm 명령어가 해결하지 못한 패키지 의존성 문제를 해결한 똑똑한 패키지 관리 tool 입니다.

Yum 명령어를 통해 설치,업데이트, 삭제를 진행할 수 있습니다.

 

패키지 의존성에 대해서 무슨 말인지 이해못하실 수 도 있습니다. 

패키지의존성이란?

 

B라는 패키지를 사용하기 위해서는 A 패키지 설치가 선행되어야 한다라는 것입니다. 즉 A라는 패키지 설치 없이는 B패키지를 사용할 수 없다는 의미입니다.

 

그렇다면 여기서, 패키지 의존성을 Yum은 어떻게 해결한 것인가에 대해 의문점이 있을 수 있습니다.

Yum은 자동으로 필요한 패키지까지 설치해 줌으로써 패키지 의존성문제를 해결했습니다. 필요한 패키치를 Yum 명령어 하나만 치면 알아서 서버로부터 다운받고 설치까지 합니다.

 

간단한 yum 명령어는 아래와 같습니다.

 

Yum 명령어 사용

반응형

+ Recent posts