使用socat做端口转发

最近买的云上mongo数据库但是数据库不支持外网访问,准备做iptables转发但是一直不成功,腾讯云官方给予的解释是受服务器内启动的docker影响 做iptables转发会冲突,所以只能另想办法,我发现使用socat做转发也很好用,所以记录一下开源给大家。

socat介绍:

socat 是一个功能强大的多功能网络工具,它可以在两个数据流之间建立连接,同时可以转换它们的特性。它的名字源自于 "SOcket CAT",意味着它可以像 cat 命令一样,但用于网络连接。

以下是 socat 的一些主要特点和功能:

  1. 多协议支持 : socat 支持多种不同的协议,包括 TCP、UDP、IPv4、IPv6、UNIX 套接字等。

  2. 连接两个数据流 : socat 可以连接两个数据流,这两个数据流可以是文件、套接字、管道等。

  3. 端口转发 : 你可以使用 socat 在不同的主机之间进行端口转发,使得网络服务可以在不同主机之间进行通信。

  4. 代理和中继 : 你可以使用 socat 作为代理或中继,将数据流从一个位置转发到另一个位置,这在网络调试和故障排除时非常有用。

  5. 加密和认证 : socat 支持 SSL 和 TLS 加密,以及基本的认证功能,可以确保数据在传输过程中的安全性。

  6. 虚拟串口 : 在某些情况下,socat 还可以创建虚拟串口,模拟物理串口的功能,用于串口通信和调试。

总的来说,socat 是一个非常灵活和强大的工具,可以在网络和系统管理、开发和调试等方面发挥重要作用。

tcp端口转发:

注:我在192.168.1.10这台服务器执行下面的命令让端口转发到内网IP:10.106.0.20的6379端口上,执行完下面的命令就可以在访问192.168.1.10:20001端口就可以转发到内网IP的6379端口上,也就可以使用外网访问我们的内网数据库。

socat TCP4-LISTEN:20001,fork TCP4:10.106.0.20:6379 &

执行完命令我们可以使用netstat -lntp 查看本地是否启动一个为20001的端口

然后我们使用命令:telnet 10.106.0.20:6379 27017 测试能否连通服务器如下图表示成功

注:如果是云上服务器记得开启服务器安全组20001端口,和后端服务器允许服务器192.168.1.10访问6379端口。

#TCP4-LISTEN表示监听一个TCP4端口(IPv4),fork表示每个连接都创建一个新进程处理数据流,TCP4:10.106.0.20:6379表示将数据转发到目标主机B的6379端口。这样,所有发送到主机A的20001端口的数据流都会被转发到主机B上的6379端口。会在A主机监听20001端口,所有访问A:20001端口的,会返回B:6379的资源。

UDP端口转发:

除了TCP端口转发,socat还支持UDP端口转发。假设有一台主机A,它的IP地址为192.168.100.10,上面运行着一个DNS服务器,监听在53端口。现在需要将53端口的UDP数据流转发到另一台主机B上的5353端口,可以使用以下命令:

socat UDP4-LISTEN:53,fork UDP4:192.168.100.20:5353 &

其中,UDP4-LISTEN表示监听一个UDP4端口(IPv4),UDP4:192.168.100.20:5353表示将数据转发到目标主机B的5353端口。

相关推荐
人类群星闪耀时12 分钟前
利用AI进行系统性能优化:智能运维的新时代
运维·人工智能·性能优化
小安运维日记24 分钟前
CKA认证 | Day7 K8s存储
运维·云原生·容器·kubernetes·云计算
LinuxSuRen28 分钟前
Jenkins 命令行多线程并发下载制品包
运维·jenkins
存储服务专家StorageExpert31 分钟前
墙裂推荐:console, CLI命令行和日志使用字体-Cascadia
运维·服务器·netapp存储·存储维护·emc存储
暗碳35 分钟前
华为麦芒5(安卓6)termux记录 使用ddns-go,alist
android·linux
靡樊37 分钟前
Linux:基础IO
linux
菜鸟康1 小时前
Linux系统编程——理解系统内核中的信号捕获
linux·运维·服务器
张明奇-琦玉1 小时前
Boost之log日志使用
linux·服务器·算法
云计算DevOps-韩老师2 小时前
【网络云计算】2024第52周-每日【2024/12/26】小测-理论&实操-备份MySQL数据库并发送邮件-解析
linux·开发语言·网络·数据库·mysql·云计算·perl
IT 古月方源2 小时前
ensp ppp 协议的讲解配置
运维·网络·网络协议·tcp/ip·智能路由器