- 전체
- 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
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 15 |
[C/C++ graphic GUI] An introduction to the Dear ImGui library : Dear ImGui 라이브러리 소개
| 졸리운_곰 | 2023.11.07 | 363 |
| 14 | [C/C++, graphics] SDL Tutorial Basics | 졸리운_곰 | 2021.05.15 | 316 |
| 13 |
How to Install Dev-C++ and the GLUT Libraries for Compiling OpenGL Programs with ANSI C
| 졸리운_곰 | 2021.02.02 | 321 |
| 12 |
CONREC : A Contouring Subroutine 등고선 그리기
| 졸리운_곰 | 2018.01.11 | 638 |
| 11 |
왼손 / 오른손 좌표계 비교: Left- vs. Right-handed coordinate systems
| 졸리운_곰 | 2017.09.24 | 432 |
| 10 |
3D Graphics with OpenGL
| 졸리운_곰 | 2017.09.24 | 1214 |
| 9 | OpenGL의 회전순서 | 졸리운_곰 | 2017.09.24 | 294 |
| 8 |
통일 D3D 및 OpenGL 좌표 시스템
| 졸리운_곰 | 2017.09.24 | 337 |
| 7 |
[OpenGL] 중심점(pivot)으로 물체 회전하기
| 졸리운_곰 | 2017.06.25 | 1139 |
| 6 |
3D Graphics with OpenGL
| 졸리운_곰 | 2017.06.06 | 415 |
| 5 |
OpenGL프로그래밍:간단한 다각형 랜더링
| 졸리운_곰 | 2017.06.06 | 537 |
| 4 | 기하학 사이트들.. | 졸리운_곰 | 2017.06.06 | 330 |
| 3 |
기하변환
| 졸리운_곰 | 2017.06.06 | 989 |
| 2 |
assimp : Open Asset Import Library
| 졸리운_곰 | 2017.05.14 | 352 |
| 1 |
MeshLab the open source system for processing and editing 3D triangular meshes.
| 졸리운_곰 | 2017.05.13 | 386 |

