리눅스 NC를 사용하는 법을 알아보도록 하자.

 

1. 개요

넷캣(Netcat)은 TCP나 UDP 프로토콜을 사용하는 네트워크 연결에서 접속/수신 중개를 수행하는 유틸리티 프로그램이다.  네트워크에 대한 디버깅이나 테스팅의 용도로 많이 사용된다.  가장 많이 사용되는 데에는 특정 호스트의 포트의 오픈 여부를 확인하는데 많이 쓰인다.

 

 

2. 설치확인

아래명령어를 통해 설치를 확인한다.

rpm -qa | grep ^nc-

만약 설치가 되어있다면 다음과 같은 메시지가 출력된다.

[root@zetawiki~]# rpm -qa | grep ^nc-
nc-1.84-10.fc6
[root@zetawiki~]# rpm -qa | grep ^nc-
nc-1.84-22.el6.x86_64

 

 

3. 설치하기

아래 명령어를 수행한다.

yum install nc

설치를 진행하면서 아래와 같이 최종적으로 Installed 버전 및 Complete! 메시지를 만난다면 성공!!

... (생략)
=======================================================
 Package    Arch      Version    Repository          Size
=======================================================
Installing:
 nc        x86_64    1.84-22.el6     Daum             57 k
 
Transaction Summary
=======================================================
Install       1 Package(s)
 
Total download size: 57 k
Installed size: 109 k
Is this ok [y/N]: y
... (생략)
Installed:
  nc.x86_64 0:1.84-22.el6
 
Complete!

 

 

리눅스에서 현재 열려 있는 포트를 확인하는 방법


열려 있는 모든 포트를 표시하기

netstat -nap

n:host명으로 표시 안함
a:모든소켓 표시
p:프로세스ID와 프로그램명 표시


LISTEN중인 포트를 표시하기

netstat -nap | grep LISTEN)



상대방 포트가 열려 있는지를 확인하는 방법

상대방 머신에 접속이 되지 않을 때 혹시 포트가 막혀 있는지를 확인해 보자.
netcat(nc) 네트워크 유틸리티를 이용하면 된다. 


특정 호스트의 특정 포트가 열려 있는지를 확인하기

nc -z 호스트주소 포트

ex) nc -z www.google.com 80

<결과예>

Connection to www.google.com 80 port [tcp/http] succeeded!

z: 포트 검색


특정 머신의 포트 범위를 지정하여 열린 포트를 확인하기

nc 호스트주소 -z 시작포트-끝포트

ex) nc 10.20.30.40 -z 19-21

<결과 예>
Connection to 10.20.30.40 21 port [tcp/ftp] succeeded!
Connection to 10.20.30.40 22 port [tcp/ssh] succeeded!
Connection to 10.20.30.40 23 port [tcp/telnet] succeeded!



특정 포트를 이용해 통신이 들어오는지 확인

nc  -l(소문자 엘) 포트번호

ex) nc -l 3320

<결과 예>
쉘이 기다리고 있다가 해당 포트로 통신이 들어오면 리스닝 상태가 풀림



리눅스에서 OS 비트수 확인하는 방법입니다. 

리눅스상에서 프로그램을 설치할 때 OS의 비트수에 맞게 설치해야 하는 경우가 있습니다. JDK라던가 그런 것들....

 

 

getconf 명령어를 통해서 OS의 bit 수를 확인할 수 있습니다.

 

32bit 커널인 경우 아래와 같이 32라는 숫자를 볼 수 있습니다. 

# getconf WORD_BIT
32
-------------------------------------------------------------------
# getconf LONG_BIT
32

64bit 커널인 경우 아래와 같이 LONG BIT에서 64라는 숫자를 볼 수 있습니다.

# getconf WORD_BIT
32
-------------------------------------------------------------------
# getconf LONG_BIT
64 

 

 

안녕하세요 이번 포스팅에서는 리눅스의 작업 관리자를 통해 리눅스 CPU 확인을 해보고 리눅스 메모리 확인을 할 수 있는 명령어에 대하여 다뤄보도록 하겠습니다.


1. 리눅스 CPU 확인


  리눅스 CPU 확인은 vi /proc/cpuinfo 를 통해 자세한 리눅스 CPU에 대한 하드웨어 정보를 확인할 수 있습니다.



  리눅스 CPU 사용량 확인 방법은 아래의 4번과 같이 작업관리자를 통해 확인하세요


2. 리눅스 메모리 확인


  리눅스 메모리 사용량 확인은 'free' 명령어를 통해 할 수 있습니다. 실행 결과는 아래와 같습니다.



  자세한 메모리 정보를 확인하고 싶다면 vi /proc/meminfo 명령어를 입력하여 내용을 확인하세요




3. 리눅스 용량 확인


  리눅스 메모리 사용량 확인 방법은 명령어 'df' 입니다. 입력 결과는 아래와 같습니다.





