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
从公网访问到本地的帕鲁服务器了,用这个地址联机即可。
参考
本文采用知识共享署名4.0国际许可协议(CC BY 4.0)进行许可