socat使用手册范本Word格式文档下载.docx
- 文档编号:17344094
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:8
- 大小:19.83KB
socat使用手册范本Word格式文档下载.docx
《socat使用手册范本Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《socat使用手册范本Word格式文档下载.docx(8页珍藏版)》请在冰豆网上搜索。
7.3.3向远处端口发数据7
7.3.4本地开启端口7
7.3.5执行bash的完美用法7
7.3.6文件传递8
7.3.7转发8
7.3.8重定向9
7.3.9读写分流9
7.3.10通过openssl来加密传输过程10
1引言
1.1目的
本手册的编写目的是对在Linux系统使用socat的相关步骤进行总结。
1.2对象
本文档主要供下列人员使用:
实施人员部署socat
2修订历史
日期
版本
说明
作者
2012-10-25
1.0.0
初步整理
Marsleo
3参考资料
[1].
4术语与缩写
4.1术语
序号
术语名称
术语定义
4.2缩写
缩写
缩写意义
5socat简介
socat是一个多功能的网络工具,名字来由是”SocketCAT”,可以看作
是netcat的N倍加强版,socat的官方:
.dest-unreach.org/socat/。
Socat是一个两个独立数据通道之间的双向数据传输的继电器。
这些数据通道包含文件、管道、设备(终端或调制解调器等)、插座(Unix,IP4,IP6-raw,UDPTCP、SSLSOCKS客户端或代理CONNECT
Socat支持广播和多播、抽象Unixsockets、Linuxtun/tap、GNUeadline
和PTY。
它提供了分叉、记录和进程间通信的不同模式。
多个选项可用于调整socat和其渠道,Socat可以作为TCP中继(一次性或守护进程),作为一个守护进程基于socksifier,作为一个shellUnix套接字接口,作为IP6的继电器,或面向TCP的程序重定向到一个串行线。
socat的主要特点就是在两个数据流之间建立通道;
且支持众多协议和方
式:
ip,tcp,udp,ipv6,pipe,exec,system,open,proxy,openssl,socket等。
6socat的安装
6.1下载软件包
下载socat源代码包:
.dest-unreach.org/socat/download/
6.2编译安装
把下载的软件包解压后按照传统的方式编译安装:
./configure
make
makeinstall
具体的细节可以参考安装文档README
在编译的过程中可能遇到如下错误:
FIPSL&
Fipsld-0►GHU_$QURCE-Will旷”旷叩*%祚-DHAUECOHFIG^H-I.-KF-Qfrocil.asatit.c
/biii/bh:
fconnandnutfound!
解决方法有两种:
第一种是禁用fips,使用如下命令配置:
./configure--disable-fips
第二种是安装fips,首先至U.openssl.org/source/下载openssl-fips安
装包,然后解压安装:
./config
7socat的使用
socat的具体文档参见:
.dest-unreach.org/socat/doc/socat.html。
7.1工作机理
socat的运行有4个阶段:
7.1.1初始化
解析命令行以及初始化日志系统。
7.1.2打开连接
先打开第一个连接,再打开第二个连接。
这个单步执行的。
如果第一个连
接失败,则会直接退出。
7.1.3数据转发
谁有数据就转发到另外一个连接上,read/write互换
7.1.4关闭
其中一个连接掉开,执行处理另外一个连接。
7.2地址类型
参数由2部分组成,第一个连接和第二个连接,最简单的用法就是socat--其效果就是输入什么,回显什么其用法主要在于地址如何描述,下面介绍几个常用的。
7.2.1TCP
TCP:
vhost>
:
vport>
目标机器host对应端口portTCP-LISTEN:
本机监听端口。
7.2.2UDP
UDP:
目标机器host对应端口portUDP-LISTEN:
<
port>
7.2.3OPENSSL
需要一个证书,否则会失败提示:
2012/04/0611:
29:
11socat[1614]E
SSL_connect():
error:
14077410:
SSL
routines:
SSL23_GET_SERVER_HELLO:
sslv3alerthandshake
failureOPENSSL:
host>
:
目标机器host对应端口portOPENSSL-LISTEN:
本机监听端口。
7.2.4TUN
TUN[:
if-addr>
/<
bits>
]建立vpn,双方都需要root权限。
7.3典型使用
7.3.1连接目标
socat-tcp:
192.168.1.18:
80
这个命令等同于nc192.168.1.1880。
socat里面,必须有两个流,所
以第一个参数-代表标准的输入输出,第二个流连接到192.168.1.18的80端口。
socat-d-dREADLINE,history=$HOME/.http_historyTCP4:
.qq.:
这个例子支持历史记录查询,类似于bash的历史记录。
7.3.2反向连接
再看一个反向telnet的例子:
onserver:
socattcp-listen:
23exec:
cmd,pty,stderr
这个命名把cmd绑定到端口23,同时把cmd的Stderr复位向到stdout。
onclient:
socatreadlinetcp:
server:
23
连接到服务器的23端口,即可获得一个cmdshell。
readline是gnu的命令行编辑器,具有历史功能。
7.3.3向远处端口发数据
echo“test”|socat-tcp-connect:
127.0.0.1:
12345
7.3.4本地开启端口
socattcp-l:
7777,reuseaddr,forksystem:
bash
同nc-l-p7777-ebash。
7.3.5执行bash的完美用法
在目标上
8888system:
bash,pty,stderr
本地
$target:
8888
用readline替代-,就能支持历史功能了。
在这个模式下的客户端有本地
一样的效果
736文件传递
再看文件传递的例子。
nc也经常用来传递文件,但是nc有一个缺点,就是不知道文件什么时候传完了,一般要用Ctrl+c来终止,或者估计一个时间,
用-w参数来让他自动终止。
用socat就不用这么麻烦了:
onhost1:
socat-uopen:
myfile.exe,binarytcp-listen:
999
onhost2:
socat-utcp:
host1:
999open:
myfile.exe,create,binary
这个命令把文件myfile.exe用二进制的方式,从host1传到host2。
-u表示数据单向流动,从第一个参数到第二个参数,-U表示从第二个到第一个。
文件传完了,自动退出。
7.3.7转发
7.3.7.1本地端口转向远程主机
socatTCP4-LISTEN:
8888TCP4:
如果需要使用并发连接,则加一个fork,如下:
8888,forkTCP4:
本地监听8888端口,来自8888的连接重定向到目标www.qq.:
7.3.7.2端口映射
再来一个大家喜欢用的例子。
在一个NAT环境,如何从外部连接到部的一
个端口呢?
只要能够在部运行socat就可以了。
外部:
1234tcp-listen:
3389
部:
socattcp:
outerhost:
1234tcp:
192.168.12.34:
这样,你外部机器上的3389就映射在部网192.168.12.34的3389端口上
7.3.7.3VPN
服务端
socat-d-dTCP-LISTEN:
11443,reuseaddrTUN:
192.168.255.1/24,up
客户端
socatTCP:
1.2.3.4:
11443TUN:
192.168.255.2/24,up
7.3.8重定向
80,reuseaddr,forkTCP4:
192.168.123.12:
8080
TCP4-LISTEN在本地建立的是一个TCPipv4协议的监听端口;
reuseaddr:
绑定本地一个端口;
fork:
设定多模式,即当一个被建立后,自动复制一个同样的端口再进行监听
socat启动监听模式会在前端占用一个shell,因此需使其在后台执行。
socat-d-dtcp4-listen:
8900,reuseaddr,forktcp4:
10.5.5.10:
3389#端口转发
或者
socat-d-d-lf/var/log/socat.log
TCP4-LISTEN:
15000,reuseaddr,fork,su=nobodyTCP4:
static.5iops.:
15000
“-d-d-lf/var/log/socat.log”是参数,前面两个连续的-d-d代表
调试信息的输出级别,-lf则指定输出信息的保存文件。
“TCP4-LISTEN:
15000,reuseaddr,fork,su=nobody”是一号地址,代表在15000端口上进行TCP4协议的监听,复用绑定的IP,每次有连接到来就fork复制一个进程进行处理,同时将执行用户设置为nobody用户。
“TCP4:
15000〃是二号地址,代表将socat监听到的任何
请求,转发到static.5iops.:
15000上去。
7.3.9读写分流
socat还具有一个独特的读写分流功能,比如:
socatopen:
read.txt!
!
open:
write.txt,create,append
tcp-listen:
80,reuseaddr,fork
这个命令实现一个假的webserver,客户端连过来之后,就把read.txt里面的容发过去,同时把客户的数据保存到write.txt里面。
”!
!
”符号用户合并读写流,前面的用于读,后面的用于写。
7.3.10.1证书生成
FILENAME=serveropensslgenrsa-out$FILENAME.key1024opensslreq-new-key
$FILENAME.key-x509-days3653-out$FILENAME.crtcat$FILENAME.key
$FILENAME.crt>
$FILENAME.pem
在当前目录下生成server.pemserver.crt
7.3.10.2使用
在服务端
socat
openssl-listen:
4433,reuseaddr,cert=srv.pem,cafile=srv.crt
system:
在本地
socatreadlineopenssl:
localhost:
4433,cert=srv.pem,cafile=srv.crt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- socat 使用手册 范本