리눅스/CentOS

CentOS 간단한 인터넷관련 명령어

potentail 2016. 9. 9. 14:13

오늘은 잠깐 쉬어가는 타이밍으로 그냥 잡지식정도로 생각해주시면 될거같습니다

(물론 알아두고 잘써먹는다면 유용하게 쓸수있죠!!)


제가 좀 꿈같은 망상을 자주하는편이라 남들이 별로 좋지못하다는걸로 성공을 하고싶달까...

예를들어 프로그래밍을 할때도 그런 명령어는 많이 안쓰는게 좋다! 라고하면

왠지 이걸 좀 더 잘 활용해서 멋지게 만들순 없을까 생각하게되죠


쓸때없는 영웅심리이겠지만요 ㅎㅎ...





명령어 조금만 알아보고 오늘은 끝을내죠


먼저 인터넷이 연결이 되있어야하니 ifup명령어로 인터넷을 활성화 시켜줍시다

(ON BOOT로인해 인터넷이 이미 연결되어있으신분들은 OK)


ifup eth0


제일먼저 알아볼 명령어는 ping 입니다.

어릴적 컴퓨터가 안되서 a/s기사를 부르면 간혹 cmd창을 열어서

이것저것 치는게 멋있어 보였죠 (근데 내가 이런쪽으로 들어오니 별거아님 ㅇ.ㅇ)


[아 참고로 프로그래머는 프로그래머이고 서버는 서버지 절대로 남의 컴퓨터 고쳐주는 A/S기사는 아닙니다]

간혹 저희 어무니께서도 컴터공부하는짜식이 그딴것도 못하냐고 구박하실때가 있죠

(소프트웨어랑 하드웨어는 다른건데 ㅠㅜ...)


cmd에서도 동일한 명령어인 ping입니다.

솔직하게 말하면 ping이뭔지 간단한 네트워크 기초는 공부하시는게 좋습니다

(까놓고말하면 네트워크 기초같은거는 1~2주만 공부해도 서버공부하는데 크~게 도움됩니다)

진짜로 거짓말안치고 하는얘기지만 서버를 배우실려면 네트워크에대해 공부를 하셔야합니다


제일먼저 ping에대해 설명하도록하겠습니다

ping은 그냥 상대 컴퓨터와 통신이 가능한가? 를 따지는명령어로써

ping명령어를통해 상대방 컴퓨터 혹은서버에 패킷을 전송하고 받음으로써

통신이 된다는것을 의미하게되죠. 넓은 의미로는 인터넷이 되는건가?! 하는것이죠


ping 8.8.8.8


ping을통해 8.8.8.8이랑 통신이 되는지 확인을 해보았습니다

연결이 잘되서 핑이제대로 오간것을 확인할수 있습니다.


(계속 로그가 나타날텐데 중단하고싶으시다면 Ctrl + C 를 눌러주시면 중단됩니다)


그러면 8.8.8.8은 당최 누구서버 혹은 컴퓨터냐?!

하실텐데 8.8.8.8은 구글서버입니다.

네이버도 다음도 모두 서버가있어서 핑을 보낼순 있지만 네이버는 핑을 안받아줍니다

구글은 관대하기때문에 핑을 날려도 다 잘받아주죠


왜 안받아주는지는 네트워크 공부를좀 하셔야 깨달음을 얻을수 있습니다

(보안문제도있고 핑을 보내오면 서버과부하 문제도 있기때문입니다)


그러면 조금더 나아가서 옆동네 컴퓨터에도 핑이가는지 확인을 위해 저는 CentOS Client라는 이름으로

리눅스를 하나더 설치하였습니다.


CentOS Client


옆동네 아이피주소는 이렇게 나와있군요

그러면 서버에서 핑을 한번 날려보겠습니다



옆동네 컴퓨터랑도 통신은 잘되는군요


※하지만 알아두셔야할것은 이건 NAT로인해 부여받은 IP이므로 실제 IP주소는 아닙니다

자신의 실제 IP주소를 알고싶다면

네이버에 "내 아이피" 라고 검색하시면 자신의 공인아이피가 뜨게 됩니다


그다음 명령어는 netstat 입니다

net stat 띄어서 읽으면 대충 감이 오실텐데 네트워크에관련된 프로세스 혹은 포트들을 보여줍니다


