socat网络命令
原创大约 2 分钟
本文介绍,网络命令socat常见用法
服务器说明
以下命令在 Ubuntu 20.04 LTS 系统上测试
ubuntu@:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04 LTS
Release: 20.04
Codename: focal
Socat介绍
Socat 是 Linux 下的一个多功能的网络工具,名字来由是 「Socket CAT」。其功能与有瑞士军刀之称的 Netcat 类似,可以看做是 Netcat 的加强版。
Socat 的主要特点就是在两个数据流之间建立通道,且支持众多协议和链接方式。如 IP、TCP、 UDP、IPv6、PIPE、EXEC、System、Open、Proxy、Openssl、Socket等。
Socat 的官方网站:http://www.dest-unreach.org/socat/
Socat安装
# yum install -y socat
apt-get install -y socat
socat -h
#socat by Gerhard Rieger and contributors - see www.dest-unreach.org
#Usage:
#socat [options] <bi-address> <bi-address>
常见用法(我使用过的命令样例)
- 文件操作
- 网络管理
- 端口转发
- 其他功能
- 向TCP端口发送数据
# 监听TCP端口5901 转发到 192.168.xxx.xxx:5901 socat TCP-LISTEN:5901,fork TCP:192.168.xxx.xxx:5901
- 监听一个UDP端口
- 向一个UDP端口发送数据
- 监听一个Unix Socket
- 向本地Unix Socket发送数据
- 监听本地Unix Datagram Socket
- 向本地Unix Datagram Socket 发送数据
- 通过OpenSSL来加密传输过程
- 建立一个正向的shell
- 反弹一个交互式的shell
- fork服务
- 不同设备的通信
- 将终端转发到串口
- 让socat后台运行 (nohup screen tmux)
- 不同主机之间传输文件(收发)
# 把本地的test.txt文件发送到10.3.xxx.xxx的30004端口 socat -u open:test.txt tcp-listen:30004 socat -u tcp:10.3.xxx.xxx:30004 open:test.txt,create # 把10.3.xxx.xxx的30004端口的文件ingress-auth.yml发送到本地 socat -u open:ingress-auth.yml TCP:10.3.xxx.xxx:30004 socat -u TCP-LISTEN:30004 open:ingress-auth.yml,create
- 向TCP端口发送数据