4. 리눅스 작업관리자


  윈도우 작업관리자 처럼 리눅스 작업관리자는 'top' 명령어로 실행됩니다. 실행 결과는 아래의 화면과 같습니다.


port를 열어주기 위해 다음과 같은 작업을 수행했다.


대상 port는 8080, 3030 두개이다.



 

- $ vi /etc/sysconfig/iptables
- 다음 내용(bold)을 파일 중간에 추가
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3030 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
- $ service iptables restart



혹은 다음과 같은 방법으로도 할 수 있다. (이게 더 나은듯)

- $ iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
- $ iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3030 -j ACCEPT
- $ iptables -D INPUT -j REJECT --reject-with icmp-host-prohibited
- $ iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
- $ service iptables save
- $ service iptables restart

 

 

※ reject 구문이 다른 구문보다 상위에 있을경우 reject 이후로는 작성한 내용이 적용되지 않는다.. 

 

Vi  editor

 

텍스트 입력 모드

 

범위 설정

 

커서 이동

i

커서 앞에서 삽입

1,$

모든

k

위로

a

커서 뒤에서 삽입

1,.

처음부터 현재 줄까지

j

아래로

o

현재 다음부터 삽입

.,$

현재부터 마지막 줄까지

l

오른쪽으로

O

현재 앞에서 삽입

.-2

현재부터 두줄까지

h

왼쪽으로

R

텍스트가 대치

.+2

현재부터 두줄까지

^

줄의 시작으로

텍스트 지우기

텍스트 치환

$

줄의 끝으로

x

문자

r

문자

b

단어 앞으로

dw

단어

cw

단어

w

단어 뒤로

dd

cc

Ctrl+d

화면 아래로

D

현재 줄의 끝까지

텍스트 붙이기

Ctrl+f

화면 아래로

:<R>d

블록단위의

<R>y

줄을 버퍼에 복사

Ctrl+u

화면 위로

탐색

pu

현재 다음에 붙이기

Ctrl+b

화면 위로

/sss

뒤쪽으로 sss탐색

:nnpu

nn다음에 붙이기

:nn

줄번호 nn으로

?sss

앞족으로 sss 탐색

파일 저장/불러오기

기타

n

마지막 탐색 명령 반복

:w

현재 이름으로 저장

Ctrl+l

화면을 다시 그림

탐색/치환

:w mm

mm으로 저장

:!<C>

잠깐<C> 명령 실행

:<R>s/ sss/ ttt/

처음 줄만 치환

:e mm

mm파일 편집

:q

종료

:<R>s/ sss/ ttt/g

모두 치환

:n

다음 파일 편집

:q!

저장 않고 종료

                       

 

 

Shell 사용하기

 

:!<C>

shell명령 실행 Enter키로 복귀

f

동일 검색

:sh

Shell prompt실행, exit 복귀

/<CR>

순방향 점체 검색

Ctrl+z

Vi process 중지, fg 복귀

?<CR>

역방향 전체 검색

화면 커서 이동

;

동일 반복 검색

z

현재 행을 화면의 상단으로 이동

N, n

전체 반복 검색

z.

현재 행을 화면의 중앙으로 이동

/^

검색 문자열을 행의 시작에 한정

Ctrl+E

아래로 이동

/$

검색 문자열을 행의 마지막에 한정

Ctrl+Y

위로 이동

/.

문자를 나타낸다

H

현재 화면의 상단으로 커서를 이동

/[ ]

문자 집합,  ^ 여집합

M

현재 화면의 중앙으로 커서를 이동

/ *

0 이상의 반복을 의미

L

현재 화면의 하단으로 커서를

/ \\<

패턴을 단어의 시작에 한정

텍스트 수정

/ \\>

패턴을 단어의 끝에 한정

r

문자 치환

/ \\

\\ 뒤의 문자를 에스케이프

R

커서 우측으로 입력되는 문자 치환

병합 / 명명

s

문자를 여러 문자로 치환, Esc종료

J

행을 행으로

cw

단어 치환

m

행을 a에서 z중의 하나로 표시

c$

커서부터 행의 마지막까지 치환

블록 지정 붙여 넣기

c^

행의 시작부터 커서까지 치환

yw

현재 커서가 있는 단어

cc

전체 치환

y$

현재 커서가 있는 곳에서 행의

Vi 옵션

y^

현재 커서가 있는 곳에서 행의 시작

vi –r <filename>

임시저장 파일 읽음

yy

현재 커서가 있는 행의 전체

vi –R <filename>

Read Only 읽음

p

붙여 넣기

vi +n <filename*gt;

시동 시에 n번째 행을 보여줌

 

 

           

 

1. Subversion 설치

# yum install subversion

 

2. Repository 생성

# mkdir /home/svn                 

# cd /home/svn

# svnadmin create --fs-type fsfs [저장소 이름]

   ex) svnadmin create --fs-type fsfs sampleRepo

