반응형
socat 명령어(proxy)
socat 명령어
- 양방향 데이터 전송을 위한 다목적 릴레이
socat 패키지 설치
- CentOS
sudo yum install -y socat
- Ubuntu
sudo apt-get update
sudo apt-get install -y socat
socat version 정보
socat -V | grep "socat version"
$ socat -V | grep "socat version"
socat version 1.7.4.1 on Mar 25 2022 09:51:32
socat 명령어의 기본 구문
- <address>는 소스와 대상 각각에 해당하는 주소 및 포트
socat [options] <address> <address>
TCP 서버에서 들어오는 연결을 다른 TCP 서버로 전달하는 경우
socat TCP-LISTEN:<source-port>,reuseaddr,fork TCP:<destination-host>:<destination-port>
- TCP-LISTEN:<source-port>:<source-port> 포트에서 들어오는 TCP 연결을 수신합니다.
- reuseaddr: 포트 재사용을 허용합니다.
- fork: 각 연결을 새로운 프로세스로 분기하여 병렬 처리를 지원합니다.
- TCP:<destination-host>:<destination-port>: <destination-host>:<destination-port>로 데이터를 전달합니다.
socat의 주요 옵션은 다음과 같습니다.
- -h, --help: 도움말 표시
- -V, --version: 버전 정보 표시
- -d, --debug: 디버그 모드 활성화
- -t, --timeout: 타임아웃 설정
- -T, --time: 각 연결의 지속 시간 제한 설정
- -b, --backlog: 대기열 크기 설정
- -x, --hexdump: 16진수 형식으로 데이터 출력
- -v, --verbose: 상세한 출력 모드 활성화
- -q, --quiet: 출력을 최소화
- -t, --tcp: TCP를 사용하여 데이터 전송
- -u, --udp: UDP를 사용하여 데이터 전송
- -s, --syslog: syslog를 통해 메시지 출력
- -n, --nodelete: 중간 소켓 삭제 비활성화
사용 예시
TCP 서버에서 들어오는 연결을 로그 파일에 기록하는 방법
socat TCP-LISTEN:8080,reuseaddr,fork OPEN:/var/log/tcp.log,creat,append
로컬 포트에서 들어오는 TCP 연결을 원격 서버로 포워딩하는 방법
socat TCP-LISTEN:8080,fork TCP:remotehost:80
로컬 포트에서 들어오는 연결을 다른 포트로 리다이렉트하는 방법
socat TCP-LISTEN:8080,fork TCP:localhost:8888
728x90
socat을 이용한 릴레이
구성 : (gateway -----------> relay -----------> db)
- relay(socat)
socat tcp-listen:3306,reuseaddr,fork tcp:10.10.20.76:3306 &
root@relay:~$ socat tcp-listen:3306,reuseaddr,fork tcp:10.10.20.76:3306 &
[1] 2881
netstat -tnlp | grep socat
root@relay:~$ netstat -tnlp | grep socat
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2881/socat
- geteway(client)
telnet xxx.xxx.xxx.180 3306
root@gateway:~$ telnet xxx.xxx.xxx.180 3306
Trying xxx.xxx.xxx.180...
Connected to ec2-xxx-xxx-xxx-180.ap-northeast-1.compute.amazonaws.com.
Escape character is '^]'.
N
5.7.23-log'
S%%q{71 !]z]Rte\@mysql_native_password^]
telnet> quit
Connection closed.
socat의 기능은 다양하며 여러 가지 용도로 사용될 수 있습니다.
728x90
반응형
'리눅스' 카테고리의 다른 글
쿠버네티스 클러스터에서 Helm을 설치하는 방법 (0) | 2020.10.06 |
---|---|
[Kubernetes] kubernetes 애플리케이션 배포 -3 (0) | 2020.10.06 |
리눅스 password hashing 알고리즘 변경하기 (0) | 2020.10.05 |
[명령어] grep, egrep, fgrep 명령어 (2) | 2020.10.05 |
nginx에서 limit_conn 및 limit_req 모듈 사용하기 (0) | 2020.10.05 |