what is netcat

what is nc

netcat 명령어로 스캔도 가능하고 각종 네트워크 기능이 있는 유틸임

아마 가장 많이 쓰이는 방법은 간단한 접속이다.

위와 같이 nc host1.dreamhack.games 13074 이런식으로 사용된다.

그럼 여기서 많이 쓰이는 기능은 뭘까? nc의 가장 큰 장점은

nc -l 명령어이다. 이는 listen 이라는 뜻으로 해당 서버가 listen을 한다는 의미이다. 주로 어떤 포트를 listen 하냐는 의미로 nc -l -p 12345 이런식으로 사용된다.

직접 한 docker로 실험을 해보았다.

docker 컨테이너 내부에 간단한 hello world를 실행하는 c언어 파일을 컴파일 한뒤

JavaScript
root@b6e292d5531e:/app# while true; do nc -l -p 12345 < <(./hello); done

와 같은 bash shell 명령어를 실행 해준다.

bash shell 문법에는 <( ~~ ) 이런 문법이 있는데 이는 괄호 안에 실행 결과를 가져오는 것으로 그 앞에 리다이렉션인 < 에 의해 listen 하고 있다가 ./hello의 결과를 보내게 된다.

그러면 이런 식으로 listen 상태가 되며, docker 밖에서 이제 해당 port로 접근하면

다음과 같이 hello world를 반송하게 된다.