英语法语西班牙语

Ad


OnWorks 网站图标

filan - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 filan

这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令 filan,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


socat - 多用途继电器(SOCket CAT)

概要


socat [选项]
索卡特-V
socat-h[h[h]] | -?[?[?]]
等等
普康

商品描述


索卡特 是一个基于命令行的实用程序,它建立两个双向字节流和
在它们之间传输数据。 因为流可以从大量的
不同类型的数据接收器和来源(请参阅地址类型),并且由于大量的地址
选项可以应用于流,socat 可以用于许多不同的目的。

菲兰 是一个实用程序,用于将有关其活动文件描述符的信息打印到标准输出。 它
已为调试而编写 ,但也可能用于其他目的。 使用
-h 选项以查找更多信息。

普康 是一个实用程序,用于将有关过程参数的信息打印到标准输出。 它有
编写以更好地理解某些 UNIX 进程属性并用于调试 ,
但也可能用于其他目的。

一个生命周期 实例通常由四个阶段组成。

初始化 阶段,命令行选项被解析并日志被初始化。

打开 相, 打开第一个地址,然后打开第二个地址。
这些步骤通常是阻塞的; 因此,特别是对于像袜子这样的复杂地址类型,
必须在下一步之前完成连接请求或身份验证对话
开始。

转让 相, 通过以下方式监视流的读写文件描述符
select() ,并且,当一侧有数据时 可以写到另一边,
socat 读取它,根据需要执行换行符转换,并将数据写入
另一个流的写入文件描述符,然后继续等待更多数据
两个方向。

当其中一个流有效地到达 EOF 时, 关闭 阶段开始。 索卡特 转让
其他流的 EOF 条件,即尝试仅关闭其写入流,
给它一个优雅终止的机会。 在规定的时间内 继续转移
另一个方向的数据,然后关闭所有剩余的通道并终止。

配置


索卡特 提供了一些修改程序行为的命令行选项。 他们
与用作地址部分的所谓地址选项无关
规格。

-V 将版本和可用功能信息打印到标准输出,然后退出。

-h | -?
将帮助文本打印到标准输出,描述命令行选项和可用地址
类型,然后退出。

-hh | - ??
像 -h 一样,加上所有可用地址选项的短名称列表。 一些
选项取决于平台,因此此输出有助于检查
具体实现。

-呵呵 | - ???
像 -hh,加上所有可用地址选项名称的列表。

-d 如果没有这个选项,只会生成致命和错误消息; 应用这个
选项还打印警告消息。 有关更多信息,请参阅诊断。

-d -d 打印致命、错误、警告和通知消息。

-d -d -d
打印致命、错误、警告、通知和信息消息。

-d -d -d -d
打印致命、错误、警告、通知、信息和调试消息。

-D 在开始传输阶段之前记录有关文件描述符的信息。

-ly[ ]
将消息写入 syslog 而不是 stderr; 使用 -d 选项定义的严重性。
带可选,可以选择syslog类型,默认为“daemon”。
第三方库可能不遵守此选项。

-如果
将消息写入[文件名] 而不是 stderr。 一些第三方
库,尤其是 libwrap,可能不遵守此选项。

-ls 将消息写入 stderr(这是默认设置)。 一些第三方库可能
不遵守这个选项,特别是 libwrap 似乎只记录到系统日志。

-lp
覆盖打印在错误消息中并用于构造的程序名称
环境变量名称。

-鲁 将错误消息的时间戳扩展到微秒分辨率。 不起作用
登录到系统日志时。

-lm[ ]
混合日志模式。 在启动过程中,消息被打印到 stderr; 什么时候 启动
传输阶段循环或守护进程模式(即在打开所有流之后和之前
在开始数据传输之前,或者使用带有 fork 选项的侦听套接字
第一次接受呼叫),它将日志记录切换到系统日志。 带可选, 这
可以选择系统日志类型,默认为“daemon”。

-lh 将主机名添加到日志消息。 使用来自环境变量 HOSTNAME 的值或
如果未设置 HOSTNAME,则使用 uname() 检索的值。

-v 不仅将传输的数据写入其目标流,还将写入 stderr。
输出格式是文本,为了可读性进行了一些转换,并以
"> " 或 "< " 表示流向。

-x 不仅将传输的数据写入其目标流,还将写入 stderr。
输出格式为十六进制,前缀为“>”或“<”表示流程
方向。 可以与 -v 结合使用。

-b
设置数据传输块[size_t]。 最多字节被传输
每一步。 默认值为 8192 字节。

-s 默认情况下, 发生错误时终止以防止进程
当某些选项无法应用时运行。 有了这个选项, 马虎
出现错误并尝试继续。 即使有这个选项,socat 也会退出
致命,并在安全检查失败时中止连接尝试。

-t
当一个通道达到 EOF 时,另一个通道的写入部分被关闭。
然后, 等待[timeval] 终止前的秒数。 默认值为 0.5
秒。 此超时仅适用于可以写入和读取部分的地址
独立关闭。 当在超时间隔内读取部分给出 EOF 时,
socat 在不等待超时的情况下终止。

-T
总不活动超时:当 socat 已经在传输循环中并且什么都没有时
发生了[timeval] 秒(无数据到达,无中断
发生...)然后它终止。 对像 UDP 这样不能的协议很有用
转移EOF。

-u 使用单向模式。 第一个地址仅用于读取,而
第二个地址仅用于写入(示例)。

-U 反向使用单向模式。 第一个地址仅用于
写,第二个地址只用于读。

-g 在地址选项解析期间,不要检查该选项是否被认为是有用的
给定的地址环境。 如果您想强制使用它,例如,使用
串行设备的套接字选项。

-L
如果 lockfile 存在,则退出并出错。 如果锁文件不存在,则创建它并
继续,退出时取消链接锁定文件。

-W
如果 lockfile 存在,则等待它消失。 当锁文件不存在时,
创建它并继续,退出时取消链接锁定文件。

-4 如果地址未隐式或明确指定,请使用 IP 版本 4
厌恶; 这是默认设置。

-6 如果地址未隐式或明确指定,请使用 IP 版本 6
厌恶。

地址 规格


使用地址命令行参数,用户给出 说明和
建立字节流的必要信息。

地址规范通常由一个地址类型关键字、零个或多个
必需的地址参数由“:”与关键字和彼此分隔,以及
零个或多个以“,”分隔的地址选项。

关键字指定地址类型(例如,TCP4、OPEN、EXEC)。 对于那里的一些关键字
存在同义词('-' 表示 STDIO,TCP 表示 TCP4)。 关键字不区分大小写。 对少数人
特殊地址类型,关键字可以省略:以a开头的地址规范
数字被假定为 FD(原始文件描述符)地址; 如果在“/”之前找到
第一个 ':' 或 ',', GOPEN(通用文件打开)被假定。

地址参数所需的数量和类型取决于地址类型。 例如,TCP4
需要服务器规范(名称或地址)和端口规范(编号或
服务名称)。

每个地址可以提供零个或多个地址选项。 他们影响地址
从某种角度。 选项由选项关键字或选项关键字和值组成,
以“=”分隔。 选项关键字不区分大小写。 用于过滤选项
对地址类型很有用,每个选项都是一个选项组的成员。 对于每个
地址类型有一组允许的选项组。 只有属于其中之一的选项
可以使用这些地址组(选项 -g 除外)。

遵循上述模式的地址规范也称为 地址
规格。 两个单独的地址可以用“!!”组合形成一个 双重 类型
一个通道的地址。 在这里,第一个地址被使用 用于读取数据,以及
写入数据的第二个地址。 没有办法只为一个选项指定一次
应用于两个单一地址。

通常,地址以读/写模式打开。 当地址是双重地址的一部分时
地址指定,或者当使用选项 -u 或 -U 时,地址可能仅用于
阅读或写作。 考虑到这一点对于某些地址类型很重要。

