socat官网:http://www.dest-unreach.org/socat/
Socat 入门教程:https://www.hi-linux.com/posts/61543.html
1.可联网设备直接通过安装包安装
- 通过包安装
$ apt-get install -y socat
- 使用rpm安装,需要安装包的留下邮箱:
安装包:socat-1.7.4.1-1.el8.x86_64.rpm
直接
$ rpm -ivh socat-1.7.4.1-1.el8.x86_64.rpm
2.不可联网设备通过离线安装
1.首先选择一台可联网的设备
- 通过源码方式安装
$ wget http://www.dest-unreach.org/socat/download/socat-1.7.4.2.tar.gz
$ tar zxf socat-1.7.3.2.tar.gz
$ cd socat-1.7.3.2
$ ./configure
$ make
$ make install
安装完成后可在终端运行,可以看到:
$ ./socat - -
查看socat
相关的依赖库
$ ldd socat
2.将编译好的文件夹拷贝到目标设备上
运行,./socat - -
报错,缺少相关的依赖库,如下:
libreadline.so.6 => not found
去原设备中查看libreadline.so.6,发现存在软链接libreadline.so.6 -> libreadline.so.6.3
将这两个依赖库一起拷贝到目标设备的/lib/x86_64-linux-gnu
目录下,用cp -d
指令,保证软链接关系。
$ cp -d libreadline.so.6 /home/指定目录
$ cp -d libreadline.so.6.3 /home/指定目录
之后在目标设备下运行./socat - -
即可运行:
3.目标任意打开一个终端命令行,输入socat - - 可以执行
问题:前面几步已经可以实现打开socat了,但必须在指定目录(如下图,不在指定目标运行会报错),希望在任意一个终端都可以运行socat。
目标效果:
解决方案:
将源码编译后的socat可执行程序放到系统的bin目录下。
cp -d socat /bin
实现效果: