注意:本教程要求主机玩家有一定的操作系统知识,至少知道如何使用命令操作云服务器,对客机玩家则无任何要求。
一、准备工作
- 云服务器准备
-
一台Linux云服务器,本文以CentOs为例演示。
-
最便宜的2c2g已足够玩星露谷物语,但是相关专业同学便于后续学习尽量买4c16g。
-
- 开放必要端口
- 在服务器防火墙上开放以下端口,支持TCP和UDP协议:
- 7000(用于FRP连接)
- 24642(用于《星露谷物语》的联机)
- 在服务器防火墙上开放以下端口,支持TCP和UDP协议:
二、在Linux服务器上配置FRP服务端
-
下载FRP服务端
wget https://github.com/fatedier/frp/releases/download/v0.51.0/frp_0.51.0_linux_amd64.tar.gz
-
解压缩下载的包
tar -xzvf frp_0.51.0_linux_amd64.tar.gz cd frp_0.51.0_linux_amd64
-
配置FRP服务端
-
编辑
frps.ini
文件:vim frps.ini
-
添加或修改以下内容:
[common] bind_port = 7000
-
-
启动FRP服务端
-
直接运行:
./frps -c frps.ini
-
为了让FRP服务端在后台运行,建议使用
screen
或tmux
:screen -S frp ./frps -c frps.ini
-
分离 screen 会话:按Ctrl+A,然后按D。
-
三、在Windows客户端上配置FRP客户端
- 下载FRP客户端:前往 FRP 官方发布页面 下载适用于Windows的FRP客户端压缩包(例如
frp_0.51.0_windows_amd64.zip
) - 解压缩下载的包:将下载的压缩包解压到一个目录,例如
C:\frp\
- 配置FRP客户端
- 使用文本编辑器(如记事本)打开
frpc.ini
文件,添加以下内容:[common] server_addr = <您的服务器IP> # 替换为您的云服务器公网IP server_port = 7000 # 与服务端一致的端口 [stardew_valley_udp] type = udp local_ip = 127.0.0.1 local_port = 24642 remote_port = 24642 [stardew_valley_tcp] type = tcp local_ip = 127.0.0.1 local_port = 24642 remote_port = 24642
- 使用文本编辑器(如记事本)打开
- 运行FRP客户端
- 以管理员身份打开命令提示符(CMD)。
- 进入FRP客户端目录:
cd C:\frp\
-
运行FRP客户端:
frpc.exe -c frpc.ini
四、配置《星露谷物语》进行联机
- 启动游戏并进入多人模式
- 打开《星露谷物语》,选择“多人游戏”菜单。
- 选择联机方式
- 在“连接类型”中选择“联机IP”。
- 输入服务器信息
- 输入FRP服务器的IP地址和端口号,例如:
<您的服务器IP>:24642
。
- 输入FRP服务器的IP地址和端口号,例如:
- 连接游戏
- 点击“连接”按钮,等待好友加入您的游戏。
五、注意事项
-
保持FRP服务端和客户端运行
- 确保服务器端的FRP服务和客户端的FRP连接保持运行状态,避免断开连接导致联机中断。
-
防火墙和安全组设置
- 确保云服务器的防火墙和Windows本地防火墙都已正确开放了所需的端口(7000和24642)的TCP和UDP协议。
-
FRP配置文件正确性
- 确认
frps.ini
和frpc.ini
文件中的配置参数正确无误,特别是服务器IP地址和端口号。
- 确认
-
网络稳定性
- 确保您的网络连接稳定,避免在游戏过程中出现延迟或断线问题。
六、相关知识
1. 云服务器(Cloud Server)
定义与作用
云服务器是一种基于云计算技术的虚拟服务器,提供计算资源、存储和网络功能。相比传统的物理服务器,云服务器具有高可用性、弹性扩展和成本效益等优势。
在教程中的角色
在本教程中,云服务器充当了中转站(中继服务器),帮助你的本地计算机与远程朋友的计算机建立连接。由于云服务器通常具有公网IP地址,能够轻松地接收和转发外部请求,从而解决了本地网络(如家庭网络)中NAT(网络地址转换)和防火墙带来的限制问题。
2. FRP(Fast Reverse Proxy)
定义
FRP 是一个高性能的反向代理应用,主要用于内网穿透。它允许用户将内网服务通过公网服务器暴露出来,使外部设备能够访问。
组成部分
- FRP 服务端(frps):运行在云服务器上,负责接收外部请求并转发到FRP客户端。
- FRP 客户端(frpc):运行在本地计算机上,负责将本地服务(如游戏服务器)通过FRP服务端暴露到公网。
在教程中的作用
通过FRP,你的《星露谷物语》游戏服务器端口(24642)被映射到云服务器的端口(7000)。这样,你的朋友们只需连接到云服务器的IP和端口,就能访问你本地的游戏服务器,实现多人联机。
3. 网络协议:TCP 与 UDP
TCP(传输控制协议)
- 特点:面向连接,可靠传输,确保数据按顺序到达。
- 用途:适用于需要高可靠性的应用,如网页浏览、文件传输等。
UDP(用户数据报协议)
- 特点:无连接,快速传输,数据包可能会丢失或乱序。
- 用途:适用于实时应用,如视频会议、在线游戏等。
在教程中的应用
《星露谷物语》使用TCP和UDP协议进行网络通信:
- TCP:用于可靠的数据传输,确保游戏状态的同步。
- UDP:用于快速传输实时数据,减少延迟。
FRP配置中同时开启TCP和UDP端口,以支持游戏的双协议通信需求。
4. 反向代理与NAT穿透
反向代理
反向代理服务器位于客户端和服务器之间,接收客户端的请求并将其转发给内部服务器,再将内部服务器的响应返回给客户端。它隐藏了内部服务器的真实IP地址,增强了安全性和可管理性。
NAT穿透
NAT(网络地址转换)是家庭和企业网络中常见的技术,用于将多个私有IP地址映射到一个公网IP地址。NAT穿透技术用于解决内部网络设备与外部设备直接通信的问题,尤其是在需要外部设备主动发起连接的场景中。
在教程中的应用
FRP作为反向代理,帮助你的本地游戏服务器(处于私有网络中)通过云服务器(具有公网IP)对外暴露。FRP通过建立持久的连接,绕过NAT限制,使外部朋友能够访问你的本地游戏服务器。