# chmod –R g+w [저장소 이름]  or  # chmod 664 [저장소 이름]

   (그룹권한에 쓰기권하을 부여하겠다는 뜻)

3. Subversion 설정

# cd /home/svn/[저장소 이름]/conf

    ex) cd /home/svn/sampleRepo/conf

# vi svnserve.conf

    다음과같이 설정

 

[general]

anon-access = none (true : 누구나 읽기 가능, none : 안됨)

auth-access = write (인증된 사용자만 쓰기)

password-db = passwd (사용자 계정 정보 DB로 passwd 파일을 사용하겠다는 뜻)

authz-db = authz (사용자 계정 권한 정보 DB로 authz 파일을 사용하겠다는 뜻)

realm = sampleRepo (SVN 설명 또는 타이틀로 생각하면 됨)

 

[sasl] (SASL 암호화시 사용)

# use-sasl = true 

# min-encryption = 0
# max-encryption = 256

 

 

 

 

 

 (※ 각 설정값에 공백이 존재하면안됨, 즉, realm을 작성할경우 realm앞에 스페이스가 들어가면 오류남)

 

4. Subversion 사용자 계정 생성 

# vi passwd

아이디 = 비번

[user]

user01 = qwer1234

user02 = qwer1234

user03 = qwer1234

user04 = qwer1234

...

..

 

 

 

 

5. Subversion 사용자 권한설정

# vi authz

사용자별로 권한을 지정할 경우

[sampleRepo:/]

user01 = rw  

user02 = rw

...

 

 

모든사용자에 대한 공통권한 지정

[sampleRepo:/]

* = rw

 

5. Subversion 서버 시작 

# svnserve -d -r /home/svn

기본포트 3690이 아닌 다른 포트를 사용하면

# svnserve -d -r /home/svn --listen-port [포트번호]

 

6. 에디터 설정

subversion에서 사용할 기본적인 에디터 지정
지정하지 않으면 커밋등을 할수 없게 된다.
.bash_profile등에 추가
SVN_EDITOR=/usr/bin/vim
export SVN_EDITOR  

 

 

7.디렉토리 만들기 (안만들고 나중에 거북이 툴(TortoiseSVN)을 이용해서 생성해도 된다.)

     # svn mkdir svn://{Server domain or IP}/[저장소 이름]/trunk

# svn mkdir svn://{Server domain or IP}/[저장소 이름]/branches

# svn mkdir svn://{Server domain or IP}/[저장소 이름]/tags

ex) # svn mkdir svn://125.7.203.253/sample/trunk
vi가 실행되면 :q!로 빠져나간다.

 

Log message unchanged or not specified
a)bort, c)ontinue, e)dit, C를 누르고 엔터를 누르면

Committed revision 1. 메세지가 나온다.

      메시지가 나오지 않으면 계정관리및 디렉토리 권한 설정을 다시 확인한다

 

위 SVN 명령어 사용시에 svn 권한을 가진 리눅스 계정의 비밀번호를 물어볼수도 있습니다.

(저의 경우에는 root 계정으로 실행중이라 root 비밀번호를 물어봅니다.)

그리고 커밋을 위해 svn 사용자/비번을 입력하면됩니다.

예시

 

 [root@holictou svn]# svn mkdir svn://svn.matoker.com/test/trunk
svn: warning: cannot set LC_CTYPE locale
svn: warning: environment variable LANG is ko
svn: warning: please check that your locale name is correct
Authentication realm: <svn://svn.matoker.com:3690> test
Password for 'root':
Authentication realm: <svn://svn.matoker.com:3690> test
Username: matoker
Password for 'matoker':

-----------------------------------------------------------------------
ATTENTION!  Your password for authentication realm:

   <svn://svn.matokeri.com:3690> test

can only be stored to disk unencrypted!  You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible.  See the documentation for details.

You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/root/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? yes

Committed revision 1.

 

 

기타

 

레파지토리의 설정된 폴더의 내용

# svn list svn://{Server domain or IP}/[저장소 이름]

branches/

tags/

trunk/

 

10. SVN 서버 시작

 

# svnserve -d -r /home/svn

 

기본포트 3690이 아닌 다른 포트를 사용하면

# svnserve -d -r /home/svn --listen-port [포트번호]

 


11. svn 서버 확인 기본 포트는 3690

 

# netstat -ant | grep 3690 

 


12.  svn 서버 강제종료

 

# ps -ef | grep svnserve

# kill -9 {PID}

 

또는

 

# killall svnserve (svnserve 키워드가 들어간 프로세스 모두 강제 종료)

 

 

 

13. 거북이툴로 붙거나 이클립스로 붙어서 작업을 하려고하는것 이 최종 목표일것이다.

그떄 접속 Url은  svn://123.233.112.121/레파지토리명/ 으로 접속하면된다.

 

 


# 일부내용은 http://matoker.com/30180737519 (마토커)님의 블로그를 참고하여 작성되었습니다.

 

 

 

 

 

 


+ Recent posts