본문 바로가기

리눅스

우분투에서 socat을 설치하고 사용하는 방법(포트 포워딩)

반응형

우분투에서 socat을 설치하고 사용하는 방법(포트 포워딩)

socat은 네트워크 데이터 전송을 위한 다목적 CLI (Command Line Interface) 유틸리티입니다. 소켓 프로그래밍을 위한 편리한 도구로 사용됩니다. socat을 사용하면 다양한 네트워크 프로토콜을 지원하고 다양한 작업을 수행할 수 있습니다. 일반적으로 데이터를 읽고 쓰는 데 사용되며, 포트 포워딩, SSL 터널링, 파일 전송 등 다양한 용도로 활용됩니다.

socat 설치

socat은 기본 저장소에서 설치할 수 있습니다.

sudo apt-get update
sudo apt-get install -y socat

사용 예시

TCP 포트 포워딩

  • 로컬 호스트의 TCP 포트 8080에서 원격 호스트의 TCP 포트 80으로 연결을 포워딩합니다.
socat TCP-LISTEN:8080,fork TCP:remote_host:80
  • 로컬 호스트의 TCP 포트 3306에서 들어오는 연결을 받아들이고 이를 10.10.20.76의 TCP 포트 3306으로 포워딩
socat tcp-listen:3306,reuseaddr,fork tcp:10.10.20.76:3306 &
  • 로컬 시스템의 TCP 포트 5601에서 들어오는 연결을 받아들이고 이를 10.107.213.123의 TCP 포트 3306으로 포워딩
socat tcp-listen:5601,reuseaddr,fork tcp:10.107.213.123:3306 &

UDP 포트 포워딩

  • 로컬 호스트의 UDP 포트 1234에서 원격 호스트의 UDP 포트 5678로 연결을 포워딩합니다.
socat UDP-LISTEN:1234,fork UDP:remote_host:5678

파일 복사

  • 파일을 복사합니다.
socat FILE:source_file.txt FILE:destination_file.txt

파일 간 데이터 전송

  • source-file에서 데이터를 읽어 destination-file에 씁니다.
socat /path/to/source-file /path/to/destination-file

표준 입력 및 출력 간의 데이터 전송

  • 표준 입력에서 읽은 데이터를 표준 출력에 쓰는 간단한 파이프를 설정합니다.
echo "Hello, world!" | socat - -

SSL 터널링

  • 로컬 호스트의 TCP 포트 443를 수신하고 들어오는 연결을 www.example.com의 TCP 포트 443으로 SSL 터널링합니다.
socat TCP-LISTEN:443,reuseaddr,fork OPENSSL:www.example.com:443

간단한 TCP 서버 만들기

  • 로컬 호스트의 TCP 포트 12345에서 연결을 수신하는 간단한 TCP 서버를 설정합니다.
socat TCP-LISTEN:12345,fork -

 

이것은 socat의 간단한 예시들입니다. socat은 다양한 기능을 제공하므로 더 많은 사용 예시를 찾고자 한다면 socat의 공식 문서를 참조하는 것이 좋습니다.

 

728x90
반응형