首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >索卡特-有可能吗?

索卡特-有可能吗?
EN

Server Fault用户
提问于 2021-07-26 20:55:25
回答 1查看 2.5K关注 0票数 1

在用socat进行端口转发时,是否有任何方法侦听和执行命令(针对每个连接)?一个不起作用的例子,让它更清楚:

监听:8080,reuseaddr,"exec:ls“叉tcp:localhost:80

EN

回答 1

Server Fault用户

回答已采纳

发布于 2021-07-27 00:09:40

是像这样吗?

代码语言:javascript
运行
复制
socat tcp-listen:8080,reuseaddr,fork system:'ls; exec socat - tcp\:localhost\:80'
  • 第一个参数使,forksocat继续监听更多的连接
  • system:exec:更倾向于有一个shell解释器,并且在ls命令之后很容易地运行一个附加命令,
  • 这是一个新的socat命令,它将stdin/stdout连接到远程客户端的输出/输入,并将它双向转发到下一个目的地。注意,它的:分隔符(以及其他几个特殊字符)必须用\进行转义,以避免混淆第一个socat命令。如果这一行变得更复杂,那么简单地执行这样的脚本就变得更容易了: socat listen:8080,reuseaddr,叉exec:/path/ to /myscript.sh和/path/to/myscript.sh:#!/bin/sh ls exec socat - tcp:localhost:80 exec在shell命令中是可选的,但避免在shell周围留下无用的东西。

socat还导出了自己的一些变量,这些变量可以在脚本中重用,例如,您可以检查如下(建立了一个连接):

代码语言:javascript
运行
复制
$ env - socat TCP-LISTEN:8080,reuseaddr,fork exec:printenv
SOCAT_PID=1057351
SOCAT_PPID=1057284
SOCAT_VERSION=1.7.4.1
SOCAT_SOCKADDR=127.0.0.1
SOCAT_SOCKPORT=8080
SOCAT_PEERADDR=127.0.0.1
SOCAT_PEERPORT=42970
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1070714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档