【工作】Linux 实用的端口转发工具:socat安装使用记录

写在前面:

在实际生产中我们经常会遇到到一个场景就是,用一台机器作为转发服务器,连接AB两个网段,将转发服务器的某个端口上的流量转发到B网段的某台机器的某个端口,这样A网段的服务器就可以通过访问转发服务器上的端口访问到B网段的服务器端口。
这样的场景一般在和客户建立专线的连接时候经常用到,一般也可以采用iptables做转发,但是比较复杂,socat可以很轻松的完成这个功能。
socat可以看做netcat(nc)的替代产品,作用是在两个流之间建立双向的通道,且支持众多协议和链接方式:ip,tcp,udp,ipv6,pipe,exec,system,open,proxy,openssl,socket等

一、socat的安装方式:

1.源码方式安装:

socat的官方网站:http://www.dest-unreach.org/socat/
socat源代码包下载地址:http://www.dest-unreach.org/socat/download/
编译安装:
# tar zxf  socat-1.7.2.4.tar.gz
# cd  socat-1.7.2.4
# ./configure   
# make   
# make install  

2.yum方式安装:

# yum install socat

二、主要功能

1.端口转发功能:

格式:
# nohup socat TCP4-LISTEN:访问端口reuseaddr,fork TCP4:192.168.xxx.xxx:转发端口
实例:
开启日志,在本地的监听192.168.162.43网卡的123端口,并将请求转发至192.168.162.44的123端口
# nohup socat  -d -d -lf /var/log/socat.log TCP4-LISTEN:188,bind=192.168.162.43,reuseaddr,fork TCP4:192.168.162.44:123 &
nohup…& :  这个是保证命令可以在后台运行
-d -d -lf /var/log/socat.log :  前面两个连续的-d -d代表调试信息的输出级别,-lf则指定输出信息的保存文件。
TCP4-LISTEN:在本地建立的是一个TCP ipv4协议的监听端口;
bind:指定监听的IP地址,不写这个参数的话将监听服务器上的全部IP
reuseaddr:绑定本地一个端口
fork:设定多链接模式,即当一个链接被建立后,自动复制一个同样的端口再进行监听

2.文件传递功能:

nc也经常用来传递文件,但是nc有一个缺点,就是不知道文件什么时候传完了,一般要用Ctrl+c来终止,或者估计一个时间,用-w参数来让他自动终止。用socat就不用这么麻烦:
192.168.162.43: 
# socat -u open:file,binary tcp-listen:123 
 
192.168.162.44: 
# socat -u tcp:192.168.162.43:123 open:file,create,binary 
-u 表示数据单向流动,这个命令把文件file用二进制的方式,使用123端口(不能是已使用的端口),从192.168.162.43传到192.168.162.44,文件传输完毕,会自动退出。

3.读写分流功能:

socat还具有一个独特的读写分流功能,比如:
# socat open:read.txt!!open:write.txt,create,append tcp-listen:80,reuseaddr,fork 
这个命令实现一个假的web server,客户端连过来之后,就把read.txt里面的内容发过去,同时把客户的数据保存到write.txt里面。”!!”符号用户合并读写流,前面的用于读,后面的用于写。

免责声明:务必仔细阅读

  • 本站为个人博客,博客所转载的一切破解、path、补丁、注册机和注册信息及软件等资源文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。

  • 本站为非盈利性站点,打赏作为用户喜欢本站捐赠打赏功能,本站不贩卖软件等资源,所有内容不作为商业行为。

  • 本博客的文章中涉及的任何解锁和解密分析脚本,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断.

  • 本博客的任何内容,未经许可禁止任何公众号、自媒体进行任何形式的转载、发布。

  • 博客对任何脚本资源教程问题概不负责,包括但不限于由任何脚本资源教程错误导致的任何损失或损害.

  • 间接使用相关资源或者参照文章的任何用户,包括但不限于建立VPS或在某些行为违反国家/地区法律或相关法规的情况下进行传播, 博客对于由此引起的任何隐私泄漏或其他后果概不负责.

  • 请勿将博客的任何内容用于商业或非法目的,否则后果自负.

  • 如果任何单位或个人认为该博客的任何内容可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明至admin@proyy.com.我们将在收到认证文件后删除相关内容.

  • 任何以任何方式查看此博客的任何内容的人或直接或间接使用该博客的任何内容的使用者都应仔细阅读此声明。博客保留随时更改或补充此免责声明的权利。一旦使用并复制了博客的任何内容,则视为您已接受此免责声明.

您必须在下载后的24小时内从计算机或手机中完全删除以上内容.

您使用或者复制了本博客的任何内容,则视为已接受此声明,请仔细阅读


更多福利请关注一一网络微信公众号或者小程序

一一网络微信公众号
打个小广告,宝塔服务器面板,我用的也是,很方便,重点是免费的也能用,没钱太难了,穷鬼一个,一键全能部署及管理,送你3188元礼包,点我领取https://www.bt.cn/?invite_code=MV9kY3ZwbXo=


一一网络 » 【工作】Linux 实用的端口转发工具:socat安装使用记录

发表评论

发表评论

一一网络-提供最优质的文章集合

立即查看 了解详情