- 전체
- C/C++ 일반
- C/C++ 수학
- C/C++ 그래픽
- C/C++ 자료구조
- C/C++ 인공지능
- C/C++ 인터넷
- wxWidget
- GTK+
- UNIX or LINUX programming
- 리눅스 마스터 - 국가공인자격
- VC++/ MFC
- C#/CLI/.NET
- QT/기타UI
- Boost lib
- 오픈소스 C 분석자료
- MSA (마이크로서비스), Docker, kubernetes
- WSL(windows subsystem linux)
리눅스 마스터 - 국가공인자격 [linux master][리눅스 마스터][국가기술자격] [리눅스] socat 명령어(proxy)
2024.02.28 13:59
[linux master][리눅스 마스터][국가기술자격] [리눅스] socat 명령어(proxy)
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
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의 기능은 다양하며 여러 가지 용도로 사용될 수 있습니다.
[출처] https://scbyun.com/entry/linux-socat-%EB%AA%85%EB%A0%B9%EC%96%B4proxy
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 16 |
[C/C++ 자료구조] 아스키 코드표(ASCII Table)
| 졸리운_곰 | 2023.08.16 | 360 |
| 15 | [C 프로그래밍] 파일 출력 함수_3.연결 리스트 저장, 불러오기 | 졸리운_곰 | 2022.06.17 | 322 |
| 14 |
[C/C++ 자료구조] 5일만에 뚝딱 스크립트 언어 만들기 PGLight (1/5)
| 졸리운_곰 | 2021.04.12 | 301 |
| 13 |
[C/C++] 미니멀 가상화폐 코드 , 미니멀 블룩체인, noincoin (Block Chain in C Major)
| 졸리운_곰 | 2021.01.30 | 279 |
| 12 |
Visual Studio Community로 V8 엔진 다운로드 및 빌드하고 간단히 살펴보기
| 졸리운_곰 | 2020.11.30 | 271 |
| 11 | zlib msvc로 포팅하기 2 | 졸리운_곰 | 2018.02.23 | 356 |
| 10 | zlib msvc로 포팅하기 1 | 졸리운_곰 | 2018.02.23 | 288 |
| 9 | zlib 개요 | 졸리운_곰 | 2018.02.23 | 572 |
| 8 | [zlib] API 사용법 | 졸리운_곰 | 2018.02.23 | 502 |
| 7 | [zlib] DEFLATE algorithm (2) - Huffman coding | 졸리운_곰 | 2018.02.23 | 352 |
| 6 | [zlib] DEFLATE algorithm (1) - LZ77 | 졸리운_곰 | 2018.02.23 | 504 |
| 5 |
zlib 입문
| 졸리운_곰 | 2018.02.23 | 629 |
| 4 | [펌] zlib를 사용법 | 졸리운_곰 | 2018.02.23 | 783 |
| 3 |
Create Custom Binary File Formats for Your Game's Data
| 졸리운_곰 | 2018.02.23 | 373 |
| 2 |
GitHub - codelibs/libdxfrw: C++ library to read and write DXF/DWG files
| 졸리운_곰 | 2017.04.27 | 655 |
| 1 | C++ Json Parser 조사 | 졸리운_곰 | 2015.11.10 | 1004 |

