200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > linux 端口转发 udp Linux Socat TCP/UDP端口转发及使用

linux 端口转发 udp Linux Socat TCP/UDP端口转发及使用

时间:2022-06-15 14:19:20

相关推荐

linux 端口转发 udp Linux Socat TCP/UDP端口转发及使用

socat是不支持端口段转发,只适用于单端口或者少量端口,如果需要大量端口考虑使用 iptables 或 haproxy 。( haproxy 只能转发TCP ) 。

Socat安装

Centos 系统:

yum install -y socat

Debian/Ubuntu 系统:

apt-get update

apt-get install -y socat

Socat使用

TCP4-LISTEN:在本地建立的是一个TCP ipv4协议的监听端口;

reuseaddr:绑定本地一个端口;

fork:设定多链接模式,即当一个链接被建立后,自动复制一个同样的端口再进行 监听 。

socat启动监听模式会在前端占用一个shell,因此需使其在后台执行。

转发TCP

socat TCP4-LISTEN:8888,reuseaddr,fork TCP4:233.5.5.5:1006>> /root/socat.log

一般来说socat 是前台运行的如果需要后台运行则要加上 nohup 命令如

nohup socat TCP4-LISTEN:8888,reuseaddr,fork TCP4:233.5.5.5:1006 >> /root/socat.log

TCP4-LISTEN:8888 指的是 监听ipv4的端口,也就是转发后的端口。

fork TCP4:233.5.5.5:1006 是指被转发的 IP 和端口,也就是你要中继的服务器的IP和端口。

/root/socat.log 是指转发日志。

转发UD

nohup socat UDP4-LISTEN:8888,reuseaddr,fork UDP4:223.5.5.5:1008 >> /root/socat.log 2>&1 &

转发UDP很简单,只要把TCP4改成UDP4就行了!

文件传输

服务端:

socat -u open:FILENAME tcp-listen:12345

客户端

socat -u tcp:ServerIP:12345 open:LOCALFILE,create

【说明】

-u 表示数据单向传送,从第一个参数传递到第二个参数;-U则表示从第二个参数传送到第一个参数。 open 表示使用系统调用open()打开文件,不能打开unix域socket。 tcp-listen 表示监听tcp端口。 create 表示如果文件不存在则创建。 传输结束后两端均退出。

读写分流功能

Socat 具有一个独特的读写分流功能,比如:可以实现一个假的 Web Server,客户端连过来之后就把 hello.html 里面的内容传过去,同时把客户端的数据保存到 log.txt 里面 ( !! 符号用于合并读写流,前面的用于读,后面的用于写。由于 ! 在 Shell 中是特殊字符,所以这里在命令行中使用 \ 对其进行了转义 )

socat open:hello.html\!\!open:log.txt,create,append tcp-listen:12345,reuseaddr,fork

【说明】

open: hello.html 表示读hello.html文件。

open: log.txt 表示收到的数据写入log.txt文件。

reuseaddr 见socket的SO_REUSEADDR。

fork 请求到达时,fork一个进程进行处理。 在bash下,需要用\对!进行转义。

开机启动

因为这个工具并没有开机启动的设定,所以需要设置系统的开机启动。

Centos系统:

chmod +x /etc/rc.d/rc.local

vi /etc/rc.d/rc.local

Ubuntu/Debian系统:

chmod +x /etc/rc.local

vi /etc/rc.local

输入I 键 进入编辑模式(如果没反应请看上面的教程安装 vim),然后在打开的文件中的exit 0代码前面插入你的 socat 命令代码。

查看端口情况

netstat -antup

终止运行

ps -ef|grep socat kill -9 xxxID

Socat卸载

Centos系统:

yum remove socat

Debian/Ubuntu系统:

sudo apt-get remove socat

sudo apt-get autoremove

参考来源:

https://www.dest-/socat/doc/socat.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。