0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

socat命令如何在多种场景下实现

lhl545545 来源:良许Linux 作者:良许Linux 2022-09-06 09:02 次阅读

SocatSOcket CAT是一个基于 Linux 命令行/终端的实用程序,用于在两个双向字节流之间建立和传输数据。 socat命令可以在多种场景下实现,主要有两个原因:

数据接收器和数据源;不同类型并存在于一个大集合中,可用于构造流。

这些构造的流可以与许多地址选项相关联。

socat命令可以比作与TCP和UDP协议绑定的netcat 实用程序。但是,socat比netcat具有安全优势(chrooting),并且还支持设备、管道、文件、SSL、SOCKS4 客户端、TCP 套接字、代理 CONNECT、UNIX 套接字等。

Socat 命令

为了更熟悉这个 Linux 命令行实用程序,我们需要列出它的一些实际应用。以下要点总结了一些流行的 socat 实用程序应用程序:

安全测试和研究。

面向 TCP 的程序进行串行线路重定向。

作为 UNIX 套接字 shell 接口

建立 su 和 chroot 安全环境以在共享网络连接上执行服务器/客户端 Shell 脚本。

不同计算机上串行线路的逻辑连接。

IP6 relay。

通过攻击弱防火墙进行安全测试。

TCP 端口转发。

在 Linux 中安装 Socat 实用程序

如果您的 Linux 操作系统发行版上尚未安装基于socat Linux 命令行的实用程序,请参考您正在使用的 Linux 操作系统发行版参考以下安装命令之一:


$ sudo apt install socat         [在 Debian, Ubuntu 和 Mint 上]$ sudo yum install socat         [在 RHEL/CentOS/Fedora 和 Rocky Linux/AlmaLinux 上]$ sudo emerge -a net-misc/socat  [在 Gentoo Linux 上]$ sudo pacman -S socat           [在 Arch Linux 上]$ sudo zypper install socat      [在  OpenSUSE 上]

正如已经讨论过的,socatnetcat实用程序的出色替代品,因为它具有强大和高级的功能。我们现在应该能够通过 Linux 命令行环境看到一些使用socat实用程序的实际示例。 其使用语法如下:


# socat [options] 

确保您在 Linux 机器上拥有 sudoer/root 用户权限。

1、监听特定端口

我们可以指示socat通过TCP协议监听特定端口,例如80 ,并通过STDOUT打印出任何相关的发现,如下所示。


$ sudo socat TCP4-LISTEN:80 STDOUT

TCP可以切换到其他不同的值,例如TCP6TCP6-LISTENTCP4

2. 连接到远程服务器的端口

要连接到与端口关联的服务器,我们将运行:


$ sudo socat – TCP480

3. TCP 端口转发器

它也是一个有效的TCP端口转发器。例如,端口81连接可以转发到端口80,如下所示: 对于单个连接。


$ sudo socat TCP4-LISTEN:81 TCP480

对于多个连接。


$ sudo socat TCP4-LISTEN:81,fork,reuseaddr TCP4192.168.122.1:80

您可以使用键盘组合取消端口转发[Ctrl]+c。

4.监听本地端口

监听本地端口www


$ sudo socat TCP4-LISTEN:www TCP4www

5. 监听远程套接字上的特定端口

如果我们想监听一个特定的端口,接受它的连接并将它转发到一个远程的 Unix 套接字,例如 mysql.sock,我们会以如下方式实现 socat 命令:


$ sudo socat TCP-LISTEN:3309,reuseaddr,fork UNIX-CONNECT:/var/lib/mysql/mysql.sock

6. 基于网络的消息收集器

这个简单的例子演示了基于网络的消息收集器的实现。客户端连接到端口 3354 成功后,文件/tmp/testing.log通过新生成的子进程附加客户端发送的数据。当发现此文件不存在时,socat会自动创建此文件。


$ sudo socat -u TCP4-LISTEN:3354,reuseaddr,fork OPEN:/tmp/testing.log,creat,append

通过上面讨论的几个示例以及进一步参考socat手册页,我们应该能够深入探索它。

审核编辑:彭静

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1348

    浏览量

    78979
  • 程序
    +关注

    关注

    116

    文章

    3773

    浏览量

    80830
  • 传输数据
    +关注

    关注

    1

    文章

    116

    浏览量

    16089

原文标题:Linux 命令 socat - netcat 实用程序的出色替代品

