Kika's
Blog
图片简介 | CC BY 4.0 | 换一张

搭建frp内网穿透服务 帕鲁Palworld联机

2024-01-25

SakuraFrp平台提供的36M带宽内网穿透还是不太行,可能是最近玩帕鲁实在是太多了,六七个人一起联机的时候就比较卡了,一开始还以为是主机的性能问题,最后发现就是内网穿透严重丢包带来的问题。于是考虑自建内网穿透,正好手上有个2核2G的服务器。

我们方案是本地Windows主机通过一台有公网IP 2核2G 带宽3M的云服务器做frp内网穿透,以提供联机服务(也就是说通过一台云服务器作为跳板,让大家一起连接到本地的Windows主机上)。最后实践发现同时六七个人联机体验也远好于SakuraFrp。

服务器端

为了避免环境配置的繁琐操作,在Linux上使用Docker启动frp服务。

SSH登录Linux服务器,随意目录下,新建frp服务端配置文件 frps.ini

[common]
bind_port = 7000  # frp服务和客户端通信的端口
token = 1234567890 # 客户端需要的密码

dashboard_port = 6999 #  dashborad 管理界面端口
dashboard_user = admin # dashborad登录账号
dashboard_pwd = admin # dashborad登录密码

tcp_mux = true
max_pool_count = 10

自行安装好Docker基础环境,然后新建一个docker-compose.yml文件,内容如下:

version: '3'
services:
     frps:
        image: snowdreamtech/frps:latest
        ports:
            - "7000:7000" # frp服务和客户端通信的端口
            - "6999:6999" # dashborad 管理界面端口
            - "7001:7001" # http
            - "7002:7002" # https
            - "8211:8211/udp" # palworld server 默认端口,注意是UDP通信
            # 更多端口根据实际需求增加
            # 左边为主机  右边为docker
        volumes:
            - ./frps.ini:/etc/frp/frps.ini
        container_name: frps
        restart: unless-stopped

其中一定要注意Docker容器的网络端口设置,这里我们只开放了ports字段下的这几个端口,如果想要使用其他端口必须得添加,而且还要注意以下几点:

  • 如果修改了docker-compose.yml中端口的配置,docker-compose restart无法使其生效的,必须要docker-compose down然后docker-compose up才能真正起效,可以docker-compose ps命令检查端口的映射情况,被坑第二次了(
  • 向云服务器的控制面板中的安全组(防火墙)添加规则,开放所需的端口,而且注意协议TCP还是UDP
  • 检查Linux服务器上的端口开放情况
 lsof -i:8211 # 检查8211端口情况
  • 检查Windows主机上的防火墙情况

之后输入下面的命令启动容器即可

docker-compose up -d

如果想关闭容器(frp服务),下面的命令即可

docker-compose down

成功启动后,此时已经可以通过地址server_addr:dashboard_port(替换成你的服务器公网ip和端口)输入预先设置的账户密码即可访问到后台管理页面了。

客户端

从GitHub上下载Windows客户端,也有其他平台及版本

下面以Windows平台为例

解压压缩包后,目录下新建客户端配置文件frpc.ini

[common]
# 服务端ip,修改为你服务器的公网IP
server_addr =1.2.3.4
# 对应服务端配置 bind_port
server_port = 7000
# 对应服务端配置中的 token
token =  1234567890
[proxies_palworld]
name = "palworld-udp"
type = "udp"
local_ip = 127.0.0.1
local_port = 8211
remote_port = 8211

然后用PowerShell输入命令

./frpc.exe -c ./frpc.ini

显示Start frps success即可

此时便可以通过地址server_addr:remote_port从公网访问到本地的帕鲁服务器了,用这个地址联机即可。

参考