netstat은 서버를 개설할때 자주쓰이므로 익혀두시는게 좋습니다


netstat


그냥 netstat을 치게되면 그냥 쭈우우우우우욱 뜨게됩니다


당연히 사용중이거나 사용하지않거나 그냥 쭉띄어주기때문에 grep 명령으를 통해

필요한것만 끌어와서 쓰는게 좋습니다.


이때 파이트 ( | )를통해 편리하게 찾을수 있습니다

| 는 영어 L이아니라 달러표시 \ 를 쉬프트로 누른채로 누르시면 | 가 나오게됩니다

많이들 헷갈려하시는 부분입니다.


netstat도 옵션이 몇가지가 있습니다

-l

 listen

 -n

 port number

 -t

 tcp 출력하기

 -u

 udp 출력하기

 -p

 program 이름

 -a all


뭐 크게 별건없고 기본적으로 netstat쓸땐 lntup를 붙여서 사용하시면 됩니다


listen은 영어단어대로하면 듣고있냐? 듣는중이냐? 라는뜻이되는데

이걸 어떻게 해석하면 좋냐면 너의 서비스를 내가 언제든지 시작하면 활성화가 되냐? 라는것입니다

즉 대기상태를 의미하게되죠


TCP 와 UDP는 어디서 많이 들어보셨을텐데

TCP는 쌍방통신 UDP는 일반통신 이라고 생각하시면 될거같습니다

친구랑 이야기를 나눈다고 생각해보면

TCP는 친구랑 의견을 주고받는 상태

UDP는 일반적으로 친구한테 내 이야기를 해줄때

라고 생각해주시면 될거같습니다

그만큼 TCP는 신뢰성이 높아지는대신 속도는 낮죠

UDP는 신뢰성이 떨어지는대신 속도는 높습니다


장단점이 있으니 대충 이렇구나~ 하고 넘어가시면 될거같습니다


음... netstat -lntup 이런식으로 사용해서 grep을쓰시면 편리하게 쓸수있죠

(-lntup 혹은 -antup를 주로씁니다)


그러면 바로한번 쳐봅시다


netstat -lntup


아까와는 많이 다르게 출력이 되있습니다

그래도 아직 원하는것만은 출력이 안되죠


그러면 sshd를 찾기위해서 grep명령어도 곁들여서 써보죠


netstat -lntup |grep ssh


그러면 ssh의 상태가 표시되죠

포트는 22번 상태는 LISTEN으로 언제든지 사용할준비가 되어있죠

(ftp나 http같은경우는 나중에 설치를하면서 이 명령어를 사용해봅시다)

아직까진 그렇게 필요성이 느껴지지 않는 명령어 일수도 있습니다


그리고 | (파이프) 에대해서는 쉽게 설명하면

파이프 왼쪽의 명령어 결과를 그다음으로 넘겨가서 실행하는것인데

이게 활용을 잘하면 엄청좋습니다. 그렇지만 생긴처럼 활용하는게 조금 창의적인 사람이라면 몰라도

평범하게 쓰시는분들이라면 조금 한정적으로 쓸수밖에 없습니다


마지막으로 netstat 했을때 나오는 상태를 조금만 알아보고 오늘은 끝내도록 하겠습니다


 LISTEN

 연결이 가능한 상태를 말함

 SYN-SENT

 연결을 요청한 상태

 SYN-RECEIVED

 연결요청을 받아 응답을 주고 대기하는 상태

 ESTABLISHED

 연결이 완료된 상태

 FIN-WAIT ,  CLOSE-WAIT,  FIN-WAIT2

 연결종료를 위해서 종료요청을 받은 후 과정

 CLOSING 전송된 메세지가 유실된 상태
 TIME-WAIT 연결종료가 됐는데, 한동안은 유지가 되는 상태
 CLOSED  연결이 완전히 종료됨


크게 이렇다 할만한게 없으니


LISTEN이랑 CLOSED정도만 알아두시면 괜찮을거 같습니다


당연히 서버를열고 제대로 관리하기위해선 다 알아두는게 좀 더 좋겠지만요




그외 궁금한점은

공지사항을 잘보시고 오픈채팅으로 물어봐주시면 감사하겠습니다

공지사항 바로가기