侧边栏壁纸
博主头像
实习两年半

基础不牢,地动山摇。

  • 累计撰写 43 篇文章
  • 累计创建 40 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

Centos使用socat进行端口转发(无公网环境)

实习两年半
2023-05-06 / 0 评论 / 0 点赞 / 465 阅读 / 742 字
温馨提示:
本文最后更新于 2023-05-06,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

问题

   今天遇到一个问题,需要再内网环境中做一个端口转发,而且目前防火墙是被关闭的,所以iptables 使用不了。

  这里我使用的是 “socat”工具。

socat是一个功能强大的网络工具,可以用于在不同计算机之间建立各种类型的数据连接。它支持多种协议和数据格式,并提供了许多强大的特性,如加密、认证、流量转发、连接重定向等。

socat在Linux系统中被广泛使用,可用于各种场景,如端口转发、远程调试、数据备份等。它的配置简单、易用,并且拥有丰富的文档和社区支持,在网络工程师和系统管理员中得到了广泛的应用。

例如,socat可以将本地TCP端口与远程主机上的另一个TCP端口进行绑定,实现端口转发;它还可以将数据从一个设备复制到另一个设备,以达到数据备份的目的;它还可以用于流量分析和嗅探等方面。总之,socat是一款功能强大、灵活多变的网络工具,对于处理网络数据传输等问题非常有用。

环境

  • Centos系统一台,无外网
  • Windows 系统一台

需求

  • 通过Centos上端口远程登录到Windows

安装Socat

查看系统版本

cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)

下载socat

可以通过这个网站进行搜索下载: rpm包网站
image

这里我下载的版本(socat-1.7.3.2-2.el7.x86_64.rpm)

image-1683359829030

上传到需要安装的机器上

执行一下命令安装

rpm -ivh --nosignature socat-1.7.3.2-2.el7.x86_64.rpm
  • –nosignature: 跳过gpg秘钥安装

安装过程

image-1683360010656

配置端口转发

注意: 这里我是在新的一台机器上演示操作,这台机器上17005端口有一个postgres数据库,现在需求是将本机的17006转发到17005上作为模拟。
image-1683360058297

执行命令后将会后台运行,通过ps -ef | grep socat查看

nohup socat TCP-LISTEN:17006,fork,reuseaddr TCP:127.0.0.1:17005 > nohup.out 2>&1 &

image-1683360180357

验证效果

image-1683360288344

配置为开机启动

要将socat的配置作为系统服务并开机启动,可以使用systemd服务管理器来完成

  1. 创建socat服务文件
    在/etc/systemd/system目录下创建一个新的socat服务文件
vim /etc/systemd/system/socat.service

输入内容为

[Unit]
Description=Socat TCP port forwarder
After=network.target

[Service]
ExecStart=/usr/bin/socat TCP-LISTEN:17006,fork,reuseaddr TCP:127.0.0.1:17005 
User=root
Restart=always

[Install]
WantedBy=multi-user.target
  1. 重新加载systemd配置
systemctl daemon-reload
  1. 设置开机启动
systemctl enable socat.service
systemctl start socat.service
  1. 查看状态
systemctl status socat.service

image-1683360805725
5. 最后再次验证
image-1683360823104

0

评论区