从零开始搭建frp内网穿透服务器进行mc/tr联机

/ 8评 / 3

Ver.3 2020.8.18

这是我的第二篇“从零开始”教程,前一篇搭建Minecraft服务器教程转发到BiliBili后反响还不错,真有许多大佬们根据我的教程成功搭建了服务器,这让我也信心百倍。毕竟教程真的帮助到了别人,我也非常的高兴。

这一篇又提到了mc服务器的搭建,是因为使用ECS搭建mc服务器一是配置价格贵,要高配的话每月高达百元。二是服务器的搭建有点复杂。于是我给出了替代方案——使用frp内网穿透,在本机搭建服务器映射到外网,让好基友们可以连接。

本篇文章将会提到利用frp搭建Minecraft/Terraria服务器。注:本教程重点是搭建frp内网穿透服务器,并没有详细的Minecraft、Terraria服务器配置内容,相关内容请自行百度学习。

目 录
INDEX


一、原理解释

当今IPv4资源紧缺,IP地址不足以全球所有计算机人手一个,于是运营商将一个地区的用户包含到一个“局域网”里,这个地区的用户拥有的IP是这个“局域网”的内网IP,公网上的用户是无法直接访问到你这个内网IP的,所以你的电脑上搭建的我的世界/泰拉瑞亚服务器,你的好朋友是无法连接的。

而我们可以借助租用的拥有公网IP的云服务器,在其上搭建frp内网穿透,这样我们本机搭建的mc服务器(以mc为例,也可以搭建tr服务器),就可以利用frp服务器作为一个“中转站”。好朋友连接frp服务器,就可以通过中转连接到我们的电脑。

我制作了个简化的原理图,让大家更好理解。(我没有专业的网络知识,只是有点兴趣罢了,如果有错误请谅解)

从零开始搭建frp内网穿透服务器进行mc/tr联机插图

二、购买云服务器

本教程使用阿里云ECS搭建,若你有更实惠的云服务器,你也可以自行购买。

注:使用大陆服务器搭建非http服务的服务器无需ICP备案,可放心使用大陆服务器。

1.进入阿里云官网。https://www.aliyun.com/

2.注册账号并登陆。

3.点击“产品分类”->“云服务器 ECS”->“立即购买”进入购买页面

4.推荐我的配置选择,没提到的东西选择默认选项

frp一点也不吃配置,并且我搭建的服务器是最简单的版本,最多就五六个连接,连接也没有进行压缩,所以更不需要什么配置。我推荐先买最低配的服务器,如果满足不了你再升级。我购置的服务器就是阿里云最便宜的服务器,配置非常足够。

选择一:基本适合任何带宽需求,可进行Minecraft联机。但是流量需付费。(总价:11.5元/月 流量:0.8元/GB)

选择二:(限12~24岁用户)适合带宽需求小的服务,如Terraria或远程桌面连接。带宽只有5Mbps但是无需额外付费(总价:9.5元/月)

从零开始搭建frp内网穿透服务器进行mc/tr联机插图1

(本教程全部以ECS版本为例,若购买的为学生机轻量应用服务器,请进入轻量应用服务器控制台,操作大同小异,只是菜单位置有区别罢了)


三、连接并配置云服务器

(本节借用了我上一篇教程的文字和图片,因为操作一模一样没有区别)

1.下载Xshell和Xftp
官方家庭/学校免费版获取链接:https://www.netsarang.com/zh/free-for-home-school/(填写正确邮箱,选择两者,提交。两封包含下载链接的邮件就会发送到你的邮箱)

2.进入ECS控制台(点击阿里云主页的右上角控制台,再点左上角选择云服务器ECS)
进入你购买实例的控制台,找到配置信息一栏,找到公网IP

从零开始搭建frp内网穿透服务器进行mc/tr联机插图2
本服务器是我为了写教程专门开的演示服务器,所以未打码

3.打开本机的Xshell软件,点击“创建新会话”按钮

从零开始搭建frp内网穿透服务器进行mc/tr联机插图3

在弹出的对话框中填写公网IP,然后点击确定

从零开始搭建frp内网穿透服务器进行mc/tr联机插图4
从零开始搭建frp内网穿透服务器进行mc/tr联机插图5

第一次连接服务器会弹出这个安全警告,无需理会直接点击“接受并保存”

从零开始搭建frp内网穿透服务器进行mc/tr联机插图6

输入服务器用户名:root
可以勾选上记住用户名,下次就不用再输入

