華落博客

  • 更多
    • 日志
    • Linux学习
HuaLuoo's Blog
Hello World
  1. 首页
  2. Linux学习
  3. 正文

Centos的TCP端口转发(TCP内网穿洞)

2017年11月20日 66212点热度 6人点赞 2条评论

我曾运营过一个MineCraft服务器,但是因为部分原因,选择的机房没有移动线路,但是服务器中有不少移动玩家,但服务器只有电信联通双线,MineCraft对于网络要求较高,移动玩家连接电信、网通线路都会感到明显掉包和掉线,MineCraft的PC服务端数据传输基于TCP协议,所以转念一想,能不能用阿里云的五线BGP使用TCP转发的方式使移动玩家能流畅的进行游戏。

我曾经使用过Windows下的端口转发工具和TCP Mapping的工具,在少量玩家下运行情况良好,但是大量玩家连接的话,就会出现未响应、停止运行等等大大小小的问题,Linux下使用IPtable进行转发,但是外网转发效果并不好,经过一段时间搜索发现Rinetd这个工具。

1、安装必备

yum -y install gcc* wget

2、下载Rinetd

wget http://www.boutell.com/rinetd/http/rinetd.tar.gz

3、解压

tar zxvf rinetd.tar.gz

4、进入目录

cd rinetd

5、然后修改工具源码中的两个错误

vi rinetd.c

搜索bindPort >= 65536和connectPort >= 65536然后把65536均改为65535

6、然后编译

make

7、创建目录

mkdir /usr/man

8、安装

make install

9、创建配置文件 ,可以自己指定目录此处我放在etc文件

vi /etc/rinetd

配置如下

0.0.0.0 25565 222.168.254.168 25565

格式为源地址 源端口 目的地址 目的端口

10、开启端口转发,-c后面为配置文件路径

./rinetd -c /etc/rinetd

关闭进程

pkill rinetd

启动转发
rinetd -c /etc/rinetd

把上方这条命令加到/etc/rc.local里面就可以开机自动运行

同样,这个东西可以有许多应用的地方,在一台外网服务器搭建VPN内网服务器连接VPN,或者通过gre隧道的方式将内网和外网的机器构建一个虚拟内网环境,然后在外网的服务器通过虚拟的内网IP转发到内网的机器上,就可以做到类似TCP穿洞的效果。

我也将这个用于外网访问内网RDS上,经过对源代码研究发现此还是主要通过iptable的nat转发功能来实现,无法实现IP透传。

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2019年8月22日

華落

这个人很懒,天天沉迷CS2,什么也不想写

点赞
< 上一篇
下一篇 >

文章评论

  • john0526

    :smile: 請問一下 版主有試過 rinetd + BBR 然後用於MineCraft 嗎? 可以分享一下嗎?

    2018年4月25日
    回复
    • 華落

      @john0526 已测试BBR+Rinetd,使用BBR与不使用BBR实际感觉相同,也许是大陆内机器连接普遍延迟在50ms以内所以没有多大感觉,对于高延迟可能会有所效果。

      2018年4月27日
      回复
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    回复 華落 取消回复

    这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理。

    華落

    这个人很懒,天天沉迷CS2,什么也不想写

    相关链接
    HuaLuoo's 直链下载站
    分类
    • Linux学习 / 8篇
    • 建站教程 / 3篇
    • 日志 / 2篇
    • 杂谈 / 1篇
    归档
    • 2018 年 4 月 / 1篇
    • 2018 年 1 月 / 1篇
    • 2017 年 11 月 / 8篇
    • 2016 年 7 月 / 1篇
    • 2016 年 6 月 / 3篇

    COPYRIGHT © 2024 華落博客. ALL RIGHTS RESERVED.