socat(SOCket CAT:netcat on steroids)是两个独立数据通道之间双向数据传输的中继。每个数据通道都可以是文件、管道、设备(串行线等或伪终端)、套接字(UNIX、IP4、IP6 - 原始、UDP、TCP)、SSL 套接字、代理 CONNECT 连接、文件描述符(stdin 等)、GNU 行编辑器(readline)、程序或其中两者的组合。这些模式包括生成“监听”套接字、命名管道和伪终端。
使用 socat 的一些示例是:
TCP 中继(一次性或守护进程)
外置袜机
Unix 套接字的 Shell 接口
IPv6中继
Netcat 和 rinetd 替换
将面向 TCP 的程序重定向到串行线路
建立一个相对安全的环境(su 和 chroot),用于在网络连接内运行客户端或服务器 shell 脚本。
http://www.dest-unreach.org/socat/doc/socat.html#示例
socat 1.8.0.1-x86_64 适用于 Windows 7、8.1、10 和 11 及服务器 [2024-08-24]
该程序适合那些想要从源文件进行编译的人。
否则,对于其他文件,有一个现成的文件'socat-1.8.0.1.7z' 。您可以通过访问 socat-1.8.0.1.7z 并使用键盘快捷键 (Ctrl + Shift + s) 进行下载。
首先,如果尚未完成,请下载并安装 Cygwin(最新版本):https://www.cygwin.com/setup-x86_64.exe
– gcc-g++
– gcc 核心
– cygwin32-gcc-g++
– cygwin32-gcc-核心
- 制作
– gcc-fortran
– gcc-objc
– gcc-objc++
– libkrb5-devel
– libkrb5_3
– libreadline-devel
– libssl-开发
– libwrap-开发
– tcp_wrappers
为此,让我们尝试回答以下问题:如何在 Cygwin 上安装软件包?下载 Cygwin 安装程序并运行 setup.exe。默认点击下一步,选择镜像下载包。搜索每个包,打开相应的类别(例如 Net 或 PHP 或其他),然后单击每个包旁边的“跳过”以选择它进行安装。
请不要忘记从 http://www.dest-unreach.org/socat/ 下载 socat 源代码
通过(Windows + R,'mintty')运行Cygwin并执行以下命令:
cd / && cd cygdrive/c/Users//Desktop [或 cd / && cd %USERPROFILE%/Desktop 如果您使用 (Windows + R, 'cmd')] wget http://www.dest-unreach.org/socat/download/socat-1.8.0.1.tar.gz tar -xvzf socat-1.8.0.1.tar.gzcd socat-1.8.0.1 ./配置 制作 进行安装
编译后,将“socat-1.8.0.1”目录复制到%ProgramFiles%或其他位置。您必须完全复制该目录,而不仅仅是“socat.exe”,否则它将无法工作。
注意:使用(Windows + R、“sysdm.cpl”、高级系统设置)从环境变量添加 socat 的路径。关闭“mintty”并重新打开它。
注意(来自 'mintty' [cygwin] 验证版本号):
$ socat -V socat,作者:Gerhard Rieger 和贡献者 - 请参阅 www.dest-unreach.org socat 版本 1.8.0.1 于 2024 年 8 月 24 日 21:18:20 在 CYGWIN_NT-10.0-26100 版本 2024-04-03 17:25 UTC、版本 3.5.3-1.x86_64、机器 x86_64 上运行 功能: #defineWITH_HELP 1 #defineWITH_STATS 1 #defineWITH_STDIO 1 #defineWITH_FDNUM 1 #defineWITH_FILE 1 #defineWITH_CREAT 1 #defineWITH_GOPEN 1 #defineWITH_TERMIOS 1 #defineWITH_PIPE 1 #defineWITH_SOCKETPAIR 1 #defineWITH_UNIX 1 #undefWITH_ABSTRACT_UNIXSOCKET #定义WITH_IP4 1 #定义WITH_IP6 1 #定义WITH_RAWIP 1 #定义WITH_GENERICSOCKET 1 #undefWITH_INTERFACE #defineWITH_TCP 1 #defineWITH_UDP 1 #undefWITH_SCTP #undefWITH_DCCP #undefWITH_UDPLITE #defineWITH_LISTEN 1 #undefWITH_POSIXMQ #defineWITH_SOCKS4 1 #define WITH_SOCKS4A 1 #定义WITH_SOCKS5 1 #undefWITH_VSOCK #undefWITH_NAMESPACES #defineWITH_PROXY 1 #defineWITH_SYSTEM 1 #defineWITH_SHELL 1 #defineWITH_EXEC 1 #defineWITH_READLINE 1 #undefWITH_TUN #defineWITH_PTY 1 #defineWITH_OPENSSL 1 #undefWITH_FIPS #define WITH_LIBWRAP 1 #定义WITH_SYCLS 1 #定义WITH_FILAN 1 #定义WITH_RETRY 1 #undef WITH_DEVTESTS #定义WITH_MSGLEVEL 0 /*调试*/ #定义WITH_DEFAULT_IPV 4
来自 Mugane 的评论:
可能还想补充一点,如果使用 cyg-get ,最好使用 Powershell (作为管理员)为 cygwin 安装这些软件包:
cyg-get gcc-g++ gcc-core 使 gcc-fortran gcc-objc gcc-objc++ libkrb5-devel libkrb5_3 libreadline-devel libssl-devel libwrap-devel tcp_wrappers
如果您不使用 powershell,并尝试从 cygwin 本身安装(即使作为管理员),您可能会遇到难以理解的缺少 dll 错误,并最终需要删除/重新安装 cygwin 本身来纠正问题。
如果用户没有 cygwin,我推荐 Chocolatey(同样来自 Powershell 作为管理员):
choco install -y cygwin cyg-get