从零开始搭建frp内网穿透服务器进行mc/tr联机插图7

输入你设置的服务器密码
可勾选记住密码,下次就不用输入

从零开始搭建frp内网穿透服务器进行mc/tr联机插图8

点击确定后,出现“Welcome to Alibaba Cloud Elastic Computer Service”的欢迎语后,即已经连接上服务器
(若没有成功连接,检查密码是否输入正确,IP是否输入正确,再多试几次)

从零开始搭建frp内网穿透服务器进行mc/tr联机插图9

4.安装screen命令

连接服务器SSH(即使用Xshell连接服务器),输入以下命令安装screen,安装很快,秒装。

yum install screen

至此,服务器系统配置完成,开始配置frp


四、下载frp

GitHub项目链接:
https://github.com/fatedier/frp/releases
个人网盘链接:(如果GitHub下载的慢的话)
https://idk.ink/frp 密码:ChrisKim

下载下来的压缩包包含了服务端和客户端,需要下载对应操作系统的版本。如果你在Windows系统连接Linux服务器,那你就得把Linux版本和Windows版本都下载一遍了。

解压压缩包,里面frps.exe就是服务端(server),frps.ini就是服务端配置文件,frpc.exe就是客户端(client),frpc.ini就是客户端配置文件。

里面还有个frps_full.ini/frpc_full.ini,那个是完整配置文件,里面写了各种配置的用法,作为参考,不过我们的需求很简单,没必要整这么花里胡哨的东西。


五、配置frp服务端

本操作建议在自己电脑上配置好后再上传到服务器,更方便。

1.解压下载的linux版frp

从零开始搭建frp内网穿透服务器进行mc/tr联机插图10

2.用记事本打开frps.ini(frp服务端配置文件)

按以下方式配置(删除我的注释)

[common]
bind_port = 7000 #这个是客户端与服务端的通信端口,可保持默认 
dashboard_port = 7500 #这个是frp仪表盘的端口,可保持默认 
dashboard_user = xxx #这个是登录仪表盘的账号,自行设置 
dashboard_pwd = xxx #这个是登录仪表盘的密码,自行设置 
token = xxx #这个是客户端连接服务端的密码,自行设置

配置好后,保存frps.ini

从零开始搭建frp内网穿透服务器进行mc/tr联机插图11

至此,frps服务端配置完成,开始运行frp服务端


六、运行frp服务端

(一)、上传frp

1.打开Xshell软件,右键之前创建的服务器会话,选择“用Xftp打开”。我们通过Xftp软件上传文件到服务器。

从零开始搭建frp内网穿透服务器进行mc/tr联机插图12

2.然后就可以进入到Xftp的界面

从零开始搭建frp内网穿透服务器进行mc/tr联机插图13

3.进入/root目录(连接后默认为此目录)

4.在/root目录下新建文件夹(右键 -> 新建 -> 新建文件夹),输入文件夹名“frp”

从零开始搭建frp内网穿透服务器进行mc/tr联机插图14

5.双击进入frp文件夹

6.将frps服务端复制到服务器

框选本机的frps相关文件,直接拖动到服务器frp文件夹里就行

从零开始搭建frp内网穿透服务器进行mc/tr联机插图15

7.右键上传的frps文件,点击更改权限

从零开始搭建frp内网穿透服务器进行mc/tr联机插图16

勾选执行权限,点击确定

从零开始搭建frp内网穿透服务器进行mc/tr联机插图17

(二)、运行frp
(以后启动frp都是这个操作)

1.打开Xshell连接到你的服务器

2.输入以下命令,创建一个session(可以类比成Windows操作系统的窗口,这样就可以保持服务一直运行)

注意是大写“S”

screen -S frp

2.输入以下命令,定位到/root/frp目录

cd /root/frp

3.输入以下命令,启动frp

./frps -c frps.ini
从零开始搭建frp内网穿透服务器进行mc/tr联机插图18

若看到以下字样,frp就开启成功了!

下面附screen相关用法:

screen -S xxx #新建一个名为xxx的session 
按Ctrl + A + D #最小化进入的session 
screen -r xxx #回到名为xxx的session 
screen -D -r xxx #踢掉连接的前一用户,强制进入(若上一行的命令无法进入用这个) 
screen -list #列出当前已打开的session(list可简写为ls) 
screen -S xxx -X quit #关闭名为xxx的session

七、配置frp客户端

