这是可以使用我们的多个免费在线工作站之一在 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。 请注意,可能有
创建文件和应用这些选项之间的竞争条件。
疗程开始前 选项 组
该组的选项会更改过程属性,而不仅仅是影响一个数据
渠道。 对于 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