본문 바로가기
SWE/네트워크

[네트워크][linux][windows] 네트워크 통신 테스트에 유용한 툴 "socat" 소개

by S나라라2 2023. 7. 7.
반응형

네트워크 통신 테스트할 때, 유용한 툴을 소개합니다.

프록시 서버로 사용할 수도 있고, 간단한 소켓으로 만들 수도 있습니다.

강추!!

 


 

Socat 이란?

Socat Gerhard Rieger 개발한 오픈소스 소프트웨어입니다. Gerhard Rieger 다목적 소켓 터널링을 위 유명한 유닉스 소켓 프로그램인 "Netcat" 저자이기도 합니다.  Socat Netcat 유사한 목적을 가지며, 다양한 통신 작업을 수행할 있는 강력한 도구로 인기를 얻었습니다.

 

네트워크 통신을 위한 다목적 소켓 터널링 프로그램입니다. 소켓을 생성하고, 소켓 데이터를 전송하고, 소켓을 연결하는 다양한 네트워크 작업을 수행할 있습니다. Socat 다양한 운영체에에서 사용할 있으며, 프록시 서버, 포트 포워딩, 네트워크 디버깅, 데이터 송신 등의 용도로 활용됩니다.

 

 


Socat 다양한 사용 예시

Socat 다양한 용도로 사용될 있습니다.

아래에는 socat 사용한 가지 예시를 제시합니다.

 

 

1. 포트 포워딩

Socat 사용하여 로컬 포트를 외부 서버의 포트로 포워딩할 있습니다.

$ socat TCP-LISTEN:8080,fork TCP:example.com:80

예시는 로컬에서 8080포트로 들어오는 연결을 example 80 포트로 전달합니다.

 

 

2. 프록시 서버

Socat 사용하여 프록시 서버를 구성할 있습니다.

$socat TCP-LISTEN:8888,fork TCP:example.com:80

예시는 로컬에서 888포트로 들어오는 연결을 example.com 80 포트로 전달하며, 클라이언트에게 프록시 서버로 동작합니다.

 

 

3. SSL/TLS 터널링

socat 사용하여 SSL/TLS 연결을 터널링 있습니다.

$ socat TCP-LISTEN:443,reuseaddr,fork OPENSSL:example.COM:443,VERIFY=0

예시는 로컬에서 443 포트로 들어오는 SSL/TLS 연결을 example.com 443 포트로 전달하며, 서버 인증서를 검증하지 않습니다.

 

 

4. 파일 전송

Socat 사용하여 파일을 전송할 있습니다.

$socat FILE:test.txt TCP-LISTEN:1234

예시는 test.txt파일의 내용을로컬 1234 포트로 연결된 클라이언트에게 전송합니다.

 

 

5.UDP 통신

Socat 사용하여 UDP통신을 설정할 있습니다.

$socat UDP-LISTEN:1234,fork UDP:example.com:5678

예시는 로컬 1234 포트로 들어오는 UDP패킷을 example.com 5678 포트로 전달합니다.

 

 

외에도 socat 많은 다른 네트워크 통신 시나리오에 유용하게 사용될 있습니다.

Socat 다양한 옵션과 기능을 활용하여 원하는 작업에 맞게 사용할 있습니다.

 

 


개인적으로 포트 포워딩&프록시 서버로 가장 유용하게 사용하고 있습니다.

네트워크 패킷 덤프하기도 편리합니다.

 


설치 방법

 

- 리눅스

Linux 경우 패키지 관리자를 사용하여 설치할 있습니다

$ sudo apt-get install socat

 

- 윈도우

http://www.dest-unreach.org/socat/download/

 

Index of /socat/download

 

www.dest-unreach.org

 

 

반응형