文章出处:【微信号:良许Linux,微信公众号:良许Linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Linux场景数据包是如何在协议层传输的

    所有互联网服务,均依赖于TCP/IP协议栈。懂得数据是如何在协议栈传输的,将会帮助你提升互联网程序的性能和解决TCP相关问题的能力。 我们讲述在Linux场景数据包是如何在协议层传输
    的头像 发表于 11-11 11:33 1072次阅读
    Linux<b class='flag-5'>场景</b><b class='flag-5'>下</b>数据包是如<b class='flag-5'>何在</b>协议层传输的

    何在Linux中使用htop命令

    本文介绍如何在 Linux 中使用 htop 命令
    的头像 发表于 12-04 14:45 1898次阅读
    如<b class='flag-5'>何在</b>Linux中使用htop<b class='flag-5'>命令</b>

    itop4412开发板跑的是linux系统,如何在命令,写shell命令来关机?

    itop4412开发板跑的是linux系统,如何在命令,写shell命令来关机? 开发板没有shutdown 命令
    发表于 11-18 18:24

    何在VxWorks实现NAT/NAPT的方法

    何在VxWorks实现NAT/NAPT的方法
    发表于 03-29 12:25 19次下载

    多种方式使用”kill”命令终结应用

    无论你使用哪种操作系统,你一定会遇到某个行为失常的应用,它把自己锁死并拒绝关闭。在Linux(还有Mac),你可以用一个”kill”命令强制终结它。在这个教程中,我们将展示给你多种方式使用”kill”命令终结应用。
    的头像 发表于 04-20 16:36 5005次阅读
    以<b class='flag-5'>多种</b>方式使用”kill”<b class='flag-5'>命令</b>终结应用

    何在PADS 3D Layout中进行命令操作

    了解如何在 PADS 3D Layout 中对您的 PCB 使用“Measure Distance”和“Measure Minimum Distance”命令
    的头像 发表于 05-15 06:05 5152次阅读
    如<b class='flag-5'>何在</b>PADS 3D Layout中进行<b class='flag-5'>命令</b>操作

    何在Linux环境实现Python环境的搭建

    本文档的主要内容详细介绍的是如何在Linux环境实现Python环境的搭建。
    发表于 08-24 12:12 14次下载
    如<b class='flag-5'>何在</b>Linux环境<b class='flag-5'>下</b><b class='flag-5'>实现</b>Python环境的搭建

    何在51单片机上实现串口收发命令

    串口通信在电子行业中应用较广,通过上位机发送命令实现各种功能的控制及数据的反馈。本文就是在51 单片机上实现串口收发命令,程序调试正常,可以运用到控制系统中。
    发表于 11-26 17:02 9次下载

    何在融合多种定位技术和通信技术的条件实现万物互联

    随着汽车智能化和网联化的发展,涉及自动驾驶、北斗+5G等关键技术的发展,智能网联汽车已经进入技术快速演进、产业加速布局的新阶段。面对新挑战和新机遇,如何在融合多种定位技术和通信技术的条件
    的头像 发表于 05-31 11:11 2097次阅读

    超级终端场景多种设备在不同环境如何组成一个网络

    相信大家对HarmonyOS的“超级终端”比较熟悉了。那么,您知道超级终端场景多种设备在不同环境是如何组成一个网络的吗?这些设备之间又是如何解决共享资源冲突的?本期我们就来为您揭
    的头像 发表于 12-25 09:02 2956次阅读
    超级终端<b class='flag-5'>场景</b><b class='flag-5'>下</b>的<b class='flag-5'>多种</b>设备在不同环境<b class='flag-5'>下</b>如何组成一个网络

    何在Linux使用pidof命令

    `pidof`是一个命令行程序,可让您找到正在运行程序的进程ID。在教程中,我们将说明如何在Linux 使用pidof命令
    的头像 发表于 12-05 17:01 2285次阅读

    何在Linux命令行中格式化输出xml

    我们先前分享过一篇关于在命令行中格式化输出 json 文件的文章,今天我们再来分享一何在命令行中格式化输出 xml。
    的头像 发表于 01-12 17:37 1511次阅读
    如<b class='flag-5'>何在</b>Linux<b class='flag-5'>命令</b>行中格式化输出xml

    何在Linux上使用粘贴命令

    粘贴命令的各种选项和使用场景,并通过示例和输出演示如何使用它。 一、什么是粘贴命令? Paste命令是Unix和Linux操作系统上的一个实用程序,允许用户将多个文件或文本行合并到一个
    的头像 发表于 02-08 16:58 1779次阅读

    命令配置防火墙的基础上网步骤

    部分用户需要在命令行界面进行防火墙基础上网配置,本文展示如何在命令配置防火墙的基础上网步骤。
    的头像 发表于 09-24 11:37 864次阅读
    在<b class='flag-5'>命令</b>行<b class='flag-5'>下</b>配置防火墙的基础上网步骤

    何在不同应用场景构建音频测试环境

    在之前的文章中,我们已经详细介绍了基础音频参数和AP525的软硬件配置。本文将延续这一主题,以泰凌TLSR9518A EVB作为测试设备(DUT),向大家展示如何在不同应用场景构建音频测试环境。
    的头像 发表于 07-03 15:00 445次阅读
    如<b class='flag-5'>何在</b>不同应用<b class='flag-5'>场景</b><b class='flag-5'>下</b>构建音频测试环境