终端里也能斗地主:Linux部署Ratel,从本地对战到公网联机

前言

斗地主不一定非要打开游戏平台,Linux 终端里同样可以开一局。

Ratel 是一个基于 Java 的开源斗地主项目,包含服务端和客户端。把项目部署到 Linux 以后,可以启动一个独立的斗地主服务器,再通过客户端连接进去,既能和 AI 对战,也可以让其他玩家加入。整个游戏过程都在终端完成,出顺子、三带一、王炸或者 Pass,都有对应的文本命令。

本文会从 Ratel 的下载和编译开始,处理 Java、Maven 等运行环境,然后分别启动服务端和客户端,确认 1024 端口正常监听,并实际进入一局游戏测试出牌。

本地跑通以后,再继续解决多人联机的问题。通过 cpolar 给 Ratel 的 1024 端口建立 TCP 公网入口,其他电脑即使不在同一个局域网,也可以使用公网域名和端口连接到这台 Linux 服务器。临时测试可以使用随机 TCP 地址,如果准备长期保留这个游戏服务器,还可以继续配置固定 TCP 地址。

整篇文章其实就是做一件事:先把一套终端斗地主服务跑起来,再把原本只能局域网玩的牌局变成可以跨网络加入的多人房间。

1.在linux上部署ratel

Ratel 是一个基于 Netty 和 Spring Boot 的斗地主游戏后端。本文介绍如何在 Linux 系统上快速部署并运行 Ratel 服务,实现服务器启动与客户端连接,助你轻松搭建本地游戏环境。

1.1安装ratel

首先下载打包,确保本地安装有JRE环境:

shell 复制代码
java --version

验证之后,打包下载:

复制代码
git clone https://github.com/ainilili/ratel.git

部署完成后,切换到ratel目录:

shell 复制代码
cd ratel

将项目编译、测试:

shell 复制代码
mvn install package

发现没有mvn,安装:

shell 复制代码
yum install -y maven

继续运行这个命令,发现没有找到java,瘦到查询java安装位置:

shell 复制代码
readlink -f $(which java)

进入配置文件修改:

shell 复制代码
vi /etc/profile

修改如下。

使配置文件生效:

shell 复制代码
source /etc/profile

继续执行这个命令:

shell 复制代码
mvn install package

部署完成后,可以启动啦!

1.2启动ratel

切换到以下目录:

shell 复制代码
cd /root/ratel/landlords-server/target

输入以下命令,启动:

shell 复制代码
java -jar landlords-server-1.4.0.jar -p 1024

显示以上信息就为成功啦!

在开一个终端,启动终端不要断,切换到这个目录下:

shell 复制代码
cd /root/ratel/landlords-client/target

验证一下1024端口是否启动成功:

shell 复制代码
netstat -tunlp | grep 1024 

输入以下命令,连接:

shell 复制代码
java -jar landlords-client-1.4.0.jar -p 1024 -h 192.168.42.140

(-h后面是你的ip地址,不要填错~)

如图则加入游戏成功,可以玩啦!

1.3斗地主摸鱼开始

这边显示连接成功:

启动终端就会有消息,有连入信息:

输入Nico:

我这里选择【2】与ai对抗,选择【2】以后选择模式,我选择【1】简单模式:

选择【1】后游戏就开始啦!

如图操作:

  • 王炸:sx
  • 顺子:34567
  • 三带一:3334
  • 飞机:333444a2
  • 单张10:0或者t
  • 单张A:a或者1
  • 封顶顺子:34567890jqka
  • 不想出牌: passp
  • 退出: exit或者e

一个人摸鱼哪够爽?独乐乐不如众乐乐!

现在,是时候拉上同事一起"协同办公"了。

接下来,我们用 cpolar 打通内网,让全组都能连上你的斗地主服务器------摸鱼,就要摸出团队精神

2.安装cpolar与同事一同摸鱼

cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。

❤️以下是安装cpolar步骤:

使用一键脚本安装命令:

shell 复制代码
sudo curl https://get.cpolar.sh | sh

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

shell 复制代码
sudo systemctl status cpolar

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://192.168.50.100:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

3.配置公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理------创建隧道:

  • 隧道名称:可自定义,本例使用了:ratel,注意不要与已有的隧道名称重复
  • 协议:tcp
  • 本地地址:192.168.42.140:1024
  • 端口类型:随机临时TCP端口
  • 地区:China Top

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用任意一个地址在终端中访问即可。

  • tcp 表示使用的协议类型
  • 2.tcp.cpolar.top是 Cpolar 提供的域名
  • 16749是随机分配的公网端口号

通过 Cpolar 提供的公网地址和端口,可以从任意一台主机连接到斗地主游戏!

连接成功!

4.保留固定TCP公网地址

使用cpolar为其配置TCP地址,该地址为固定地址,不会随机变化。

选择区域和描述:有一个下拉菜单,当前选择的是"China VIP"。

右侧输入框,用于填写描述信息。

保留按钮:在右侧有一个橙色的"保留"按钮,点击该按钮可以保留所选的TCP地址。

列表中显示了一条已保留的TCP地址记录。

  • 地区:显示为"China Top"。

  • 地址:显示为"27.tcp.cpolar.top:10156"。

修改隧道信息,将保留成功的TCP端口配置到隧道中。

  • 端口类型:选择固定TCP端口
  • 预留的TCP地址:填写保留成功的TCP地址

点击更新

创建完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的TCP地址。

最后测试一下固定的地址是否可以连接:

结尾

Ratel 这套玩法最大的特点,就是够轻。服务端运行在 Linux 上,客户端通过终端连接,不需要复杂的图形环境,本地既可以直接和 AI 对战,也可以继续加入其他玩家。

通过 cpolar 给 1024 端口增加 TCP 公网入口以后,Ratel 的使用范围也从同一局域网扩展到了不同网络。随机地址适合临时开一局,固定 TCP 地址则更适合长期保留服务器。

它当然不能替代成熟的在线棋牌游戏,但作为一个 Java 网络通信、服务端部署和 TCP 联机的小项目,Ratel 反而很适合拿来边玩边理解客户端和服务端到底是怎么连起来的。

相关推荐
佳児素花痴╮1 小时前
C语言链接库
linux·运维·服务器
雷电小将军1 小时前
诡秘之主手游占卜家序列加点 诡秘之主手游占卜家怎么加点
服务器·网络·游戏·电脑·玩游戏
云飞云共享云桌面2 小时前
苏州昆山精密机械加工厂研发部门10个SolidWorks可以部署云飞云共享云桌面吗?
大数据·运维·服务器·自动化·汽车·制造
聚美智数2 小时前
图片水印-图片剪裁-图片缩放API接口介绍
java·服务器·数据库
wWYy.2 小时前
Linux发送数据包的过程
linux·网络
小嵌同学2 小时前
Linux 内核中的 Per-CPU 机制详解
linux·运维·arm开发·嵌入式
云飞云共享云桌面2 小时前
自动化设备厂 10 人研发团队,如何共用一台服务器做 SolidWorks 建模?
运维·服务器·网络·3d·自动化·制造
筝筝ba3 小时前
Configure IP Address Via Different User Roles And Verify(1)
服务器
QH139292318803 小时前
NVIDIA H200 H300服务器
运维·服务器·开发语言·网络·信息与通信