1.解压下载的Windows版frp

从零开始搭建frp内网穿透服务器进行mc/tr联机插图19

2.用记事本打开frpc.ini配置文件(请删除我的注释)

[common]
server_addr = xxx #在这里输入你的服务器公网IP
server_port = 7000 #这里是在服务端设置的bind_port
token = xxx #这里是你在服务端设置的客户端连接密码

[xxx] #自己随便起个名字
type = tcp #协议种类,我们要做的服务器都是tcp
local_ip = 127.0.0.1 #就填写这个
local_port = xxx #这两个端口都填你要内网穿透的端口
remote_port = xxx
#本段可以多次添加(名字不用重复),同时进行多个端口的内网穿透

下面给出几个示例(不包含[common]段,使用时请自己添加[common]段)

[mc] #Minecraft Java版示例配置
type = tcp
local_ip = 127.0.0.1
local_port = 25565
remote_port = 25565

[mcbe] #Minecraft 基岩版示例配置
type = tcp
local_ip = 127.0.0.1
local_port = 19132
remote_port = 19132

[tr] #Terraria 示例配置
type = tcp
local_ip = 127.0.0.1
local_port = 7777
remote_port = 7777

[mstsc] #远程桌面连接 示例配置
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 3389

配置完成后保存即可

从零开始搭建frp内网穿透服务器进行mc/tr联机插图20

至此,客户端配置完成,但现在还无法连接,因为还要放行防火墙。


八、放行防火墙

进入阿里云ECS控制台(之前复制公网IP的那里)

若是轻量应用服务器,进入轻量应用服务器的控制台,大同小异。

从零开始搭建frp内网穿透服务器进行mc/tr联机插图21
从零开始搭建frp内网穿透服务器进行mc/tr联机插图22
从零开始搭建frp内网穿透服务器进行mc/tr联机插图23
从零开始搭建frp内网穿透服务器进行mc/tr联机插图24

需要放行的是上文服务端设置的bind_port和dashboard_port,默认为7000和7500。还需放行客户端设置的对应端口,比如我需要搭建mc服务器和远程桌面连接,就要放行25565和3389端口。


九、运行frp客户端

1.打开你电脑上的frp客户端文件夹

2.新建一个文本文档

3.文件名随便,后缀改为.bat批处理文件。我改成了run.bat

4.右键run.bat选择编辑,打开记事本

5.输入以下命令

frpc -c frpc.ini

6.保存,双击运行run.bat

从零开始搭建frp内网穿透服务器进行mc/tr联机插图25

7.出现success即连接成功了

这时你本机的对应端口就可以在公网中直接访问了。比如你想在公网中访问你电脑上开启的Minecraft服务器,IP就填写你服务器的公网IP,端口就填写25565


十、配置相关游戏服务端

注:本教程重点是搭建frp内网穿透服务器,并没有详细的Minecraft、Terraria服务器配置内容,相关内容请自行百度学习。

Minecraft服务端配置要点就是将server.properties配置内的server-port设置为25565,server-ip留空。基岩版的端口就是19132。我的另一篇教程结尾也提到了点Minecraft服务器的配置方法,可参见:https://i.zht.xyz/464.html

Terraria服务端配置要点就是设置端口为7777。

总之,你服务端的端口要和frp中设置的相应端口相同。并且开启服务器时frp的控制台不能关闭,关闭了内网穿透就会断开。


十一、额外配置

如果你想要给你的服务器绑定一个域名,可以到阿里云购买一个域名,然后将域名解析到你服务器的公网IP即可。

从零开始搭建frp内网穿透服务器进行mc/tr联机插图26

这样你就能直接在游戏里填写服务器绑定的域名进入游戏了。

  • 本站所有文章,若没有特殊标记,均为原创,且使用 署名—非商业性使用—相同方式共享 4.0 协议(CC BY-NC-SA 4.0). 分享我的作品时,请遵守该协议内容。

    1. FFF说道:

      666太强了

    2. 沙盒梦想说道:

      要装什么linux版的系统呢……centos还是ubuntu

    3. 沙盒梦想说道:

      emmm怎么退出screen的操作界面,怎么关闭frp映射服务qwq

    4. TDDMK说道:

      大佬我客户端连接的时候出现这个错误,这是怎么回事呀 [W] [service.go:101] login to server failed: i/o deadline reached i/o deadline reached

    5. 沙盒梦想说道:

      忘了session名咋办…

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注