728x90
nc 명령어
nc(netcat)는 네트워크 통신을 다루는 유용한 명령 줄 도구로, TCP와 UDP 연결을 생성하고 관리하는 데 사용할 수 있습니다. 이를 통해 포트 체크, 데이터 전송, 서버 테스트 등 다양한 작업을 수행할 수 있습니다.
1. nc 명령어 설치
nc 명령어는 일부 시스템에서 기본으로 제공될 수도 있고, 필요한 경우 설치해야 할 수도 있습니다. 다음과 같이 설치할 수 있습니다.
- Ubuntu/Debian
sudo apt update
sudo apt install -y netcat
- CentOS/RHEL
sudo yum install -y nc
sudo yum install -y nmap-ncat
2. TCP 포트 체크
nc를 사용하여 특정 호스트의 TCP 포트가 열려 있는지 확인할 수 있습니다.
nc -zv your_host_ip your_port
예를 들어, 웹 서버의 80번 포트를 체크하려면
nc -zv google.com 80
- -z: 연결하지 않고 포트의 열림 여부만 확인합니다.
- -v: 상세한 출력 모드로 실행합니다.
- Ubuntu/Debian
$ nc -zv -w 3 google.com 80
Connection to google.com (142.250.76.142) 80 port [tcp/http] succeeded!
- CentOS/RHEL
$ nc -zv -w 3 google.com 80
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 142.250.76.142:80.
Ncat: 0 bytes sent, 0 bytes received in 0.23 seconds.
728x90
3. UDP 포트 체크
UDP 포트 체크 역시 비슷한 방식으로 진행합니다.
nc -uzv your_host_ip your_port
예를 들어, DNS 서버의 53번 포트를 체크하려면
nc -uzv 8.8.8.8 53
- Ubuntu/Debian
$ nc -uzv 8.8.8.8 53
Connection to 8.8.8.8 53 port [udp/domain] succeeded!
- CentOS/RHEL
$ nc -uzv 8.8.8.8 53
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 8.8.8.8:53.
Ncat: UDP packet sent successfully
Ncat: 1 bytes sent, 0 bytes received in 2.07 seconds.
4. nc를 사용한 간단한 서버와 클라이언트 통신
nc를 사용하여 간단한 서버와 클라이언트 통신을 수행할 수도 있습니다. 다음은 예시입니다.
- 서버
nc -l -p your_port
- 클라이언트
nc your_host_ip your_port
이를 통해 서버와 클라이언트 간 데이터를 주고받을 수 있습니다.
- 서버(Ubuntu/Debian)
vim ncServer.sh
#!/bin/bash
PORT=8080
SUCCESS_MESSAGE="Connection successful. Welcome to the server!"
# Start listening on the specified port and send the success message
echo "$SUCCESS_MESSAGE" | ncat -l -p "$PORT" --send-only
ncat을 사용하여 포트 8080에서 들어오는 연결을 수신하고, $SUCCESS_MESSAGE 변수의 값을 보냅니다. --send-only 옵션은 데이터를 수신하지 않고 전송만 하도록 합니다.
chmod +x ncServer.sh
bash ncServer.sh
- 클라이언트(CentOS/RHEL)
nc 172.17.0.3 8080
$ nc 172.17.0.3 8080
Connection successful. Welcome to the server!
5. 데이터 전송
nc를 사용하여 파일을 다른 시스템으로 전송할 수도 있습니다. 예를 들어, 파일을 보내는 서버와 받는 클라이언트를 구성하여 파일을 전송할 수 있습니다.
- 서버
nc -l -p your_port > received_file
- 클라이언트
nc your_host_ip your_port < file_to_send
위와 같이 하면 파일이 서버에서 클라이언트로 전송됩니다.
nc 명령어는 다양한 용도로 사용할 수 있는 강력한 도구입니다.
728x90
'리눅스' 카테고리의 다른 글
Docker를 사용하여 Swagger UI를 실행하고 REST API를 테스트하는 방법 (0) | 2023.08.26 |
---|---|
우분투에서 HPE 서버의 iLO 설정을 관리하기 위해 hponcfg 유틸리티를 설치하고 사용하는 방법 (0) | 2023.08.25 |
ssh "Host key verification failed" 오류 해결 방법 (0) | 2023.08.22 |
timedatectl 명령어 (0) | 2023.08.22 |
PHP-FPM 로그 파일의 로테이션 설정하는 방법(php-fpm logrotate) (0) | 2023.08.10 |