端口转发程序已经介绍过rinetd了,但是rinetd不支持域名动态解析功能,如果域名对应的ip发生改变,需要重新才能重新加载新的地址。这里自然找到了端口转发工具socat,它完美的解决了动态dns的问题。且由于工作模式的不同,socat的转发效率更高。

socat是一个长期维护的项目,rinetd已经很久没有更新了。如果只有少数几个端口需要转发,socat将是非常不错的选择。socat长期维护所以可以直直接在线支持redhat/centos/debian等发行版本。

socat项目

socat安装

使用包管理工具进行安装:

#CentOS系统

yum install -y socat

#Ubuntu或Debian系统

apt-get update

apt-get install -y socat

socat的使用

2.1转发TCP流量

nohup socat TCP4-LISTEN:10000,reuseaddr,fork TCP4:1.1.1.1:10000 >> socat.log 2>&1 &

1、TCP4-LISTEN:10000监听ipv4的10000TCP端口,10000改成你自己需要转发的端口;

2、fork TCP4:1.1.1.1:10000`转发到1.1.1.1的10000端口,根据需求修改自行修改ip和端口;

3、nohup后台运行,可以把这个命令写到/etc/rc.local里面开机启动启动。

2.2转发UDP流量

nohup socat -T 600 UDP4-LISTEN:10000,reuseaddr,fork UDP4:1.1.1.1:10000 >> socat.log 2>&1 &

说明对照tcp流量转发,如果想要开机自己动可以将命令吸入到/etc/rc.local。更好的办法是将命令写作shell脚本,开机自启动。

开机自启动

创建一个systemd服务

echo "[Unit]

Description=/etc/rc.local

ConditionPathExists=/etc/rc.local

[Service]

Type=forking

ExecStart=/etc/rc.local start

TimeoutSec=0

StandardOutput=tty

RemainAfterExit=yes

SysVStartPriority=99

[Install]

WantedBy=multi-user.target

" > /etc/systemd/system/rc-local.service

创建配置文件:

echo "#!/bin/sh -e

#

# rc.local

#

# This script is executed at the end of each multiuser runlevel.

# Make sure that the script will "exit 0" on success or any other

# value on error.

#

# In order to enable or disable this script just change the execution

# bits.

#

# By default this script does nothing.

" > /etc/rc.local

将socat端口转发配置写入文件即可

echo "nohup socat TCP4-LISTEN:10000,reuseaddr,fork TCP4:1.1.1.1:10000 >> /root/socat.log 2>&1 &

nohup socat -T 600 UDP4-LISTEN:10000,reuseaddr,fork UDP4:1.1.1.1:10000 >> /root/socat.log 2>&1 &

" >> /etc/rc.local

附加执行权限

chmod +x /etc/rc.local

加载开机自动并启动服务

systemctl enable rc-local

systemctl start rc-local

总结

socat转发时,流量进程时一对一模式,可以动态伸缩调整,转发效率更加优秀。总体性能比rinetd好,且作为一个长期维护的项目,可以有专业人员修复bug和新增功能。

linux 设置mysql端口转发_linux使用socat进行端口转发,支持tcp/udp数据转发相关推荐

  1. linux设置mysql root密码_Linux 上安装 Mysql 设置root密码问题

    Ubuntu 18.10.1 Mysql 5.7.26-0 安装mysql apt-get install mysql-server 安装完可以直接使用,但是新版本在安装过程中没有提示设置root用户 ...

  2. UDP数据转发解决WiFi与有限以太网之间控制命令传递:RGBLink

    简 介: 针对RGBLink有线入网的特点,使用了一台中间工控机做了有线.无线之间的转接.利用了sokit软件完成UDP数据转发,可以利用TEASOFT软件自动控制RGBLink设备. 关键词: RG ...

  3. 8月11日 网工学习 APR协议 传输层协议 TCP UDP 数据封装转发全过程

    目录 APR协议 传输层协议 TCP UDP 数据封装转发全过程 APR协议 作用:将IP地址解析为MAC地址 ARP的主要内容 在ARP高速缓存表中查找目的IP地址对应的MAC地址 广播发送ARP请 ...

  4. linux 把mysql大小写关闭_linux中设置mysql大小写不去区分方法

    linux中设置mysql大小写不去区分方法 发布时间:2020-05-14 12:01:31 来源:亿速云 阅读:191 作者:三月 本文主要给大家介绍linux中设置mysql大小写不去区分方法, ...

  5. linux下mysql目录结构_linux下mysql安装配置与目录结构

    本节内容: linux下mysql安装与配置.mysql目录结构. 1.准备安装程序(官方网站下载) 服务端:MySQL-server-community-5.1.44-1.rhel4.i386.rp ...

  6. linux与mysql的关系_linux系统mysql简介

    linux系统mysql初始 初级:1.mysql安装 中级:数据库管理员DBA 1) 用户管理 1.用户权限的管理 2.管理可以操作库和表 3.用户名 4.管理来源IP 5.用户的密码 grant ...

  7. linux下mysql服务架设_linux下源码搭建php环境之mysql(一)

    现在已经大半夜了,五一劳动节挺无聊的. 折腾一下吧,实在是睡不着.于是乎在电脑上安装个虚拟机,然后呢,在虚拟机上搭建一个php环境. 首先我得安装MYSQL吧.发现遇到的问题真多..待我娓娓道来. 主 ...

  8. linux上mysql卸数_Linux下MySQL卸载和安装图文教程

    Linux下MySQL卸载和安装图文教程 发布时间:2020-09-02 08:43:17 来源:脚本之家 阅读:59 作者:伊宇紫 第一次写博客,做了两年的开发,工作之余给自己找点有意义的事做,分享 ...

  9. linux安装mysql.rpm软件包_Linux环境安装MySQL数据库(RPM格式的软件包)

    1.  下载mysql安装包 2.解压已下载的mysql安装包,安装包根据自己需要进行安装.(本人使用mysql 5.5版本测试) 3.先检查本机是否有安装mysql数据库,再使用rpm命令进行安装, ...

最新文章

  1. 资料分享:送你一本《数据结构(C#语言版)》电子书!
  2. Python机器学习入门资料整理
  3. MindCon | 杭京宁三大战场即将启动,火速来战!
  4. golang channel 管道
  5. Vue.js 生产环境部署
  6. 音乐社交APP源码ios版
  7. Java核心(三):代码块的作用
  8. python学多久能写东西的软件有哪些_怎么自学python,大概要多久?
  9. 如何判断当前循环的栏目是不是最后一个
  10. 用Siri显示二维码, iOS11, INGetVisualCodeIntent
  11. 机器学习:监督学习、无监督学习、强化学习
  12. KITTI数据集详解
  13. 解决win10计算机管理中没有本地用户和组
  14. 网易互娱2022校园招聘在线笔试-游戏研发工程师(第一批)
  15. b站视频突破2倍方法,3倍?4倍?可以开10倍!!!
  16. 小红书笔记下沉怎么做到的?
  17. 【Java程序设计】GUI的JTable的一些应用
  18. Android 8.1 中Systemui中的常见修改(六)NavigationBar加载流程
  19. NB无信号以及无法连接网络问题分析及解决
  20. Android 统一打包框架(附源码下载)

热门文章

  1. python傅里叶谐波分析_傅里叶变换及其谐波提取
  2. 还记得小时候玩的泡泡龙吗?用CocosCreator实现它!
  3. 攻防世界nice_bgm
  4. 张一鸣、王兴、蔡文胜,福建人为什么爱做流量生意
  5. 马哥:linux云计算从入门到精通笔记
  6. Linux系统下安装串口调试工具
  7. YT88 USB 加密狗 使用方法(二)加密算法
  8. Camera基本概念
  9. 如何快速识别提取图片上的文字
  10. JavaScript 数组拼接打印_8种常见数据结构及其Javascript实现