先前的IDC要到期了,友人那边给了台Linux服务器,需要打洞出去,frp服务器也有热心的同学提供,基本上只要搬搬东西就好了,下面我顺着这张图介绍一下流程
Frpc
这个配置很简单,local_port和remote_port对应好就行,然后顺便写份frps给社长让他复制下就能跑,至于图上的一些本地和远程端口不一致是因为先前的IDC端口映射端口分配是不对等的,为了不给后续dns中的srv记录修改添麻烦,就照先前的端口填,玩家得通过FRP访问服务器,frpc挂tmux上就行
sources.list
在安装一些软件包的时候遇到挺多麻烦,机器的另外一个使用者好像不太熟悉Linux,把sources弄的很乱,后来翻了些文章,可以用这个LUG’s repo file generator (ustc.edu.cn)来直接对应系统发行版本生成sources.list,此外,/etc/apt/sources.list.d/里好像还有他留下来的问题,这个会和sources.list一起被apt解析来着
Ubuntu似乎是22.04后加入了仓库GPG Key的验证,照着几个文章配得云里雾里的,这个我也不太懂,之前在github上和idea一起配就出了问题,就不误导别人了
MCSManger
安装很简单,照着文档装就行,linux上多版本java共存有点麻烦,因此我使用docker容器化了所有服务器实例,装docker有点麻烦,反正也是一个sh的事,被先前错误的仓库配置坑了下就是,修好后就行了
MariaDB
一个apt install的事,导入了先前服务器的数据库就ok了,但是docker内的mc服务器插件试图连接数据库的时候出了问题,下面再讲
Docker
我自己也是第一次用docker跑服务器,之前只是觉得docker很神奇,虽然是虚拟化但是也不影响什么性能,一颗赛艇
先前在win上加载authlib-injector都是 -javaagent:../authlibxxx 就行了,但是放在docker上之后需要额外挂载一下上级文件夹,就像映射驱动器一样,之后用映射出来的路径来加载
容器接入的网络模式很重要
数据库的话,是这样的,docker的网络连接模式我一开始开的是bridge,然后死活连接不上数据库,我还怀疑是什么localhost用空密码连接之类的配置问题呢,后来搜了下发现是要改成host模式,不然权限组差点就得换成sqlite来记录了
这个网络连接问题同样影响waterfall的fallback server,还是和上面一样,把容器网络模式改成host模式就行,至于原理的话,我也不知道,可能是没有学计网导致的
差不多就是这样,别的想不起来了,通篇都是经验之谈,对新人来说很不友好,就当是我自己的备忘录吧,不知道对读者有没有帮助
2023.10.5
后记:朋友看了我的博客,分享了这个【【入门篇】Docker网络模式Linux – Bridge | Host | None-哔哩哔哩】)视频,这样对docker的网络连接模式应该就可以理清了(想必对别的虚拟机也有帮助)()
2023.10.14
我倒是想知道如果我想用voicechat mod怎么用樱花穿过来,这个语音模组用的是一个24455的udp端口,用樱花穿的话,不能一个隧道,同节点两个隧道同时穿连不上,但是MC要用tcp
所以求解决办法
连不上是游戏内客户端连不了,然后本地的话,分了两个端口,不能调成一样的
连不上的话肯定是你配置有问题了,再检查下吧