使用 socat 1.5.0 及更高版本,词法分析尝试处理引号和
括号有意义并允许转义特殊字符。 如果其中之一
字符 ( { [ ' 找到,相应的结束字符 - ) } ] ' - 被查找
为了; 它们也可以嵌套。 在这些结构中,socats 特殊字符和
字符串 : , !! 没有特别处理。 所有这些字符和字符串都可以转义
用 \ 或在 "" 内

地址 类型


本节介绍可用的地址类型及其关键字、参数和
语义。

创建:
打开使用 creat() 并使用文件描述符进行写入。 这个
地址类型需要只写上下文,因为用 creat 打开的文件不能
被读取。
不能应用像 O_LARGEFILE 这样的标志。 如果您需要它们,请使用带有选项的 OPEN
创造,创造。
必须是有效的现有或不存在的路径。 如果是一个命名
管道,creat() 可能会阻塞; 如果指的是一个套接字,这是一个错误。
选项组:FD、REG、NAMED
有用的选项:模式、用户、组、早期取消链接、晚期取消链接、追加
另见:公开赛、公开赛

执行:
分叉一个子进程,该子进程与其父进程建立通信,并
使用 execvp() 调用指定的程序。 是一个简单的命令
参数由单个空格分隔。 如果程序名称包含“/”,则
最后一个'/'之后的部分被视为ARGV[0]。 如果程序名称是亲戚
路径,用于通过 $PATH 查找程序的 execvp() 语义适用。 后
程序启动成功, 将数据写入进程的标准输入并从中读取
它的标准输出使用默认情况下由 socketpair() 生成的 UNIX 域套接字。
(例子)
选项组:FD、SOCKET、EXEC、FORK、TERMIOS
有用的选项:路径、fdin、fdout、chroot、su、su-d、nofork、pty、stderr、ctty、
setsid, 管道, 登录, sigint, sigquit
另见:系统

FD:
使用文件描述符. 它必须已经作为有效的 UN*X 文件存在
描述。
选项组:FD(TERMIOS、REG、SOCKET)
另请参阅:STDIO、STDIN、STDOUT、STDERR

开放:
(通用打开)此地址类型尝试处理任何文件系统条目,除了
目录有用。 可以是相对或绝对路径。 如果已经
存在,它的类型被检查。 如果是 UNIX 域套接字, 连接; 如果
连接失败, 假设一个数据报套接字并使用 sendto() 调用。 如果
入口不是套接字, 应用 O_APPEND 标志打开它。 如果没有
存在,它以 O_CREAT 标志作为常规文件打开(示例)。
选项组:FD、REG、SOCKET、NAMED、OPEN
另请参阅:打开、创建、UNIX-CONNECT

IP-发送: :
打开原始 IP 套接字。 取决于主机规格或选项 pf、IP 协议
使用版本 4 或 6。 它用将数据包发送到[IP地址]
并接收来自主机的数据包,忽略来自其他主机的数据包。 协议 255
使用原始套接字,IP 标头是数据的一部分。
选项组:FD、SOCKET、IP4、IP6
有用的选项:pf、ttl
另请参阅:IP4-SENDTO、IP6-SENDTO、IP-RECVFROM、IP-RECV、UDP-SENDTO、UNIX-SENDTO

界面:
使用原始数据包与连接在接口上的网络通信,包括
链接级数据。 是网络接口的名称。 目前仅
在 Linux 上可用。 选项组:FD,SOCKET
有用的选项:pf,类型
另见:ip-recv

IP4-发送: :
类似于 IP-SENDTO,但始终使用 IPv4。
选项组:FD、SOCKET、IP4

IP6-发送: :
类似于 IP-SENDTO,但始终使用 IPv6。
选项组:FD、SOCKET、IP6

IP数据报: :
将传出数据发送到指定的地址,特别是可能是广播
或多播地址。 检查到达本地套接字的数据包是否
源地址匹配 RANGE 或 TCPWRAP 选项。 例如,此地址类型可以
用于实现对称或非对称广播或组播
通信。
选项组:FD、SOCKET、IP4、IP6、RANGE
有用的选项:绑定、范围、tcpwrap、广播、ip-multicast-loop、
ip-multicast-ttl、ip-multicast-if、ip-add-membership、ttl、tos、pf
另见:IP4-DATAGRAM、IP6-DATAGRAM、IP-SENDTO、IP-RECVFROM、IP-RECV、UDP-DATAGRAM

IP4-数据报: :
与 IP-DATAGRAM 类似,但始终使用 IPv4。 (例子)
选项组:FD,SOCKET,IP4,RANGE

IP6-数据报: :
类似于 IP-DATAGRAM,但始终使用 IPv6。 请注意 IPv6 不知道
广播。
选项组:FD,SOCKET,IP6,RANGE

IP-RECVFrom:
打开一个原始 IP 套接字. 取决于选项 pf,IP 协议版本 4
或 6 使用。 它从一个未指定的对等方接收一个数据包,并可能发送一个或
发送给该对等方的更多应答数据包。 此模式对 fork 尤其有用
每个到达的数据包 - 来自任意对等方 - 由它自己处理的选项
子进程。 这允许类似于典型的基于 UDP 的服务器的行为,如
ntpd 或命名。
请注意,在发送方时,回复数据包可能会作为传入流量被获取
和接收方 IP 地址相同,因为没有端口号
区分插座。
此地址适用于 IP-SENDTO 地址对等点(见上文)。 协议 255
使用原始套接字,IP 标头是数据的一部分。
选项组:FD,SOCKET,IP4,IP6,CHILD,RANGE
有用的选项:pf、fork、range、ttl、broadcast
另见:IP4-RECVFROM、IP6-RECVFROM、IP-SENDTO、IP-RECV、UDP-RECVFROM、
UNIX-RECVFROM

IP4-RECVFrom:
类似于 IP-RECVFROM,但始终使用 IPv4。
选项组:FD,SOCKET,IP4,CHILD,RANGE

IP6-RECVFrom:
类似于 IP-RECVFROM,但始终使用 IPv6。
选项组:FD,SOCKET,IP6,CHILD,RANGE

IP-RECV:
打开一个原始 IP 套接字. 取决于选项 pf,IP 协议版本 4
或 6 使用。 它接收来自多个未指定对等方的数据包并合并
数据。 没有回复是可能的。 例如,它可以通过 socat IP-SENDTO 寻址
地址同行。 协议 255 使用原始套接字,IP 标头是其一部分
数据。
选项组:FD,SOCKET,IP4,IP6,RANGE
有用的选项:pf、范围
另见:IP4-RECV、IP6-RECV、IP-SENDTO、IP-RECVFROM、UDP-RECV、UNIX-RECV

IP4-RECV:
类似于 IP-RECV,但始终使用 IPv4。
选项组:FD,SOCKET,IP4,RANGE

IP6-RECV:
类似于 IP-RECV,但始终使用 IPv6。
选项组:FD,SOCKET,IP6,RANGE

打开:
打开使用 open() 系统调用(示例)。 此操作失败
UNIX 域套接字。
注意:此地址类型在双向模式下很少有用。
选项组:FD、REG、NAMED、OPEN
有用的选项:creat、excl、noatime、nofollow、append、rdonly、wronly、lock、
读取字节,忽略
另请参阅:创建、打开、UNIX-CONNECT

开放式SSL: :
尝试建立一个 SSL 连接到【TCP服务】开启[IP地址]
使用 TCP/IP 版本 4 或 6,具体取决于地址规范、名称解析或
选项 pf.
注意:直到版本 1.7.2.4 才检查服务器证书的有效性
针对系统证书存储或 cafile 或 capath,但不匹配
服务器的名称或其 IP 地址。 由于版本 1.7.3.0 socat 检查对等方
匹配证书参数或值
openssl-commonname 选项。 Socat 尝试将其与证书进行匹配
主题 commonName 和认证扩展 subjectAltName DNS 名称。
支持证书中的通配符。
选项组:FD、SOCKET、IP4、IP6、TCP、OPENSSL、RETRY
有用的选项:密码、方法、验证、commonname cafile、capath、证书、
密钥、压缩、绑定、pf、连接超时、源端口、重试
另请参阅:OPENSSL-LISTEN、TCP

开放式聆听:
监听 tcp 【TCP服务】。 IP 版本为 4 或指定的 IP 版本
pf. 当一个连接被接受时,这个地址作为 SSL 服务器。
注意:您可能希望对这个地址使用证书选项。
注意:仅根据 cafile 或 capath 检查客户端证书的有效性,
但不是为了与客户端的名称或它的 IP 地址匹配!
选项组:FD,SOCKET,IP4,IP6,TCP,LISTEN,OPENSSL,CHILD,RANGE,RETRY
有用的选项:pf、密码、方法、验证、commonname cafile、capath、证书、
密钥、压缩、分叉、绑定、范围、tcpwrap、su、reuseaddr、重试
另见:OPENSSL、TCP-LISTEN

管道:
如果已经存在,已打开。 如果不存在,则命名管道
创建并打开。 从 socat 1.4.3 版本开始,命名管道被移除
当地址关闭时(但请参阅选项 unlink-close
注意:当管道用于读写时,它作为回声服务。
注意:当一个管道用于读写,并且socat尝试写入时
超过管道可以缓冲的字节数(Linux 2.4:2048 字节),socat 可能会阻塞。
考虑使用 socat 选项,例如 -b 2048
选项组:FD、NAMED、OPEN
有用的选项:rdonly、nonblock、group、user、mode、unlink-early
另见:未命名管道

U型槽 创建一个未命名的管道并将其用于读取和写入。 它起到回声的作用,
因为写入它的所有内容都会立即显示为读取数据。
注意:当 socat 尝试写入的字节数超过管道可以排队的字节数时 (Linux 2.4: 2048
字节),socat 可能会阻塞。 考虑,例如,使用选项 -b 2048
选项组:FD
另见:命名管道

代理: : :
使用 TCP/IP 版本 8080 或 4 连接到端口 6 上的 HTTP 代理服务器
取决于地址规范、名称解析或选项 pf,并发送一个
主机名:端口的 CONNECT 请求。 如果代理授予访问权限并成功
连接到目标,socat和目标之间的数据传输就可以开始了。 笔记
流量不必是 HTTP,而是可以是任意协议。
选项组:FD、SOCKET、IP4、IP6、TCP、HTTP、RETRY
有用的选项:proxyport、ignorecr、proxyauth、resolve、crnl、bind、
连接超时、mss、源端口、重试
另见:袜子,TCP

PTY 生成一个伪终端 (pty) 并使用其主端。 另一个过程可能
像串行线路或终端一样使用它打开 pty 的从属端。 (例子)。 如果
ptmx 和 openpty 机制都可用,使用 ptmx (POSIX)。
选项组:FD、NAMED、PTY、TERMIOS
有用的选项:link、openpty、wait-slave、mode、user、group
另请参阅:UNIX-LISTEN、PIPE、EXEC、SYSTEM

在线阅读
在 stdio 上使用 GNU readline 和历史记录以允许编辑和重用输入行
(例子)。
由于许可限制,Debian 中禁用了 readline 功能。 看
错误。
您可以改用 STDIO。

SCTP-连接: :
建立到指定的 SCTP 流连接[IP 地址] 和
[TCP 服务] 根据地址使用 TCP/IP 版本 4 或 6
规范、名称解析或选项 pf。
选项组:FD、SOCKET、IP4、IP6、SCTP、CHILD、RETRY
有用的选项:bind、pf、connect-timeout、tos、mtudiscover、sctp-maxseg、
sctp-nodelay、非阻塞、源端口、重试、读取字节
另请参阅:SCTP4-CONNECT、SCTP6-CONNECT、SCTP-LISTEN、TCP-CONNECT

SCTP4-连接: :
与 SCTP-CONNECT 类似,但仅支持 IPv4 协议。
选项组:FD、SOCKET、IP4、SCTP、CHILD、RETRY

SCTP6-连接: :
与 SCTP-CONNECT 类似,但仅支持 IPv6 协议。
选项组:FD、SOCKET、IP6、SCTP、CHILD、RETRY

SCTP-听:
收听[TCP 服务] 并接受 TCP/IP 连接。 IP版本是
4 或用地址选项 pf、socat 选项 (-4, -6) 指定的那个,或
环境变量 SOCAT_DEFAULT_LISTEN_IP。 注意打开这个地址
通常阻塞,直到客户端连接。
选项组:FD,SOCKET,LISTEN,CHILD,RANGE,IP4,IP6,SCTP,RETRY
有用的选项:crnl、fork、bind、range、tcpwrap、pf、max-children、backlog、
sctp-maxseg、sctp-nodelay、su、reuseaddr、重试、酷写
另请参阅:SCTP4-LISTEN、SCTP6-LISTEN、TCP-LISTEN、SCTP-CONNECT

SCTP4-听:
与 SCTP-LISTEN 类似,但仅支持 IPv4 协议。
选项组:FD,SOCKET,LISTEN,CHILD,RANGE,IP4,SCTP,RETRY

SCTP6-听:
与 SCTP-LISTEN 类似,但仅支持 IPv6 协议。
选项组:FD,SOCKET,LISTEN,CHILD,RANGE,IP6,SCTP,RETRY

插座连接: : :
使用第一个和第二个给定的套接字参数创建一个流套接字
SOCK_STREAM(参见 man socket\(2))并连接到远程地址。 他们俩
套接字参数必须由整数指定。 咨询您的操作系统
文档和包含文件以查找适当的值。 远程地址
必须是没有 sa_family 和 (BSD) 的 sockaddr 结构的数据表示
sa_len 组件。
请注意,除了指定组的选项之外,您还可以使用
应用 socat 选项 -g 时的高级协议选项。
选项组:FD、SOCKET、CHILD、RETRY
有用的选项:bind、setsockopt-int、setsockopt-bin、setsockopt-string
另请参阅:TCP、UDP-CONNECT、UNIX-CONNECT、SOCKET-LISTEN、SOCKET-SENDTO

套接字数据报: : : :
使用前三个给定的套接字参数创建数据报套接字(参见 man
socket\(2)) 并将传出数据发送到远程地址。 三个插座
参数必须由整数指定。 查阅您的操作系统文档和
包含文件以查找适当的值。 远程地址必须是数据
没有 sa_family 和 (BSD) sa_len 的 sockaddr 结构的表示
组件。
请注意,除了指定组的选项之外,您还可以使用
应用 socat 选项 -g 时的高级协议选项。
选项组:FD、SOCKET、RANGE
有用的选项:绑定、范围、setsockopt-int、setsockopt-bin、setsockopt-string
另见:UDP-DATAGRAM、IP-DATAGRAM、SOCKET-SENDTO、SOCKET-RECV、SOCKET-RECVFROM

插口聆听: : :
使用第一个和第二个给定的套接字参数创建一个流套接字
SOCK_STREAM(参见 man socket\(2))并等待传入​​连接
本地地址。 这两个套接字参数必须由 int 数字指定。
请查阅您的操作系统文档并包含文件以查找适当的值。 这
local-address 必须是 sockaddr 结构的数据表示,没有
sa_family 和 (BSD) sa_len 组件。
请注意,除了指定组的选项之外,您还可以使用
应用 socat 选项 -g 时的高级协议选项。
选项组:FD,SOCKET,LISTEN,RANGE,CHILD,RETRY
有用的选项:setsockopt-int、setsockopt-bin、setsockopt-string
另请参阅:TCP、UDP-CONNECT、UNIX-CONNECT、SOCKET-LISTEN、SOCKET-SENDTO、
套接字发送

SOCKET-RECV: : : :
使用三个给定的套接字参数创建一个套接字(参见 man socket\(2))和
将它绑定到. 接收到达的数据。 三个参数必须
由整数指定。 查阅您的操作系统文档并将文件包含到
找到合适的值。 本地地址必须是一个的数据表示
没有 sa_family 和 (BSD) sa_len 组件的 sockaddr 结构。
选项组:FD、SOCKET、RANGE
有用的选项:范围、setsockopt-int、setsockopt-bin、setsockopt-string
另见:UDP-RECV、IP-RECV、UNIX-RECV、SOCKET-DATAGRAM、SOCKET-SENDTO、
SOCKET-RECVFrom

SOCKET-RECVFrom: : : :
使用三个给定的套接字参数创建一个套接字(参见 man socket\(2))和
将它绑定到. 接收到达的数据并将回复发送回
发件人。 前三个参数必须指定为整数。 咨询
您的操作系统文档和包含文件以查找适当的值。 这
local-address 必须是 sockaddr 结构的数据表示,没有
sa_family 和 (BSD) sa_len 组件。
选项组:FD,SOCKET,CHILD,RANGE
有用的选项:fork、range、setsockopt-int、setsockopt-bin、setsockopt-string
另见:UDP-RECVFROM、IP-RECVFROM、UNIX-RECVFROM、SOCKET-DATAGRAM、SOCKET-SENDTO、
套接字接收

套接字发送: : : :
使用三个给定的套接字参数创建一个套接字(参见 man socket\(2))。
将传出数据发送到给定地址并接收回复。 他们三个
参数必须指定为整数。 查阅您的操作系统文档和
包含文件以查找适当的值。 远程地址必须是数据
没有 sa_family 和 (BSD) sa_len 的 sockaddr 结构的表示
组件。
选项组:FD,SOCKET
有用的选项:bind、setsockopt-int、setsockopt-bin、setsockopt-string
另请参阅:UDP-SENDTO、IP-SENDTO、UNIX-SENDTO、SOCKET-DATAGRAM、SOCKET-RECV
SOCKET-RECVFrom

袜子4: : :
连接通过[IP地址]到[IPv4 地址] 开启[TCP
服务],根据 IP 版本 4 或 4 使用 socks 版本 6 协议
地址规范、名称解析或选项 pf(示例)。
选项组:FD、SOCKET、IP4、IP6、TCP、SOCKS4、RETRY
有用的选项:socksuser、socksport、sourceport、pf、重试
另见:SOCKS4A、代理、TCP

袜子4A: : :
类似于 SOCKS4,但使用 SOCKS 协议版本 4a,从而留下主机名解析
到袜子服务器。
选项组:FD、SOCKET、IP4、IP6、TCP、SOCKS4、RETRY

斯特德 使用文件描述符 2。
选项组:FD(TERMIOS、REG、SOCKET)
另见:FD

标准输入 使用文件描述符 0。
选项组:FD(TERMIOS、REG、SOCKET)
有用的选项:readbytes
另见:FD

标准输入输出 使用文件描述符 0 进行读取,使用 1 进行写入。
选项组:FD(TERMIOS、REG、SOCKET)
有用的选项:readbytes
另见:FD

标准输出 使用文件描述符 1。
选项组:FD(TERMIOS、REG、SOCKET)
另见:FD

系统:
分叉一个子进程,该子进程与其父进程建立通信,并
使用 system() 调用指定的程序。 请注意
[string] 不得包含 ',' 或 "!!",并且 shell 元字符可能必须包含
受到保护。 程序启动成功后, 将数据写入标准输入
处理并从其标准输出中读取。
选项组:FD、SOCKET、EXEC、FORK、TERMIOS
有用的选项:路径、fdin、fdout、chroot、su、su-d、nofork、pty、stderr、ctty、
setsid, 管道, sigint, sigquit
另见:执行

TCP: :
连接到【TCP服务】开启[IP 地址] 使用 TCP/IP 版本 4 或 6
取决于地址规范、名称解析或选项 pf。
选项组:FD、SOCKET、IP4、IP6、TCP、RETRY
有用的选项:crnl、bind、pf、connect-timeout、tos、mtudiscover、mss、nodelay、
非阻塞、源端口、重试、读取字节
另见:TCP4、TCP6、TCP-LISTEN、UDP、SCTP-CONNECT、UNIX-CONNECT

TCP4: :
与 TCP 类似,但仅支持 IPv4 协议(示例)。
选项组:FD、SOCKET、IP4、TCP、RETRY

TCP6: :
与 TCP 类似,但仅支持 IPv6 协议。
选项组:FD、SOCKET、IP6、TCP、RETRY

TCP-听:
收听[TCP 服务] 并接受 TCP/IP 连接。 IP版本是
4 或用地址选项 pf、socat 选项 (-4, -6) 指定的那个,或
环境变量 SOCAT_DEFAULT_LISTEN_IP。 注意打开这个地址
通常阻塞,直到客户端连接。
选项组:FD,SOCKET,LISTEN,CHILD,RANGE,IP4,IP6,TCP,RETRY
有用的选项:crnl、fork、bind、range、tcpwrap、pf、max-children、backlog、mss、
su,reuseaddr,重试,cool-write
另请参阅:TCP4-LISTEN、TCP6-LISTEN、UDP-LISTEN、SCTP-LISTEN、UNIX-LISTEN、
开放式 SSL 侦听,TCP 连接

TCP4-听:
与 TCP-LISTEN 类似,但仅支持 IPv4 协议(示例)。
选项组:FD,SOCKET,LISTEN,CHILD,RANGE,IP4,TCP,RETRY

TCP6-听:
与 TCP-LISTEN 类似,但仅支持 IPv6 协议。
其他有用的选项:ipv6only
选项组:FD,SOCKET,LISTEN,CHILD,RANGE,IP6,TCP,RETRY

屯[: / ]
创建 Linux TUN/TAP 设备并可选择为其分配地址和网络掩码
由参数给出。 生成的网络接口几乎可供使用
其他过程; socat 服务于它的“电线方面”。 这个地址需要读写
访问隧道克隆设备,通常是 /dev/net/tun ,以及权限
设置一些 ioctl()s。 附加选项 向上看 is 必须 立即 激活
界面!
选项组:FD、NAMED、OPEN、TUN
有用的选项:iff-up、tun-device、tun-name、tun-type、iff-no-pi
另见:ip-recv

数据传输协议: :
连接到【UDP服务】开启[IP 地址] 使用 UDP/IP 版本 4 或 6
取决于地址规范、名称解析或选项 pf。
请注意,由于 UDP 协议的特性,没有真正的连接
已确立的; 必须发送数据以“连接”到服务器,并且没有文件结尾
条件可以运输。
选项组:FD、SOCKET、IP4、IP6
有用的选项:ttl、tos、bind、sourceport、pf
另见:UDP4、UDP6、UDP-LISTEN、TCP、IP

UDP4: :
与UDP类似,但仅支持IPv4协议。
选项组:FD、SOCKET、IP4

UDP6: :
与UDP类似,但仅支持IPv6协议。
选项组:FD、SOCKET、IP6

UDP数据报: :
将传出数据发送到指定的地址,特别是可能是广播
或多播地址。 检查到达本地套接字的数据包
正确的远程端口以及它们的源地址是否与 RANGE 或 TCPWRAP 选项匹配。
例如,此地址类型可用于实现对称或非对称
广播或多播通信。
选项组:FD,SOCKET,IP4,IP6,RANGE
有用的选项:绑定、范围、tcpwrap、广播、ip-multicast-loop、
ip-multicast-ttl、ip-multicast-if、ip-add-membership、ttl、tos、sourceport、pf
另见:UDP4-DATAGRAM、UDP6-DATAGRAM、UDP-SENDTO、UDP-RECVFROM、UDP-RECV、
UDP 连接、UDP 侦听、IP 数据报

UDP4-数据报: :
与UDP-DATAGRAM 类似,但仅支持IPv4 协议(example1、example2)。
选项组:FD、SOCKET、IP4、RANGE

UDP6-数据报: :
与UDP-DATAGRAM 类似,但仅支持IPv6 协议。
选项组:FD,SOCKET,IP6,RANGE

UDP 侦听:
等待 UDP/IP 数据包到达[UDP 服务] 并“连接”回
发件人。 接受的 IP 版本为 4 或使用选项 pf 指定的版本。 请
请注意,由于UDP协议的特性,没有建立真正的连接; 数据
必须首先从对等方到达,并且不能传输文件结束条件。
请注意,打开此地址通常会阻塞,直到客户端连接为止。
选项组:FD,SOCKET,LISTEN,CHILD,RANGE,IP4,IP6
有用的选项:fork、bind、range、pf
另请参阅:UDP、UDP4-侦听、UDP6-侦听、TCP-侦听

UDP4-听:
与UDP-LISTEN 类似,但仅支持IPv4 协议。
选项组:FD,SOCKET,LISTEN,CHILD,RANGE,IP4

UDP6-听:
与UDP-LISTEN 类似,但仅支持IPv6 协议。
选项组:FD,SOCKET,LISTEN,CHILD,RANGE,IP6

UDP 发送: :
与指定的对等套接字通信,由定义【UDP服务】开启
[IP 地址],根据地址使用 UDP/IP 版本 4 或 6
规范、名称解析或选项 pf。 它发送和接收数据包
仅来自该对等套接字的数据包。 这个地址有效地实现了一个数据报
客户。 它适用于 socat UDP-RECVFROM 和 UDP-RECV 地址对等点。
选项组:FD、SOCKET、IP4、IP6
有用的选项:ttl、tos、bind、sourceport、pf
另见:UDP4-SENDTO、UDP6-SENDTO、UDP-RECVFROM、UDP-RECV、UDP-CONNECT、
UDP 侦听,IP 发送

UDP4-发送: :
类似于UDP-SENDTO,但只支持IPv4 协议。
选项组:FD、SOCKET、IP4

UDP6-发送: :
类似于UDP-SENDTO,但只支持IPv6 协议。
选项组:FD、SOCKET、IP6

UDP-RECVFrom:
在上创建一个 UDP 套接字[UDP 服务] 使用 UDP/IP 版本 4 或 6,具体取决于
在选项 pf. 它从一个未指定的对等方接收一个数据包,并可能发送一个或
发送给该对等方的更多应答数据包。 此模式对 fork 选项特别有用
每个到达的数据包 - 来自任意对等方 - 由其自己的子处理
过程。 这允许类似于典型的基于 UDP 的服务器的行为,如 ntpd 或
命名。 此地址适用于 socat UDP-SENDTO 地址对等点。
选项组:FD,SOCKET,IP4,IP6,CHILD,RANGE
有用的选项:fork、ttl、tos、bind、sourceport、pf
另见:UDP4-RECVFROM、UDP6-RECVFROM、UDP-SENDTO、UDP-RECV、UDP-CONNECT、
UDP-LISTEN、IP-RECVFROM、UNIX-RECVFROM

UDP4-RECVFrom:
类似UDP-RECVFROM,但只支持IPv4协议。
选项组:FD,SOCKET,IP4,CHILD,RANGE

UDP6-RECVFrom:
类似UDP-RECVFROM,但只支持IPv6协议。
选项组:FD,SOCKET,IP6,CHILD,RANGE

UDP-RECV:
在上创建一个 UDP 套接字[UDP 服务] 使用 UDP/IP 版本 4 或 6,具体取决于
在选项 pf. 它接收来自多个未指定对等方的数据包并合并
数据。 没有回复是可能的。 它适用于例如 socat UDP-SENDTO 地址
同龄人; 它的行为类似于系统日志服务器。
选项组:FD,SOCKET,IP4,IP6,RANGE
有用的选项:fork、pf、bind、sourceport、ttl、tos
另见:UDP4-RECV、UDP6-RECV、UDP-SENDTO、UDP-RECVFROM、UDP-CONNECT、UDP-LISTEN、
IP-RECV、UNIX-RECV

UDP4-RECV:
类似于UDP-RECV,但只支持IPv4 协议。
选项组:FD,SOCKET,IP4,RANGE

UDP6-RECV:
类似于UDP-RECV,但只支持IPv6 协议。
选项组:FD,SOCKET,IP6,RANGE

UNIX 连接:
连接到假设它是一个 UNIX 域套接字。 如果才不是
存在,这是一个错误; 如果不是 UNIX 域套接字,这是一个
错误; 如果是一个 UNIX 域套接字,但没有进程在侦听,这是
一个错误。
选项组:FD、SOCKET、NAMED、RETRY、UNIX
) 有用的选项:绑定
另请参阅:UNIX-LISTEN、UNIX-SENDTO、TCP

UNIX-听:
收听使用 UNIX 域流套接字并接受连接。
如果存在并且不是套接字,这是一个错误。 如果存在
并且是 UNIX 域套接字,绑定到地址失败(使用选项
提前取消链接!)。 请注意,打开此地址通常会阻塞,直到客户端
连接。 从 socat 版本 1.4.3 开始,删除了文件系统条目
当此地址关闭时(但请参阅选项 unlink-close)(示例)。
选项组:FD、SOCKET、NAMED、LISTEN、CHILD、RETRY、UNIX
有用的选项:fork、umask、mode、user、group、unlink-early
另请参阅:UNIX-CONNECT、UNIX-RECVFROM、UNIX-RECV、TCP-LISTEN

UNIX-SENDTO:
与指定的对等套接字通信,由 [ 定义] 假设它是
一个 UNIX 域数据报套接字。 它发送数据包并从那里接收数据包
仅对等套接字。 请注意,可能需要绑定本地套接字
到一个地址(例如 /tmp/sock1,之前一定不存在)。 这个地址类型
适用于 socat UNIX-RECVFROM 和 UNIX-RECV 地址对等点。
选项组:FD、SOCKET、NAMED、UNIX
有用的选项:绑定
另请参阅:UNIX-RECVFROM、UNIX-RECV、UNIX-CONNECT、UDP-SENDTO、IP-SENDTO

UNIX-RECVFROM:
创建一个 UNIX 域数据报套接字 [ ]。 接收一个数据包,可能
向该对等方发送一个或多个应答数据包。 这个模式特别好用
带有 fork 选项,其中每个到达的数据包 - 来自任意对等方 - 由
它自己的子进程。 此地址适用于 socat UNIX-SENDTO 地址对等点。
选项组:FD、SOCKET、NAMED、CHILD、UNIX
有用的选项:叉子
另请参阅:UNIX-SENDTO、UNIX-RECV、UNIX-LISTEN、UDP-RECVFROM、IP-RECVFROM

UNIX-RECV:
创建一个 UNIX 域数据报套接字 [ ]。 从多个接收数据包
未指定的对等点并合并数据。 没有回复是可能的。 它可以是,例如,
由 socat UNIX-SENDTO 地址对等体寻址。 它的行为类似于系统日志
服务器。 选项组:FD、SOCKET、NAMED、UNIX
另请参阅:UNIX-SENDTO、UNIX-RECVFROM、UNIX-LISTEN、UDP-RECV、IP-RECV

UNIX 客户端:
与指定的对等套接字通信,由 [ 定义] 假设它是
一个 UNIX 域套接字。 它首先尝试连接,如果失败,则假定它是
数据报套接字,因此支持这两种类型。
选项组:FD、SOCKET、NAMED、UNIX
有用的选项:绑定
另请参阅:UNIX-CONNECT、UNIX-SENDTO、GOPEN

抽象连接:

抽象聆听:

摘要-发送:

摘要-RECVFrom:

摘要-RECV:

抽象客户:
ABSTRACT 地址几乎与相关的 UNIX 地址相同,除了
他们不解决基于文件系统的套接字,而是一个备用的 UNIX 域
地址空间。 为了归档这个,套接字地址字符串以“\0”为前缀
内部。 此功能在 Linux 上可用(仅?)。 选项组相同
与相关的 UNIX 地址一样,除了 ABSTRACT 地址不是
NAMED 组的成员。

地址 配置


地址选项可以应用于地址规范以影响进程
打开结果数据通道的地址和属性。

由于技术原因,并非每个选项都适用于每种地址类型; 例如,
将套接字选项应用于常规文件将失败。 捕捉最无用的组合
早在开放阶段,概念 选项 团体 被介绍了。 每个选项
属于一个或多个选项组。 选项只能用于地址类型
至少支持他们的选项组之一(但请参阅选项 -g)。

地址选项具有其值必须符合的数据类型。 每个地址选项
仅由一个关键字或后跟“=value”的关键字组成,其中 value 必须符合
选项类型。 一些地址选项操作系统调用的参数; 例如,
option sync 使用 open() 调用设置 O_SYNC 标志。 其他选项导致系统或
图书馆电话; 例如,使用选项`ttl=value',setsockopt(fd, SOL_IP, IP_TTL, value,
应用 sizeof(int)) 调用。 其他选项设置内部 使用的变量
在数据传输期间; 例如,`crnl' 导致显式字符转换。 几个选项
有更复杂的实现; 例如,su-d (substuser-delayed) 询问一些用户并且
分组信息,存储它们,并在可能的 chroot() 调用之后应用它们。

如果一个地址有多个选项,它们在地址规范中的顺序
对其执行/应用程序的顺序(几乎)没有影响。 反而, 具有
内置于 选项 试图以有用的顺序排列选项的模型。 一些
选项以不同的形式存在(例如,取消链接、提前取消链接、取消链接延迟)以控制
他们的执行时间。

如果在一个地址规范中多次指定相同的选项,则使用
相同或不同的值,效果取决于选项的种类。 选项导致
像setsockopt() 这样的函数调用会导致多次调用。 带有设置的选项
所需调用的参数,如 open() 或设置内部标志,最后一个的值
选项出现是有效的。

许多选项的存在或语义是系统相关的。 索卡特 通常不会
尝试模拟缺少的 libc 或内核功能,它只是提供了一个接口
底层系统。 因此,如果操作系统缺少某个功能,则相关选项是
在这个平台上根本不可用。

以下段落仅介绍更常见的地址选项。 为了更
综合参考并查找有关规范选项名称、别名的信息,
选项阶段和平台见文件 帮助.

FD 选项

此选项组包含应用于 UN*X 样式文件描述符的选项,没有
不管它是如何产生的。 因为目前所有 地址类型是文件描述符
基于,这些选项可以应用于任何地址。
注意:其中一些选项也是另一个选项组的成员,该组提供
另一种非基于 fd 的机制。 对于这些选项,它取决于实际的地址类型
及其选项组使用哪种机制。 第二种,非基于 fd 的机制是
优先。

cloexec=
使用 fcntl() 系统调用将 FD_CLOEXEC 标志设置为 value . 如果设置,则
文件描述符在 exec() 系列函数调用时关闭。 索卡特 内部处理
它控制的 fds 的这个标志,所以在大多数情况下不需要申请
这个选项。

设置 尝试使用 fcntl(fd,
F_SETLK, ...) 系统调用。 如果文件已被锁定,则此调用将导致
错误。 在 Linux 上,当组的文件权限为 "S" (gx,g+s),并且
文件系统使用“mand”选项在本地挂载,锁定是强制性的,即
阻止其他进程打开文件。

设置kw 尝试使用
fcntl(fd, F_SETLKW, ...) 系统调用。 如果文件已经被锁定,这个调用
块。 有关强制执行此锁定的信息,请参阅选项 setlk。

设置lk-rd
尝试使用 fcntl(fd,
F_SETLK, ...) 系统调用。 如果文件已被写锁定,则此调用会导致
在错误中。 有关强制执行此锁定的信息,请参阅选项 setlk。

设置字号
尝试使用
fcntl(fd, F_SETLKW, ...) 系统调用。 如果文件已经被写锁定,这
调用块。 有关强制执行此锁定的信息,请参阅选项 setlk。

羊群前
尝试使用 flock(fd,
LOCK_EX) 系统调用。 索卡特 如果文件被另一个文件锁定,则在此调用中挂起
的过程。

羊群-前-nb
尝试使用 flock(fd,
LOCK_EX|LOCK_NB) 系统调用。 如果文件已被锁定,则此选项会导致
一个错误。

群-sh
尝试使用 flock(fd,
LOCK_SH) 系统调用。 索卡特 如果文件被另一个文件锁定,则在此调用中挂起
的过程。

羊群-sh-nb
尝试使用 flock(fd,
LOCK_SH|LOCK_NB) 系统调用。 如果文件已被锁定,则此选项会导致
一个错误。

在文件上设置阻塞锁。 使用 setlk 或 flock 机制取决于
在特定平台上的可用性。 如果两者都可用,则 POSIX 变体
(setlkw) 被使用。

用户=
设置(所有者)流。 如果地址是 NAMED 的成员
选项组, 在打开文件或绑定后使用 chown() 系统调用
到 UNIX 域套接字(竞争条件!)。 没有文件系统入口,
使用 fchown() 系统调用的流的用户。 这些调用可能需要
根特权。

用户延迟=
将 fd 的所有者设置为打开后使用 fchown() 系统调用或
连接通道。 这仅对文件系统条目有用。

组=
设置的流。 如果地址是 NAMED 选项的成员
组, 在打开文件或绑定到文件后使用 chown() 系统调用
UNIX 域套接字(竞争条件!)。 没有文件系统入口, 设置
使用 fchown() 系统调用的流组。 这些呼叫可能需要组
成员资格或 root 权限。

组晚=
将 fd 的组设置为打开后使用 fchown() 系统调用或
连接通道。 这仅对文件系统条目有用。

模式=
设置[mode_t](权限)流。 如果地址是
NAMED 选项组并使用 open() 或 creat() 调用,应用模式
用这些。 如果地址是 NAMED 选项组的成员而不使用这些
系统调用, 打开文件系统条目后使用 chmod() 系统调用
或绑定到 UNIX 域套接字(竞争条件!)。 除此以外, 设置
使用 fchmod() 的流模式。 这些调用可能需要所有权或 root
特权。

烫发=
将 fd 的权限设置为 value [mode_t] 使用 fchmod() 系统
打开或连接通道后调用。 这仅在文件系统上有用
条目。

追加=
始终将数据写入文件的实际末尾。 如果地址是 OPEN 的成员
选项组, 在 open() 系统调用中使用 O_APPEND 标志(示例)。
除此以外, 应用 fcntl(fd, F_SETFL, O_APPEND) 调用。

非阻塞=
尝试以非阻塞模式打开或使用文件。 它的唯一影响是
TCP 地址的 connect() 调用不会阻塞,并且打开一个命名管道
阅读不阻塞。 如果地址是 OPEN 选项组的成员,
在 open() 系统调用中使用 O_NONBLOCK 标志。 除此以外, 应用
fcntl(fd, F_SETFL, O_NONBLOCK) 调用。

二进制 以二进制模式打开文件以避免隐式行终止符转换
(赛格温)。

文本 以文本模式打开文件以强制隐式行终止符转换 (Cygwin)。

不继承
不在衍生进程 (Cygwin) 中保持此文件打开。

酷写
当使用 EPIPE 或 ECONNRESET 写入失败并用
注意 水平而不是 错误. 这可以防止日志文件被填充
当 socat 用作高容量服务器或代理时无用的错误消息
客户端经常中止连接。
此选项是实验性的。

收尾
将结束连接的(地址相关)方法更改为仅关闭
文件描述符。 当连接被重用或共享时,这很有用
与其他进程(示例)。
通常,套接字连接将以 关闭(2) 终止
socket,即使它被多个进程共享。 关闭(2) “取消链接”套接字
来自流程,但只要仍有来自其他方面的链接,就保持活动状态
流程。
类似地,当 EXEC 或 SYSTEM 类型的地址结束时,socat 通常会
明确杀死子进程。 使用此选项,它只会关闭文件
描述符。

关闭无
更改关闭写入部分的(地址相关)方法
连接不做任何事情。

关闭
更改关闭写入部分的(地址相关)方法
连接到关机\(fd, SHUT_WR)。 仅对套接字有用。

关闭关闭
更改关闭写入部分的(地址相关)方法
连接关闭\(fd)。

关闭空
当一个地址表示 EOF 时, 将发送一个零大小的数据包到写入
另一个地址的通道来传输 EOF 条件。 这对 UDP 很有用
和其他数据报协议。 已通过选项针对 netcat 和 socat 进行了测试
null-eof。

零eof
通常情况下 将忽略到达数据报的空(零大小有效载荷)数据包
套接字,因此它可以在端口扫描中幸存下来。 有了这个选项 解释为空
数据报包作为 EOF 指示符(请参阅关闭空值)。

ioctl-void=
使用请求值作为第二个参数和 NULL 作为第三个参数调用 ioctl()。
此选项允许使用未在 socat 中明确实现的 ioctl。

ioctl-int= :
使用请求值作为第二个参数和整数值调用 ioctl()
第三个论点。

ioctl-intp= :
使用请求值作为第二个参数和指向
整数值作为第三个参数。

ioctl-bin= :
使用请求值作为第二个参数和指向给定的指针调用 ioctl()
数据值作为第三个参数。 该数据必须在形式。

ioctl-字符串= :
使用请求值作为第二个参数和指向给定的指针调用 ioctl()
字符串作为第三个参数。 形式。

命名 选项

这些选项适用于文件系统条目。
另请参阅选项用户、组和模式。

用户早期=
改变(所有者)在访问文件系统条目之前,使用
chown() 系统调用。 此调用可能需要 root 权限。

组早=
改变在访问文件系统条目之前,使用 chown()
系统调用。 此调用可能需要组成员身份或 root 权限。

烫发早=
改变[mode_t] 在访问文件系统条目之前,使用
chmod() 系统调用。 此调用可能需要所有权或 root 权限。

umask=
将进程的 umask 设置为[mode_t] 在访问文件系统之前
条目(对 UNIX 域套接字很有用!)。 这个电话可能会进一步影响所有
的操作 过程!

提前取消链接
在打开文件之前甚至在应用用户早期之前取消链接(删除)文件
等等

取消链接 在访问文件之前取消链接(删除)文件,但在用户早期等之后。

取消链接延迟
打开文件后取消链接(删除)文件,使其无法被其他人访问
在短暂的竞争条件之后处理。

取消链接关闭
关闭地址时删除地址文件系统条目。 对于命名管道,
监听unix域套接字,以及pty地址的符号链接,默认
是 1; 用于创建的文件、打开的文件、通用打开的文件和客户端 unix 域
套接字默认为 0。

打开 选项

OPEN 组选项允许使用 open() 系统调用设置标志。 例如,选项
`creat' 设置 O_CREAT 标志。
另请参阅选项附加和非阻塞。

创造=
如果文件不存在,则创建该文件(示例)。

同步=
阻止 write() 调用,直到元信息物理写入媒体。

排除=
使用选项 creat,如果文件存在,这是一个错误。

大文件=
在 32 位系统上,允许文件大于 2^31 字节。

Noatime
设置 O_NOATIME 选项,因此读取不会更改访问时间戳。

夜夜=
不使该文件成为控制终端。

nofollow=
不遵循符号链接。

nshare=
不允许与其他进程共享此文件。

分享=
不允许其他进程打开此文件进行写入。

同步=
阻止 write() 直到元信息物理写入媒体。

同步=
阻止 write() 直到数据物理写入介质。

只读=
以只读方式打开文件。

错误=
打开文件仅用于写入。

截断 在打开文件时将文件截断为 0 大小。

REG BLK 选项

这些选项通常应用于 UN*X 文件描述符,但它们的语义使
仅对支持随机访问的文件有意义。

寻求=
应用 lseek(fd, , SEEK_SET) (或 lseek64 )系统调用,因此
将文件指针绝对定位到[off_t 或 off64_t]。 请注意
缺失值默认为 1,而不是 0。

寻求-cur=
应用 lseek(fd, , SEEK_CUR) (或 lseek64 )系统调用,因此
定位文件指针[off_t 或 off64_t] 字节相对于其
当前位置(通常为 0)。 请注意,缺失值默认为
1 年,不是 0 年。

寻找结束=
应用 lseek(fd, , SEEK_END) (或 lseek64 )系统调用,因此
定位文件指针[off_t 或 off64_t] 字节相对于
文件当前结束。 请注意,缺失值默认为 1,而不是 0。

截断=
应用 ftruncate(fd, )(或 ftruncate64 如果可用)系统调用,因此
在该位置截断文件[off_t 或 off64_t]。 请注意,一个
缺失值默认为 1,而不是 0。

安全=

unrm=

比较=

ext2-sync=

不可变=

ext2-append=

没有转储=

ext2-noatime=

日志数据=

尾声=

目录同步=
这些选项更改操作系统和文件上的非标准文件属性
支持这些功能的系统,如带有 ext2fs、ext3fs 或 reiserfs 的 Linux。
有关这些选项的信息,请参阅 man 1 chattr。 请注意,可能有
创建文件和应用这些选项之间的竞争条件。

PROCESS 选项

该组的选项会更改过程属性,而不仅仅是影响一个数据
渠道。 对于 EXEC 和 SYSTEM 地址以及用于 LISTEN 和 CONNECT 类型的地址
选项 FORK,这些选项适用于子进程而不是主 socat 进程。

chroot=
执行 chroot() 操作以地址处理后
(例子)。 此调用可能需要 root 权限。

chroot-早期=
执行 chroot() 操作以在打开地址之前。 这个电话
可能需要 root 权限。

设置标识符=
改变主要处理地址后的进程。 这个电话
可能需要 root 权限。 请注意,此选项不会删除其他
组相关权限。

setgid-早期=
与 setgit 类似,但在打开地址之前执行。

设置用户名=
改变(所有者)处理地址后的进程。 这个电话
可能需要 root 权限。 请注意,此选项不会删除组
相关特权。 检查选项 su 是否更适合您的需求。

setuid-早期=
与 setuid 类似,但在打开地址之前执行。

苏=
改变(所有者)和处理地址后的进程组
(例子)。 此调用可能需要 root 权限。

su-d=
substuser-delayed 的简称。 改变(所有者)和组
处理地址后处理(示例)。 用户和他的组是
检索 before 一个可能的 chroot() 。 此调用可能需要 root 权限。

setpgid=
使进程成为指定进程组的成员. 如果没有值
给定,或者如果值为 0 或 1,则进程成为新进程的领导者
组。

setid 使流程成为新会话的领导者(示例)。

在线阅读 选项

由于许可限制,Debian 中禁用了 readline 功能(请参阅 BUGS)。
这些选项适用于 readline 地址类型。

历史=
读取和写入历史记录(例子)。

不提示
从 1.4.0 版开始,默认情况下 socat 会尝试确定一个提示——那就是
传递给 readline 调用 - 通过记住最后一个不完整的行
输出。 使用此选项,socat 不会向 readline 传递提示,因此它开始
终端第一列中的行编辑。

没有回声=
为防止出现以下输入行的提示指定常规模式
从被显示在屏幕上和从被添加到历史记录中。 提示
定义为最后一次输出到readline地址的文本
换行符并且在输入字符之前。 图案是有规律的
表达式,例如“^[Pp]assword:.*$”或“([用户]ser:|[Pp]assword:)”。 见正则表达式\(7)
详情。 (例子)

提示=
将字符串作为提示传递给 readline 函数。 readline 打印此提示
在穿越历史的时候。 如果此字符串与发出的常量提示匹配
通过另一个socat地址上的交互式程序,一致的外观和感觉可以
存档。

申请须知 选项

该组包含在数据级别工作的选项。 请注意,这些选项仅适用
到 socat 传输的“原始”数据,但不是地址使用的协议数据,例如
代理。

cr 将默认的行终止符 NL ('\n', 0x0a) 转换为/从 CR ('\r',
0x0d) 在此通道上写入/读取时。

克林尔 将默认的行终止符 NL ('\n', 0x0a) 转换为/从 CRNL
("\r\n", 0x0d0a) 在此通道上写入/读取时(示例)。 注意:socat
简单地去除所有 CR 字符。

忽略
当该通道发生EOF时, 忽略它并尝试读取更多数据(例如
“tail -f”)(示例)。

读取字节=
只从这个地址读取这么多字节(地址只提供这么多
字节用于传输并假装在 EOF 之后)。 必须大于 0。

锁文件=
如果 lockfile 存在,则退出并出错。 如果锁文件不存在,则创建它并
继续,退出时取消链接锁定文件。

等待锁=
如果 lockfile 存在,则等待它消失。 当锁文件不存在时,
创建它并继续,退出时取消链接锁定文件。

逃脱=
指定在输入流上触发 EOF 的字符的数字代码。 它
对处于原始模式的终端很有用(示例)。

插座 选项

这些选项适用于所有类型的套接字,例如 IP 或 UNIX 域。 大多数是
应用了 setsockopt() 调用。

绑定=
使用 bind() 系统调用将套接字绑定到给定的套接字地址。 表格
的是套接字域相关的:IP4 和 IP6 允许形式
[hostname|hostaddress][:(service|port)](示例),UNIX 域套接字需要
.

连接超时=
之后中止连接尝试[timeval] 带有错误状态。

所以绑定设备=
将套接字绑定到给定的. 此选项可能需要 root
特权。

播放
对于数据报套接字,允许发送到广播地址和接收数据包
寻址到广播地址。

调试 启用套接字调试。

不路由
仅与直接连接的对等体通信,不使用路由器。

活着
启用在套接字上发送 keepalive。

逗留=
阻止 shutdown() 或 close() 直到数据传输完成或给定
超时 [int] 已过期。

连线
将带外数据放入输入数据流中。

优先级=
设置定义的协议[ ] 用于传出数据包。

接收缓冲区=
将 socket() 调用后的接收缓冲区的大小设置为[诠释]。 和
TCP 套接字,此值对应于套接字的最大窗口大小。

rcvbuf-后期=
当套接字已经连接到时,设置接收缓冲区的大小
[诠释]。 对于 TCP 套接字,此值对应于套接字的最大窗口
大小。

rcvlowat=
指定最小接收字节数 [int],直到套接字层
将缓冲的数据传递给 .

rcvtimeo=
设置接收超时 [timeval]。

重用地址
允许其他套接字绑定到一个地址,即使它的一部分(例如本地
端口)已被使用 (例子)。

sndbuf=
设置 socket() 调用后发送缓冲区的大小[诠释]。

sndbuf-后期=
设置套接字连接时发送缓冲区的大小[诠释]。

sndlowat=
指定发送缓冲区中直到套接字层的最小字节数
将数据发送到[诠释]。

sndtimeo=
将发送超时设置为秒 [timeval]。

pf=
强制使用指定的 IP 版本或协议。 可以是某事
如“ip4”或“ip6”。 结果值用作 socket() 的第一个参数
或 socketpair() 调用。 此选项会影响地址解析和所需的
绑定和范围选项的语法。

类型=
设置套接字的类型,指定为 socket() 的第二个参数或
socketpair() 调用,到[诠释]。 地址解析不受此影响
选项。 在 Linux 下,1 表示面向流的套接字,2 表示数据报套接字,以及
3 表示原始套接字。

原型
设置套接字的协议,指定为 socket() 的第三个参数或
socketpair() 调用,到[诠释]。 地址解析不受
这个选项。 6 表示 TCP,17 表示 UDP。

时间戳
设置 SO_TIMESTAMP 套接字选项。 这允许接收和记录
时间戳辅助消息。

setockopt-int= : :
使用给定的参数为套接字调用setsockopt()。 使用级别 [int]
作为 setsockopt() 的第二个参数并指定层,例如 TCP 的 SOL_TCP (6
在 Linux 上),或 SOL_SOCKET 用于套接字层(在 Linux 上为 1)。 optname [int] 是
setsockopt() 的第三个参数并告诉要设置哪个套接字选项。 为了
实际数字您可能需要查找适当的包含文件
系统。 第 4 个 setsockopt() 参数值 [int],被传递给函数
指针,并且对于长度参数 sizeof\(int) 是隐式采用的。

setockopt-bin= : :
像setsockopt-int,但是必须以 dalan 格式提供并指定一个
任意字节序列; 长度参数自动从
数据。

setockopt-字符串= : :
像setsockopt-int,但是必须是字符串。 这个字符串被传递给
带有尾随空字符的函数,长度参数自动
从数据中得出。

UNIX 选项

这些选项适用于基于 UNIX 域的地址。

unix-tightsocklen=[0|1]
在套接字操作上,传递一个不包括整个套接字地址长度
struct sockaddr_un 记录但(除了其他组件)只有相关部分
文件名或抽象字符串。 默认值为 1。

IP4 IP6 选项 团体

这些选项可用于基于 IPv4 和 IPv6 的套接字。

托=
将传出数据包的 TOS(服务类型)字段设置为[字节](见 RFC
791)。

ttl=
将传出数据包的 TTL(生存时间)字段设置为[字节]。

ip-选项=
设置源路由等 IP 选项。 必须以二进制形式给出,推荐
格式是前导“x”,后跟偶数个十六进制数字。 此选项可能
多次使用,附加数据。 例如,通过以下方式连接到主机 10.0.0.1
一些使用松散源路由的网关,使用网关作为地址参数和
使用选项 ip-options=x8307040a000001 设置松散的源路由。
IP 选项在 RFC 791 中定义。

mtudiscover=<0|1|2>
使用 0、1、2 表示从不、想要或始终在此套接字上使用路径 MTU 发现。

ip-pktinfo
设置 IP_PKTINFO 套接字选项。 这允许接收和记录辅助
包含目标地址和接口的消息 (Linux)(示例)。

ip 接收器
设置 IP_RECVERR 套接字选项。 这允许接收和记录辅助
包含详细错误信息的消息。

ip-recopts
设置 IP_RECVOPTS 套接字选项。 这可以接收和记录 IP
选项辅助消息(Linux,* BSD)。

ip-rectos
设置 IP_RECVTOS 套接字选项。 这可以接收和记录 TOS(类型
服务)辅助消息(Linux)。

ip-recvtl
设置 IP_RECVTTL 套接字选项。 这可以接收和记录 TTL(时间
生存)辅助消息(Linux,* BSD)。

ip-recvdstaddr
设置 IP_RECVDSTADDR 套接字选项。 这允许接收和记录
包含目标地址 (*BSD) 的辅助消息(示例)。

ip接收
设置 IP_RECVIF 套接字选项。 这可以接收和记录接口
辅助消息 (*BSD)(示例)。

ip-add-membership=

ip-add-membership=

ip-add-membership=

ip-add-membership=

ip-add-membership=
使套接字成为指定多播组的成员。 这是目前仅
为 IPv4 实现。 该选项采用多播组的 IP 地址和
有关所需网络接口的信息。 最常见的语法是第一种,
而其他的仅在提供 struct mreqn (Linux) 的系统上可用。
可以使用实用程序显示活动网络接口的索引 普康.

ip-multicast-if=
指定用于多播的网络接口的主机名或地址
交通。

ip-multicast-loop=
指定传出多播流量是否应环回接口。

ip-multicast-ttl=
设置用于传出多播流量的 TTL。 默认值为 1。

重新调试

只有资源

资源利用

初级资源

辞职

递归

资源定义名称

重新开放

资源解析
这些选项设置相应的解析器(名称解析)选项标志。
附加“=0”以清除默认选项。 有关更多信息,请参见 man resolver\(5)
这些选项。 注意:这些选项仅对它们所应用的地址有效
至。

IP6 选项

这些选项只能用于基于 IPv6 的套接字。 请参阅 IP 选项以了解可以
适用于 IPv4 和 IPv6 套接字。

ipv6only=
设置 IPV6_V6ONLY 套接字选项。 如果为 0,则 TCP 堆栈也将接受
在同一端口上使用 IPv4 协议的连接。 默认值取决于系统。

ipv6-recvdstopts
设置 IPV6_RECVDSTOPTS 套接字选项。 这允许接收和记录
包含目标选项的辅助消息。

ipv6-recvhoplimit
设置 IPV6_RECVHOPLIMIT 套接字选项。 这允许接收和记录
包含跳跃限制的辅助消息。

ipv6-recvhopopts
设置 IPV6_RECVHOPOPTS 套接字选项。 这允许接收和记录
包含跳跃选项的辅助消息。

ipv6-recvpktinfo
设置 IPV6_RECVPKTINFO 套接字选项。 这允许接收和记录
包含目标地址和接口的辅助消息。

ipv6-unicast-hops=link(TYPE_INT)( )
设置 IPV6_UNICAST_HOPS 套接字选项。 这将设置跳数限制 (TTL)
传出单播数据包。

IPv6-recvrthdr
设置 IPV6_RECVRTHDR 套接字选项。 这允许接收和记录
包含路由信息的辅助消息。

ipv6-t类
设置 IPV6_TCLASS 套接字选项。 这将设置传出的传输类别
包。

ipv6-recvt类
设置 IPV6_RECVTCLASS 套接字选项。 这允许接收和记录
包含传输类的辅助消息。

TCP 选项

这些选项可应用于 TCP 套接字。 他们通过调用 setsockopt() 来工作
适当的参数。

软木 不发送小于 MSS(最大段大小)的数据包。

延迟接受
在侦听时,仅当来自对等方的数据到达时才接受连接。

保持=
将关闭套接字之前的保持连接数设置为[诠释]。

保持空闲=
设置发送第一个keepalive前的空闲时间[诠释]。

keepintvl=
将两个 keepalive 之间的间隔设置为[诠释]。

逗留2=
将套接字保持在 FIN-WAIT-2 状态的时间设置为[诠释]。

毫秒=
将 socket() 调用后的 MSS(最大段大小)设置为[诠释]。 这个
然后将值与 SYN 或 SYN/ACK 数据包一起提议给对等方(示例)。

毫秒延迟=
建立连接后设置套接字的 MSS 为[诠释]。

节点
关闭用于测量 RTT(往返时间)的 Nagle 算法。

rfc1323
启用 RFC1323 TCP 选项:TCP 窗口比例、往返时间测量 (RTTM)、
并防止包装序列号 (PAWS) (AIX)。

标准 启用符合 RFC1122 的紧急指针处理 (AIX)。

同步=
设置连接期间最大 SYN 重传次数[诠释]。

MD5签名 启用在数据包 (FreeBSD) 上生成 MD5 摘要。

没有选择 禁用 TCP 选项(FreeBSD、MacOSX)的使用。

不推 设置 TCP_NOPUSH 套接字选项(FreeBSD、MacOSX)。

解雇
禁用使用选择性确认功能 (OpenBSD)。

签名启用
启用在数据包 (OpenBSD) 上生成 MD5 摘要。

中止阈值=
设置在已建立的连接上等待对等方应答的时间
(HP-UX)。

连接中止阈值=
设置初始连接期间等待服务器应答的时间
(HP-UX)。

保持初始化
设置在 connect\() 期间等待服务器应答的时间,然后再给出
向上。 值以半秒为单位,默认为 150 (75s) (Tru64)。

爪子 启用“防止包装序列号”功能 (Tru64)。

萨克纳
启用选择性确认 (Tru64)。

刺翅目
启用允许在现有连接上重新计算 RTT 的时间戳选项
(Tru64)。

SCTP 选项

这些选项可应用于 SCTP 流套接字。

sctp节点延迟
设置禁用 Nagle 算法的 SCTP_NODELAY 套接字选项。

sctp-maxseg=
将 SCTP_MAXSEG 套接字选项设置为[诠释]。 然后建议此值
使用 SYN 或 SYN/ACK 数据包发送到对等方。

数据传输协议, TCP, SCTP 选项 团体

在这里我们找到了与网络端口机制相关的选项,因此可以使用
UDP、TCP 和 SCTP 客户端和服务器地址。

源端口=
对于传出(客户端)TCP 和 UDP 连接,它设置源使用
额外的 bind() 调用。 使用TCP或UDP监听地址,socat立即关闭
如果客户端不使用此源端口(示例),则连接。

低端口
使用此选项的传出(客户端)TCP 和 UDP 连接使用未使用的随机数
640 到 1023 之间的源端口,包括在 UNIX 类操作系统上,这
需要root权限,表示客户端进程被授权
通过本地根。 使用此选项立即关闭 TCP 和 UDP 侦听地址
如果客户端不使用源端口 <= 1023,则连接。这种机制可以
在某些情况下提供有限的授权。

袜子 选项

使用 SOCKS 类型地址时,可以设置一些特定于 SOCKS 的选项。

袜子运动= 服务>
覆盖默认的“socks”服务或端口 1080
.

袜子用户=
发送[string] 在用户名字段中发送到socks 服务器。 默认是
实际用户名($LOGNAME 或 $USER)(示例)。

HTTP 选项

可以与 HTTP 类型地址一起提供的选项。 当前唯一的HTTP地址
实现的是代理连接。

代理端口= 服务>
覆盖默认的 HTTP 代理端口 8080 .

忽略
HTTP 协议要求使用 CR+NL 作为行终止符。 当代理服务器
违反此标准,socat 可能无法理解其答案。 此选项指示
socat 将 NL 解释为行终止符并忽略答案中的 CR。
尽管如此,socat 还是会向代理发送 CR+NL。

代理验证= :
为代理服务器提供“基本”身份验证。 该选项的参数是
与 base64 编码形式的“Proxy-Authorization: Base”标头一起使用。
注意:用户名和密码对本地机器上的每个用户都是可见的
进程列表; 用户名和密码未加密传输到代理服务器
(base64 编码)并且可能被嗅探。

解决
默认情况下,socat 向代理发送包含目标的 CONNECT 请求
主机名。 使用此选项,socat 在本地解析主机名并发送 IP
地址。 请注意,根据 RFC 2396,只有名称解析为 IPv4
地址执行。

RANGE 选项

这些选项检查是否应授予连接客户端访问权限。 它们可以应用
监听和接收网络套接字。 tcp-wrappers 选项属于这一组。

范围=
接受连接后,测试对方是否在 范围. 对于 IPv4
地址,地址范围采用地址/位的形式,例如 10.0.0.0/8,或
地址:掩码,例如 10.0.0.0:255.0.0.0(示例); 对于 IPv6,它是
[ip6-address/bits],例如 [::1/128]。 如果客户端地址不匹配,
发出警告并继续收听/接收。

tcpwrap[= ]
使用 Wietse Venema 的 libwrap (tcpd) 库来确定是否允许客户端
连接。 配置文件是 /etc/hosts.allow文件的/etc/hosts.deny
默认情况下,请参阅“man 5 hosts_access”以获取更多信息。 可选的(类型
字符串)作为守护进程名称(示例)传递给包装函数。 如果
省略时,传递 socats 调用的基本名称 (argv[0])。 如果两个 tcpwrap
和范围选项应用于地址,必须同时满足这两个条件才能
允许连接。

允许表=
采用指定的文件而不是 /etc/hosts.allow。

拒绝表=
使用指定的文件而不是 /etc/hosts.deny。

tcpwrap-etc=
在指定目录中查找 hosts.allow 和 hosts.deny。 被覆盖
选项主机允许和主机拒绝。

选项

特定于侦听套接字的选项。

积压=
将通过 listen() 系统调用传递的 backlog 值设置为[诠释]。
预设为5。

最大孩子=
限制并发子进程的数量 [int]。 默认是没有限制。

儿童 选项

通过子进程具有多个连接的地址的选项。

建立连接后,在子进程中处理其通道并保持
父进程试图通过侦听或
通过循环连接(示例)。
OPENSSL-CONNECT 和 OPENSSL-LISTEN 的不同之处在于它们实际分叉子节点的时间:

OPENSSL-听叉 before SSL 握手,而 OPENSSLSSL-CONNECT 分叉
之后. RETRY 和 FOREVER 选项不会被子进程继承。
在某些操作系统(例如 FreeBSD)上,此选项不适用于 UDP-LISTEN
地址。

EXEC 选项

调用程序的地址选项。

路径=
覆盖用于搜索程序的 PATH 环境变量.
这个 $PATH 值在子进程中也有效。

登录 使用“-”为 execvp() 调用添加前缀 argv[0],从而使 shell 表现为
登录外壳。

选项

EXEC 或 SYSTEM 地址使用子进程调用程序并在它们之间传输数据
和程序。 进程间通信机制可以受到影响
以下选项。 默认情况下,会创建一个 socketpair() 并将其分配给 stdin 和 stdout
子进程的,而 stderr 是从 过程和孩子
进程使用文件描述符 0 和 1 与主 socat 进程通信。

诺福克 不分叉执行程序的子进程,而是调用 execvp\() 或
system\() 直接来自实际的 socat 实例。 这避免了开销
程序与其对等体之间的另一个过程,但引入了很多
限制条件:

o 此选项只能应用于第二个 地址。

o 它不能应用于双地址的一部分。

o 第一个 socat 地址不能是 OPENSSL 或 READLINE

o socat 选项 -b, -t, -D, -l, -v, -x 变得无用

o 对于这两个地址,选项 ignoreeof、cr 和 crnl 变得无用

o 对于第二个地址(带有选项 nofork 的地址),options append,cloexec,
flock、user、group、mode、nonblock、perm-late、setlk 和 setpgid 不能是
应用。 但是,其中一些可以用于第一个地址。

管道 为进程间通信创建一对未命名的管道而不是套接字
对。

开放
使用创建的伪终端与子进程建立通信
openpty() 而不是默认值(socketpair 或 ptmx)。

ptx 使用创建的伪终端与子进程建立通信
开放 /开发/ptmx or /开发/ptc 而不是默认(socketpair)。

PTY 使用伪终端代替子进程建立与子进程的通信
插座对。 使用可用机制创建 pty。 如果 openpty 和 ptmx 是
两者都可用,它使用 ptmx 因为这是符合 POSIX 的(示例)。

城市 使 pty 成为子进程的控制 tty(示例)。

斯特德 通过将 stderr 设为 dup() 将子进程的 stderr 定向到其输出通道
标准输出(示例)。

fdin=
将子进程输入通道分配给它的文件描述符代替
标准输入 (0)。 从子进程启动的程序必须使用这个fd来读取
从数据 (例子)。

输出=
将子进程输出通道分配给它的文件描述符代替
标准输出 (1)。 从子进程启动的程序必须用这个fd来写
数据到 (例子)。

叹息, 签到, 退出
将这种类型的信号传递给子进程。 如果没有地址有这个
选项,socat 在这些信号上终止。

术语 选项

对于在 tty 上工作的地址(例如,stdio、file:/dev/tty、exec:...,pty),终端
在 UN*X termios 机制中定义的参数可用作地址选项
参数。 请注意您的交互式终端参数的更改
后保持有效 的终止,因此您可能必须输入“重置”或“stty”
sane”之后在你的 shell 中。对于带有选项 PTY 的 EXEC 和 SYSTEM 地址,这些
选项适用于子进程的 pty。

b0 断开终端。

b19200 将串行线路速度设置为 19200 波特。 其他一些费率是可能的; 用
类似于 socat -hh |grep ' b[1-9]' 来查找您支持的所有速度
实施。
注意:在某些操作系统上,这些选项可能不可用。 使用 ispeed 或
ospeed 代替。

回声=
启用或禁用本地回声。

图标=
设置或清除规范模式,启用行缓冲和一些特殊字符。

设置原始模式,从而几乎未处理地传递输入和输出。 这个选项是
已过时,请改用选项 rawer 或 cfmakeraw。

生的 使终端比原始选项更原始。 此选项隐式关闭回声。
(例子)。

cf马卡劳
通过调用 cfmakeraw() 或模拟此调用来设置原始模式。 这个选项
隐式关闭回声。

ignbrk=
忽略或解释 BREAK 字符(例如,^C)

brkint=

bs0

bs1

bsdly=<0|1>

本地=

cr0
cr1
cr2
cr3

将回车延迟分别设置为 0、1、2 或 3。 0 表示没有延迟,
其他值取决于终端。

crdly=<0|1|2|3>

创想=

crtscts=

cs5
cs6
cs7
cs8

分别将字符大小设置为 5、6、7 或 8 位。

csize=<0|1|2|3>

cstopb=
设置两个停止位,而不是一个。

dsusp=
设置挂起当前前景的 VDSUSP 字符的值
处理并重新激活外壳程序(除 Linux 外的所有程序)。

echoctl=
以帽子表示法回显控制字符(例如 ^A)

回声=

回声=

回声=

回声=

回声=

eof=

eol=

eol2=

擦除=

丢弃=

ff0

ff1

ffdly=

冲洗=

hupcl=

icnl=

扩展=

igncr=

ignpar=

imaxbel=

inlcr=

进货=

内部=

isig=

速度=
设置此线路上传入数据的波特率。
另见:ospeed, b19200

istrip=

iucc=

ixany=

ixoff=

ixon=

杀=

下一个=

最小=

nl0 将换行延迟设置为 0。

nl1

nldly=

noflsh=

ocnl=

删除=

填充=

olcuc=

onlcr=

onlret=

onocr=

反对=
启用或禁用输出处理; 例如,将 NL 转换为 CR-NL。

速度=
设置该线路上输出数据的波特率。
另见:ispeed, b19200

括号=
启用输出奇偶校验生成和输入奇偶校验。

帕姆克=

模仿=

待定=

退出=

转载=

明智的 使终端进入有用的默认状态。

开始=

停止=

暂停=

swtc=

tab0

tab1

tab2

tab3

表格=

时间=

停止=

vt0

vt1

vtdly=

错误=

案例=

标签页

流行音乐
使用 UNIX System V STREAMS,从堆栈中删除所有驱动程序。

我推=
使用 UNIX System V STREAMS,推送具有给定名称(字符串)的驱动程序(模块)
到堆栈上。 例如,要确保 Solaris 上的字符设备
支持 termios 等,使用以下选项:
i-pop-all、i-push=ptem、i-push=ldterm、i-push=ttcompat

PTY 选项

这些选项旨在与 pty 地址类型一起使用。

链接=
生成指向实际伪终端 (pty) 的符号链接。 这个
可能有助于解决 ptys 生成或多或少的问题
不可预知的名称,导致很难直接访问 socat 生成的 pty
自动地。 使用此选项,用户可以在文件中指定“修复”点
帮助他访问实际 pty(示例)的层次结构。 以。。。开始
1.4.3 版本,当地址关闭时符号链接被删除(但请参阅
选项取消链接关闭)。

等待从机
阻塞打开阶段,直到进程打开 pty 的从属端。 通常,
socat 在生成 pty 后继续打开下一个地址或使用
进入传输循环。 使用 wait-slave 选项,socat 会等到一些
进程在继续之前打开 pty 的从属端。 此选项仅适用
如果操作系统提供 poll() 系统调用。 这取决于
pty 的未记录行为,因此它不适用于所有操作系统。 它
已经在 Linux、FreeBSD、NetBSD 和带有 openpty 的 Tru64 上成功测试。

pty-间隔=
当设置了wait-slave选项时,socat会定期检查HUP条件
使用 poll() 查找 pty 的从属端是否已打开。 默认轮询
间隔为1s。 使用 pty-interval 选项 [timeval] 更改此值。

开放式SSL 选项

这些选项适用于 openssl 和 openssl-listen 地址类型。

密码=
选择可用于连接的密码列表。 请参阅手册页
密码部分 CIPHER 清单 FORMAT, 有关语法的详细信息,
值和默认值.
可以给出几个密码字符串,用“:”分隔。 一些简单的密码字符串:

3DES 使用具有三重 DES 的密码套件。

MD5 使用带有 MD5 的密码套件。

aNULL 使用未经身份验证的密码套件。

NULL 不使用加密。

HIGH 使用具有“高”加密的密码套件。 请注意,对等方必须支持
选择的属性,否则协商将失败。

方法=
设置要使用的协议版本。 有效的字符串(不区分大小写)是:

SSL2 选择 SSL 协议版本 2。

SSL3 选择 SSL 协议版本 3。

SSL23 选择最佳的可用 SSL 或 TLS 协议。 这是此选项时的默认值
不提供。

TLS1 选择 TLS 协议版本 1。

TLS1.1 选择 TLS 协议版本 1.1。

TLS1.2 选择 TLS 协议版本 1.2。

DTLS1 选择 DTLS 协议版本 1。

验证=
控制对等方证书的检查。 默认值为 1(真)。 禁用验证
可能会为每个人打开您的套接字,使加密无用!

证书=
指定带有用于身份验证的证书和私钥的文件。 这
证书必须是 OpenSSL 格式 (*.pem)。 使用 openssl-listen,使用这个
强烈推荐选项。 除了密码 aNULL,“无共享密码”错误
没有证书时会发生。

键=
指定带有私钥的文件。 私钥可能在此文件中或在
带有 cert 选项的文件。 必须证明它是
证书的所有者需要私钥。

参数=
指定具有 Diffie Hellman 参数的文件。 这些参数也可以
在带有 cert 选项的文件中,在这种情况下 dhparams 选项不是
需要。

咖啡馆=
指定具有受信任(根)机构证书的文件。 该文件必须是
PEM 格式,并应包含一个或多个证书。 检查的一方
其对等方的身份验证仅信任此文件中的证书。

资本=
指定具有受信任(根)证书的目录。 目录必须
包含 PEM 格式的证书及其哈希值(请参阅 OpenSSL 文档)

egd=
在某些系统上,openssl 需要一个显式的随机数据源。 指定
像 egd 这样的熵收集守护进程提供随机数据的套接字名称,例如
/dev/egd 池。

在 openssl 找不到熵源且没有熵的系统上
可以使用收集守护程序,此选项激活提供机制
伪熵。 这是通过以微秒为单位获取当前时间来存档的
为 libc 伪随机数生成器提供初始值。 openssl 是
然后输入来自 random\() 调用的输出。
注意:此机制不足以生成安全密钥!

压缩
启用或禁用对连接使用压缩。 将此设置为“无”
禁用压缩,将其设置为“自动”让 OpenSSL 选择最佳可用
双方支持的算法。 默认是不接触任何
与压缩相关的设置。 注意:需要 OpenSSL 0.9.8 或更高版本并禁用
使用 OpenSSL 0.9.8 进行压缩会影响进程中的所有新连接。

通用名=
指定对等证书必须匹配的公用名。 使用 OPENSSL-CONNECT
address 这会覆盖给定的主机名或 IP 目标地址; 使用 OPENSSL-LISTEN
这将打开对等证书公用名的检查。 这个选项只有意义
未禁用选项验证,选择密码提供对等体
证书。

菲普斯 如果编译,则启用 FIPS 模式。有关 FIPS 加密实现的信息
标准见 http://oss-institute.org/fips-faq.html. 这种模式可能需要
所涉及的证书是使用启用 FIPS 的 openssl 版本生成的。
在一个 socat 地址上设置或清除此选项会影响所有 OpenSSL 地址
这个过程的。

重试 选项

控制某些系统调用重试的选项,尤其是连接尝试。

重试=
中止连接或侦听尝试之前的重试次数。 默认是
0,这意味着只有一次尝试。

间隔=
连续尝试之间的时间(秒,[timespec])。 默认值为 1 秒。

永远
执行无限次数的重试尝试。

TUN 选项

控制 Linux TUN/TAP 接口设备地址的选项。

tun-设备=
指示 socat 为 TUN 克隆设备采取另一条路径。 默认是
/dev/net/tun。

tun-名称=
给生成的网络接口一个特定的名称而不是系统
生成(tun0、tun1 等)

tun-type=[tun|tap]
设置TUN设备的类型; 使用此选项生成 TAP 设备。 见
Linux 文档用于了解这些类型之间的区别。 当你尝试建立一个
两个TUN设备之间的隧道,它们的类型应该相同。

当且仅当无 pi
设置 IFF_NO_PI 标志,该标志控制设备是否包含附加数据包
隧道内的信息。 当您尝试在两个 TUN 之间建立隧道时
设备,这些标志应该具有相同的值。

向上看 设置 TUN 网络接口状态为 UP。 强力推荐。

iff-广播
设置 TUN 网络接口的 BROADCAST 标志。

iff-调试
设置 TUN 网络接口的 DEBUG 标志。

iff-环回
设置 TUN 网络接口的 LOOPBACK 标志。

点对点
设置 TUN 设备的 POINTOPOINT 标志。

非预告片
设置 TUN 设备的 NOTRAILERS 标志。

iff 运行
设置 TUN 设备的 RUNNING 标志。

iff-noarp
设置 TUN 设备的 NOARP 标志。

即插即用
设置 TUN 设备的 PROMISC 标志。

iff-allmulti
设置 TUN 设备的 ALLMULTI 标志。

IF 主控
设置 TUN 设备的 MASTER 标志。

iff-奴隶
设置 TUN 设备的 SLAVE 标志。

iff-组播
设置 TUN 设备的 MULTICAST 标志。

IF-波特塞尔
设置 TUN 设备的 PORTSEL 标志。

iff-汽车媒体
设置 TUN 设备的 AUTOMEDIA 标志。

iff-动态
设置 TUN 设备的 DYNAMIC 标志。

数据 价值观


本节说明寻址参数和地址选项的不同数据类型
可以采取。

地址范围
目前仅针对 IPv4 和 IPv6 实施。 见地址选项`范围'

布尔“0”或“1”; 如果省略值,则取“1”。

byte 一个无符号整数,用 strtoul() 读取,小于或等于 UCHAR_MAX 。

命令行
指定程序名称及其参数的字符串,由单个空格分隔。

数据 原始数据规范如下 句法。 目前唯一有效的形式是
以“x”开头的字符串,后跟偶数个十六进制数字,指定一个
字节序列。

目录
具有通常 UN*X 目录名称语义的字符串。

设施
以小写字符表示的系统日志设施的名称。

fdnum 无符号整数类型,使用 strtoul() 读取,指定 UN*X 文件描述符。

文件名
具有通常 UN*X 文件名语义的字符串。

group 如果第一个字符是十进制数字,则使用 strtoul() 读取该值作为
指定组 ID 的无符号整数。 否则,它必须是一个现有的组
名称。

int 遵循 strtol() 函数规则的数字,基数为“0”,即十进制
数字、带前导“0”的八进制数或带前导“0x”的十六进制数。 这
值必须适合 C int。

接口
一个字符串,指定网络接口的设备名称,如 ifconfig 或
procan,例如“eth0”。

IP地址
数字和点表示法的 IPv4 地址,十六进制表示法的 IPv6 地址
括在方括号中,或解析为 IPv4 或 IPv6 地址的主机名。
示例:127.0.0.1、[::1]、www.dest-unreach.org、dns1

IPv4地址
数字和点符号中的 IPv4 地址或解析为 IPv4 的主机名
地址。
示例:127.0.0.1、www.dest-unreach.org、dns2

IPv6地址
用括号括起来的十六进制数字和冒号表示法的 iPv6 地址,或
解析为 IPv6 地址的主机名。
Examples: [::1], [1234:5678:9abc:def0:1234:5678:9abc:def0], ip6name.domain.org

long 用 strtol() 读取的数字。 该值必须适合 C long。

长久
使用 strtoll() 读取的数字。 该值必须适合 C long long。

off_t 一个实现相关的有符号数,通常为 32 位,用 strtol 读取或
漫步。

关闭64_t
一个实现相关的有符号数,通常为 64 位,用 strtol 或
漫步。

mode_t 一个无符号整数,用 strtoul() 读取,指定模式(权限)位。

pid_t 一个数字,用 strtol() 读取,指定进程 ID。

port 指定 TCP 或 UDP 端口的 uint16_t(16 位无符号数),读取
strtoul() 。

协议
一个无符号的 8 位数字,用 strtoul() 读取。

size_t 一个有 size_t 限制的无符号数,用 strtoul 读取。

袜子名
一个套接字地址。 见地址选项`bind'

字符串 一个字符序列,不包含 '\0' 和,取决于其中的位置
命令行,“:”、“、”或“!!”。 请注意,您可能必须转义 shell meta
命令行中的字符。

TCP服务
由 getservbyname() 解析的服务名称,不以数字开头,或
使用 strtoul() 读取的 unsigned int 16 位数字。

时间值
指定秒的双浮点数; 该数字被映射到结构 timeval,
由秒和微秒组成。

时间规格
指定秒的双浮点数; 该数字被映射到结构时间规范中,
由秒和纳秒组成。

UDP服务
由 getservbyname() 解析的服务名称,不以数字开头,或
使用 strtoul() 读取的 unsigned int 16 位数字。

无符号整数
用 strtoul() 读取的数字。 该值必须适合 C 无符号整数。

user 如果第一个字符是十进制数字,则使用 strtoul() 读取该值作为
指定用户 ID 的无符号整数。 否则,它必须是现有的用户名。

示例


- TCP4:www.domain.org:80

在 STDIO (-) 和到主机的端口 4 的 TCP80 连接之间传输数据
www.domain.org。 此示例产生类似于 telnet 的交互式连接
或网猫。 stdin 终端参数未更改,因此您可以关闭
用 ^D 中继或用 ^C 中止它。

-d -d READLINE,history=$HOME/.http_history \
TCP4:www.domain.org:www,crnl

这与前面的示例类似,但您可以在
类似 bash 的方式(READLINE)并使用历史文件 .http_history; 打印
有关进度的消息 (-d -d)。 端口由服务名称 (www) 指定,并且
使用正确的网络行终止字符 (crnl) 而不是 NL。

TCP4-听:www TCP4:www.domain.org:www

安装一个简单的 TCP 端口转发器。 使用 TCP4-LISTEN 它侦听本地端口
“www”,直到连接进来,接受它,然后连接到远程主机
(TCP4) 并开始数据传输。 它不会接受第二个连接。

-d -d -lmlocal2 \
TCP4-LISTEN:80,bind=myaddr1,reuseaddr,fork,su=nobody,range=10.0.0.0/8 \
TCP4:www.domain.org:80,bind=myaddr2

TCP 端口转发器,每一方绑定到另一个本地 IP 地址(绑定)。 这个
示例处理几乎任意数量的并行或连续连接
通过在每个 accept() 之后分叉一个新进程。 它提供了一点安全性
分叉后向用户nobody起诉; 它只允许来自私人的连接
10 网络(范围); 由于reuseaddr,它允许在master后立即重启
进程的终止,即使某些子套接字没有完全关闭。
使用 -lmlocal2,socat 会记录到 stderr,直到成功到达接受循环。
进一步的日志记录通过工具 local2 定向到 syslog。

TCP4-LISTEN:5555,fork,tcpwrap=脚本 \
执行:/bin/myscript,chroot=/home/sandbox,su-d=sandbox,pty,stderr

一个简单的服务器,它接受连接(TCP4-LISTEN)并且 fork 是一个新的孩子
每个连接的过程; 每个孩子都充当一个中继。 客户必须
匹配守护进程名称“脚本”的规则 /etc/hosts.allow文件
的/etc/hosts.deny, 否则拒绝访问(参见“man 5 hosts_access”)。 为了
EXEC'uting程序,子进程chroot的 /家/沙箱, su 给用户
沙箱,然后启动程序 /home/沙箱/bin/myscript. 索卡特 和我的脚本
通过伪 tty (pty) 进行通信; myscript 的 stderr 被重定向到 stdout,所以
它的错误信息通过 到连接的客户端。

EXEC:"mail.sh [电子邮件保护]",fdin=3,fdout=4 \
TCP4:mail.relay.org:25,crnl,bind=alias1.server.org,mss=512

邮箱.sh 是一个 shell 脚本,与 , 实现了一个简单的 SMTP
客户。 它被编程为在其 FD 3(输入)和 4(输出)上“说出”SMTP。 输入
和 fdout 选项告诉 使用这些 FD 与程序进行通信。
因为 mail.sh 继承了 stdin 和 stdout 而 不使用它们,脚本
可以从标准输入读取邮件正文。 索卡特 将 alias1 设为您的本地源地址
(bind), 关心正确的网络线路终止 (crnl) 并最多发送 512
每个数据包的数据字节数 (mss)。

-,转义=0x0f /dev/ttyS0,rawer,crnl

通过串行线路打开交互式连接,例如与调制解调器通话。
rawer 将控制台和 ttyS0 的终端参数设置为可行的值,
crnl 转换为正确的换行符。 转义允许终止 socat
使用字符控制-O 处理。

UNIX-LISTEN:/tmp/.X11-unix/X1,fork \
SOCKS4:host.victim.org:127.0.0.1:6000,socksuser = nobody,sourceport = 20

使用 UNIX-LISTEN, 打开一个监听 UNIX 域套接字 /tmp/.X11-unix/X1.
此路径对应于您机器上的本地 XWindow 显示 :1,因此 XWindow
接受到 DISPLAY=:1 的客户端连接。 索卡特 然后与 SOCKS4 交谈
服务器 host.victim.org 可能允许基于源端口 20 的连接,因为
FTP 相关的静态 IP 过滤器弱点。 索卡特 假装被调用
袜子用户没有人,并请求连接到环回端口 6000(仅弱
sockd 配置将允许这样做)。 所以我们与受害者建立了联系
XWindow 服务器,如果它不需要 MIT cookie 或 Kerberos 身份验证,
我们可以开始工作了。 请注意,一次只能连接一个,
因为 TCP 只能与一组给定的地址和端口建立一个会话。

-u /tmp/readdata,seek-end=0,ignoreeof -

这是单向数据传输 (-u) 的示例。 索卡特
文件 /tmp/readdata(隐式地址 GOPEN),从当前结尾开始
(seek-end=0 让 从当前文件末尾开始读取; 使用seek=0或noseek
首先读取现有数据的选项)以“tail -f”之类的模式(ignoreeof)。 这
“文件”也可能是一个监听 UNIX 域套接字(不要使用搜索选项
然后)。

(睡觉 5; 回音 密码; 睡觉 5; 回音 ls; 睡觉 1) |
- 执行:'ssh -l 用户 服务器',pty,setsid,ctty

执行到服务器的 ssh 会话。 使用 pty 进行通信
ssh,使它成为 ssh 的控制 tty (ctty),并使这个 pty 成为一个新的所有者
进程组 (setsid),因此 ssh 接受来自 .

-u TCP4-LISTEN:3334,reuseaddr,fork \
打开:/tmp/in.log,create,append

实现了一个简单的基于网络的消息收集器。 对于每个连接到的客户端
端口 3334,生成一个新的子进程(选项 fork)。 发送的所有数据
客户端被附加到文件/tmp/in.log。 如果文件不存在,socat
创造它。 选项reuseaddr 允许立即重新启动服务器进程。

PTY,链接=$HOME/dev/vmodem0,rawer,等待从属 \
执行:"ssh 调制解调器服务器.us.org - /dev/ttyS0,nonblock,rawer"

在客户端上生成一个伪终端设备 (PTY),该设备可以通过以下方式访问
符号链接 $HOME/开发/vmodem0. 需要串行线路的应用程序或
调制解调器可以配置为使用 $HOME/开发/vmodem0; 它的流量将被引导到一个
调制解调器服务器通过 ssh 连接到另一个 socat 实例 /开发/ttyS0.

TCP4-LISTEN:2022,reuseaddr,fork \
代理:代理:www.domain.org:22,proxyport=3128,proxyauth=user:pass

启动接收端口 2022 上的连接的转发器,并引导它们通过
代理守护进程侦听主机代理上的端口 3128(代理端口),使用
CONNECT 方法,在其中它们通过“pass”(proxyauth)被验证为“用户”。 这
代理应该在端口 22 上建立到主机 www.domain.org 的连接。

- OPENSSL:服务器:4443,cafile=server.crt,cert=client.pem

是一个 OpenSSL 客户端,它尝试与 SSL 服务器建立安全连接。
选项 cafile 指定一个包含信任证书的文件:我们信任
服务器仅当它提供这些证书之一并证明它拥有
相关的私钥。 否则连接终止。 用 cert 一个文件
包含客户端证书和关联的私钥被指定。 这个
如果服务器希望进行客户端身份验证,则需要; 许多互联网
服务器没有。
第一个地址 ('-') 几乎可以被任何其他 socat 地址替换。

OPENSSL-LISTEN:4443,reuseaddr,pf=ip4,fork,cert=server.pem,cafile=client.crt U型槽

是一个接受 TCP 连接的 OpenSSL 服务器,提供来自
文件 server.pem 并强制客户端提供经过验证的证书
针对 cafile.crt。
第二个地址 ('PIPE') 几乎可以被任何其他 socat 地址替换。
有关生成和分发 OpenSSL 密钥和证书的说明,请参阅
额外的 socat 文档 socat-openssl.txt。

回音 |索卡特 -u - 文件:/tmp/bigfile,create,largefile,seek=100000000000

创建一个 100GB 的稀疏文件; 这需要支持此的文件系统类型
(ext2、ext3、reiserfs、jfs;不是 minix、vfat)。 写 1 个字节的操作可能
需要很长时间(reiserfs:几分钟;ext2:“没有”时间),生成的文件可以
仅使用其 inode 消耗一些磁盘空间(reiserfs:2MB;ext2:16KB)。

tcp-l:7777,重用addr,分叉 system:'filan -i 0 -s >&2',nofork

侦听端口 7777 上的传入 TCP 连接。对于每个接受的连接,
调用一个shell。 这个 shell 的 stdin 和 stdout 直接连接到 TCP
插座(nofork)。 shell 启动 filan 并让它打印套接字地址到
stderr(您的终端窗口)。

回音 -en "\0\14\0\0\c" |索卡特 -u - 文件:/usr/bin/squid.exe,seek=0x00074420

用作原始二进制编辑器:它将 4 个字节 000 014 000 000 写入
偏移量 0x00074420 处的可执行文件 /usr/bin/squid(这是一个真实世界的补丁
Cygwin 的鱿鱼可执行文件在 Windows 下运行,实际为 2004 年 XNUMX 月)。

- tcp:www.blackhat.org:31337,readbytes=1000

连接到未知服务并防止被淹没。

-U TCP:目标:9999,结束关闭 TCP-L:8888,重用地址,分叉

将从端口 8888 上的不同 TCP 流到达的数据合并到一个流中
目标:9999。 end-close 选项防止子进程被
从终止共享连接到 9999 的第二个地址(close\(2) just
取消链接只要父进程存在就保持活动状态的 inode;
shutdown\(2) 会主动终止连接)。

- UDP4-DATAGRAM:192.168.1.0:123,sp=123,broadcast,range=192.168.1.0/24

向网络 192.168.1.0/24 发送广播并接收回复
那里的时间服务器。 忽略来自该网络外部主机的 NTP 数据包。

- SOCKET-DATAGRAM:2:2:17:x007bxc0a80100x0000000000000000,b‐
ind=x007bx00000000x0000000000000000,setsockopt-int=1:6:1,r‐
ange=x0000xc0a80100x0000000000000000:x0000xffffff00x0000000000000000

在语义上等同于前面的示例,但所有参数都是
以通用形式指定。 setsockopt-int 的值 6 是 Linux 的值
SO_BROADCAST。

- IP4-DATAGRAM:255.255.255.255:44,broadcast,range=10.0.0.0/8

使用协议 44 向本地网络发送广播。接受来自
仅限私有地址范围。

- UDP4-DATAGRAM:224.255.0.1:6666,bind=:6666,ip-add-membership=224.255.0.1:eth0

使用 UDP 将数据从 stdin 传输到指定的多播地址。 无论是本地
和远程端口是 6666。告诉接口 eth0 也接受多播
给定组的数据包。 本地网络上的多台主机可以运行这个
命令,因此任何主机发送的所有数据都将被所有其他主机接收
那些。 请注意,失败的可能原因有很多,包括 IP 过滤器、
路由问题、操作系统选择错误的接口、网桥或
配置错误的交换机。

TCP:主机2:4443 TUN:192.168.255.1/24,向上

与 host2 建立虚拟(但不是私有!)网络的一侧,其中
类似的过程可能会运行,UDP-L 和 tun 地址 192.168.255.2。 他们可以达到
彼此使用地址 192.168.255.1 和 192.168.255.2。 请注意,流式传输
例如。 通过 TCP 或 SSL 不保证保留数据包边界,因此可能
导致丢包。

PTY,链接=/var/run/ppp,rawer 接口:hdlc0

规避了 pppd 需要串行设备的问题,因此可能不会
能够在以网络设备为代表的同步线路上工作。 猫
创建一个让 pppd 开心的 PTY,绑定到网络接口 hdlc0,并且可以
在两个设备之间传输数据。 然后在设备 /var/run/ppp 上使用 pppd。

-T 1 -d -d TCP-L:10081,重新使用地址,fork,crlf 系统:"回声 -e \"\\\"HTTP/1.0 200
确定\\\n文档类型: 文本/纯文本\\\n\\\n日期:
\$\(日期\)\\n服务器:\$SOCAT_SOCKADDR:\$SOCAT_SOCKPORT\\\n客户端:
\$SOCAT_PEERADDR:\$SOCAT_PEERPORT\\n\\"\"; 猫; 回音 -e \"\\\"\\\n\\\"\""

创建一个简单的 HTTP 回显服务器:连接的每个 HTTP 客户端都获得一个有效的 HTTP
包含有关客户端地址和端口信息的回复,因为它被看到
服务器主机、主机地址(可能因多宿主服务器而异)以及
原始客户请求。

-d -d
UDP4-RECVFROM:9999,所以广播,所以时间戳,ip-pktinfo,ip-recverr,ip-recvopts,ip-recvtos,ip-recvttl!!-
SYSTEM:'出口; 睡觉 1“ |grep 索卡特

等待端口 9999 上的传入 UDP 数据包并打印环境变量
由 socat 提供。 在基于 BSD 的系统上,您必须将 ip-pktinfo 替换为
ip-recvdstaddr,ip-recvif。 特别有趣的是 SOCAT_IP_DSTADDR:它包含
数据包的目标地址,可以是单播、多播或广播
地址。

诊断


索卡特 使用允许按严重性过滤消息的日志记录机制。 严重性
提供或多或少与适当的系统日志优先级兼容。 与一个或最多
-d 命令行选项出现四次,消息的最低优先级
可以选择发出。 每条消息都包含一个大写字符,指定
消息严重性(F、E、W、N、I 或 D 之一)

致命:需要无条件和立即终止程序的条件。

错误:阻止正确程序处理的条件。 通常程序是
终止(见选项 -s)。

警告:
某些功能无法正常运行或处于进一步正确的状态
不能保证处理,但可能是可能的。

注意:
程序的有趣动作,例如用于监督 在某种意义上
服务器模式。

信息:程序做什么的描述,以及它为什么会发生。 允许监控
文件描述符的生命周期。

DEBUG:程序如何工作的描述,所有系统或库调用及其
结果。

日志消息可以写入 stderr、文件或系统日志。

退出时, 如果由于 EOF 或不活动超时而终止,则给出状态 0,并带有
错误时为正值,致命错误时为负值。

使用 onworks.net 服务在线使用 filan


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad