본문 바로가기

스터디/리눅스 커맨드라인

[리눅스] 16. 네트워킹

리눅스는 모든 종류의 네트워킹 시스템과 방화벽, 라우터, 네임서버, NAS 박스 등과 같은 네트워크 장비를 구축할 때 사용된다.

 

 

1. 네트워크 점검 및 모니터링

 

1) ping - 네트워크 호스트로 고유 패킷 전송하기

IMCP ECHO-REQUEST라고 하는 고유의 네트워크 패킷을 지정된 호스트로 전송한다.
이러한 패킷을 수신하는 대부분의 네트워크 장비들을 이에 응답하여 네트워크 연결을 확인시켜준다.

예를 들어, http://www.linuxcommand.org/ 에 접속하려고 한다.
$ ping linuxcommand.org​

위 명령어가 실행되면, ping은 패킷을 중단이 없는 한 지정된 간격 (1초)에 따라 계속 전송한다.

 

2) traceroute - 네트워크 패킷 경로 추적하기

로컬 시스템으로 부터 지정된 호스트까지의 모든 네트워크 이동 구간들을 보여준다.

예를 들어, http://www.slashdot.org/ 사이트까지의 도달 경로를 확인하려면
$ traceroute slashdot.org​

 

위의 명령어를 사용하면 된다.

 

3) netstat - 네트워크 설정 및 통계 정보 확인하기

다양한 에트워크 설정 사항이나 통계 정보를 확인하는 데 사용된다.

-ie 옵션으로 시스템의 네트워크 인터페이스 정보를 확인할 수도 있다.
etho0라는 첫 번째의 인터페이스는 이더넷 인터페이스이고, 두 번째 io는 루프백 인터페이스로 시스템 사체에서 네트워크 상태를 테스트 할 때 사용하는 가상 인터페이스이다.

-r 옵션으로 커널의 네트워크 라우팅 테이블 정보를 보여준다.

 

 

2. 네트워크로 파일 전송하기

 

1) ftp - 파일 전송 프로토콜로 파일 전송하기

네트워크에서 사용되는 파일 전송 프로토콜이다. 또한, 파일 다운로드용으로 인터넷상에서 광범위하게 사용된다.

FTP는 계정 정보가 평문으로 전송되기 때문에 보안에 매우 취약하다.

 

2) lftp - 향상된 ftp

기존의 ftp의 업그레이드 버저니이며 다운로드 실패 시 자동으로 재시도 하기, 백그라운드 프로세스, 탭으로 경로명 가종 완성 등의 기능이 있다.

 

3) wget - 비대화식 네트워크 다운로더

웹이나 FTP 사이트를 통해 컨텐츠를 다운로드할 때 유용한 프로그램이다.
단일의 파일이든 다주 파일이든 혹은 사이트 전체까지도 다운로드할 수 있다.

예를 들어, http://www.linuxcommand.org/ 사이트의 첫 번째 페이지를 다운로드 하려면
$ sudo wget http://linuxcommand.org/index.php​

 

위의 명령어로 다운로드할 수 있다.

 

 

3. 원격 호스트와 안전하게 통신하기

 

1) ssh - 원격 컴퓨터에 안전하게 로그인하기

ssh 클라이언트 프로그램은 원격 ssh 서버에 연결할 때 사용된다.

remote-sys 라는 이름의 원격 호스트에 연결하기 위해서는
$ ssh remote-sys​
위의 명령어로 로그인이 가능하고, 종료하기를 원하면 exit를 입력하면 된다.


다른 사용자명으로 원격시스템에 연결하는 것도 가능하다.

예를 들면, me라는 사용자가 bob이라는 이름의 계정을 원격 시스템에 가지고 있다면, 사용자 me는 bob 계정으로 원격 시스템에 로그인할 수 있다.
$ ssh bob@remote-sys​


물론 ssh는 원격 호스트가 인증되지 않으면 에러 메시지를 표시할 것이다.

 

2) scp와 sftp - 안전하게 파일 전송하기

OpenSSH 패키지는 네트워크를 통해 파일을 복사할 때, SSH로 암호화된 터널을 활용할 수 있는 프로그램이 두 가지 있다.

하나는 cp 프로그램과 유사한 scp(보안복사)이다.
목적지에 대한 경로명이나 대상이 되는 정보 앞에 원격 호스트명과 콜론 기호가 나온다는 차이점이 있다.
$ scp remote-sys:document.txt .
me@remote-sys's password:
. . .​


두 번째는 sftp이다. ftp 프로그램에서 보안 기능이 향상된 버전을 뜻한다.
ftp 프로그램과 유사하게 작동하지만 원격 호스트에 실행할 FTP 서버가 필요하지 않는다는 차이점이 있다.
$ sftp remote-sys​