使用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端口。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/10785.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FPGA相关论文阅读

一、Achieving 100Gbps Intrusion Prevention on a Single Server 论文名称中文翻译:在单台服务器上实现100Gbps吞吐量的入侵防御检测。 文章中的Mixed-1和Norm-1 二、Distributed Password Hash Computation on Commodity Heterogeneous Programmable Platforms…

【回溯 字典树(前缀树)】212. 单词搜索 II

本文涉及知识点 回溯 字典树(前缀树) LeetCode212. 单词搜索 II 给定一个 m x n 二维字符网格 board 和一个单词(字符串)列表 words, 返回所有二维网格上的单词 。 单词必须按照字母顺序,通过 相邻的单元…

第3周 后端微服务基础架构与前端项目联调配备

第3周 后端微服务基础架构与前端项目联调配备 1. 微服务项目层次设计与Maven聚合1.1 项目层次设计1.2 父项目pom1.2.1 打包方式 1.3 创建通用 ************************************************************************************** 1. 微服务项目层次设计与Maven聚合 1.1…

Tower for Mac:Git管理的新境界

Tower for Mac,让您的Git管理进入新境界!这款专为Mac用户打造的Git客户端,凭借其出色的性能和丰富的功能,成为众多开发者的首选工具。 Tower不仅支持常规的Git操作,如提交、推送和拉取,还提供了许多高级功能…

四、VGA项目:联合精简帧+双fifo+sobel算法 实现VGA显示

前言:该项目实际上是在很多基础的小练习上合成起来的,例如涉及到uart(rs232)的数据传输、双fifo流水线操作、VGA图像显示,本次内容在此基础上又增添了sobel算法,能实现图像的边沿监测并VGA显示。 文章目录…

简单的DbUtils工具类【精细】

目录 单条通用增删改方法 1.创建maven项目,并加载依赖 2.创建数据库连接工具类(Dbutils类) 3.创建一个执行器(SqlExecutor类) 4.通用(增,删,改)方法 1.创建方法 2.创建userInfo实体类 3.创建测试类,测试增,删&#xf…

探索数据结构:树与二叉树

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:数据结构与算法 贝蒂的主页:Betty’s blog 1. 树 1.1. 树的定义 树是一种非线性的数据结构,它是由n&a…

ORA-609频繁出现在alert.log,如何解决?

ORA-609就alertlog中比较常见的一个报错,虽然并没有太大的影响,但是频繁的出现在alert log也是很让人厌烦的事情,本文介绍如何排查解决ORA-609问题。 1.ORA-609官方定义 could not attach to incoming connection Cause Oracle process cou…

【SRC实战】前端脱敏信息泄露

挖个洞先 https://mp.weixin.qq.com/s/xnCQQCAneT21vYH8Q3OCpw “ 以下漏洞均为实验靶场,如有雷同,纯属巧合 ” 01 — 漏洞证明 一、前端脱敏,请求包泄露明文 “ 前端脱敏处理,请求包是否存在泄露? ” 1、获取验…

|Python新手小白中级教程|第二十八章:面向对象编程(类定义语法私有属性类的继承与多态)(4)

文章目录 前言一、类定义语法二、私有方法和私有属性1.私有属性2.私有方法 三、类“继承”1.初识继承2.使用super函数调用父类中构造的东西 四、类“多态”1.多态基础2.子类不同形态3.使用isinstance函数与多态结合判断类型 总结 前言 大家好,我是BoBo仔吖&#xf…

6818Linux内核开发移植

Linux内核开发移植 Linux内核版本变迁及其获得 Linux是最受欢迎的自由电脑操作系统内核, 是一个用C语言写成, 并且符合POSIX标准的类Unix操作系统 Linux是由芬兰黑客Linus Torvalds开发的, 目的是尝试在英特尔x86架构上提供自由免费的类Un…

Task Office for Mac v9.0激活版:任务管理新境界

还在为繁琐的任务管理而烦恼吗?Task Office for Mac为您带来全新的任务管理体验。简洁明了的界面设计,让您轻松上手;强大的任务管理和项目管理功能,让您轻松掌握任务进度;多用户协作功能,让团队协作更加高效…

Excel办公技巧之下拉菜单

在日常办工中,经常需在单元格中输入特定的值,此时我们可以使用下拉菜单解决,输入错误和错误值,可以一劳永逸的解决固定数据输入问题。 使用Excel下拉菜单时,它在数据输入和验证方面发挥着重要作用通过点击单元格的下拉…

商业数据分析--时间序列图及趋势分析

绘制时间序列图,并指出存在什么样的状态如上两图: 可见状态:从时间序列图可以看出,这些数据存在明显的季节性波动,每年的第4季度值都最高,而第2季度值最低。同时也存在一些下降的趋势。 通过引进虚拟变量,建立多元线性回归模型。答: 通过引入虚拟变量,我们可以建立如下的…

商场学习之微服务

前言 寒假前在新电脑上配置了java环境,maven仓库,node,js,navicat,MySQL,linux,vmware等环境,创建了6个mysql数据库,77张表。 如此多的表,字段,去手写基础…

Web入门——三栏布局页面

前置知识 内外边距 内边距(padding): padding是元素边框与其内容之间的空间。也就是说,如果你给一个元素设置了内边距,这个空间会作为元素内容与元素边框之间的缓冲区域。设置内边距会使元素本身变大。例如padding:10px就创建了10像素的空间…

Qt之QMqtt 发送图片数据

简述 MQTT(消息队列遥测传输)是ISO标准下基于发布/订阅范式的消息协议;它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件; MQTT是一个基于客户端-服务器的消息发布/订阅传输协议;MQT…

Docker in Docker(DinD)原理与实战

🐇明明跟你说过:个人主页 🏅个人专栏:《Docker幻想曲:从零开始,征服容器宇宙》 🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、Docker简介 2、Docker …

使用 AI Assistant for Observability 和组织的运行手册增强 SRE 故障排除

作者:Almudena Sanz Oliv, Katrin Freihofner, Tom Grabowski 通过本指南,你的 SRE 团队可以实现增强的警报修复和事件管理。 可观测性 AI 助手可帮助用户使用自然语言界面探索和分析可观测性数据,利用自动函数调用来请求、分析和可视化数据…

windows系统安装Ubuntu子系统

安装前先在 控制面板 中打开 程序与功能选项 ,点击 启用或关闭Windows功能: 勾选 适用于 Linux的Windows子系统 和 虚拟机平台 、 Hyper-v 。 重启电脑后再 Microsoft Store Windows应用商店 中下载合适的Ubuntu版本。 运行Ubuntu程序,如出现…