warning 文章废弃
因本文已有更优秀的重制版,因此本文废弃。重制版见下。
这是我的第二篇“从零开始”教程,前一篇搭建Minecraft服务器教程转发到BiliBili后反响还不错,真有许多大佬们根据我的教程成功搭建了服务器,这让我也信心百倍。毕竟教程真的帮助到了别人,我也非常的高兴。
这一篇又提到了mc服务器的搭建,是因为使用ECS搭建mc服务器一是配置价格贵,要高配的话每月高达百元。二是服务器的搭建有点复杂。于是我给出了替代方案——使用frp内网穿透,在本机搭建服务器映射到外网,让好基友们可以连接。
本篇文章将会提到利用frp搭建Minecraft/Terraria服务器。注:本教程重点是搭建frp内网穿透服务器,并没有详细的Minecraft、Terraria服务器配置内容,相关内容请自行百度学习。
原理解释
当今IPv4资源紧缺,IP地址不足以全球所有计算机人手一个,于是运营商将一个地区的用户包含到一个“局域网”里,这个地区的用户拥有的IP是这个“局域网”的内网IP,公网上的用户是无法直接访问到你这个内网IP的,所以你的电脑上搭建的我的世界/泰拉瑞亚服务器,你的好朋友是无法连接的。
而我们可以借助租用的拥有公网IP的云服务器,在其上搭建frp内网穿透,这样我们本机搭建的mc服务器(以mc为例,也可以搭建tr服务器),就可以利用frp服务器作为一个“中转站”。好朋友连接frp服务器,就可以通过中转连接到我们的电脑。
我制作了个简化的原理图,让大家更好理解。(我没有专业的网络知识,只是有点兴趣罢了,如果有错误请谅解)
购买云服务器
本教程使用阿里云ECS搭建,若你有更实惠的云服务器,你也可以自行购买。
注:使用大陆服务器搭建非http服务的服务器无需ICP备案,可放心使用大陆服务器。
1.进入阿里云官网。https://www.aliyun.com/
2.注册账号并登陆。
3.点击“产品分类”->“云服务器 ECS”->“立即购买”进入购买页面
4.推荐我的配置选择,没提到的东西选择默认选项
frp一点也不吃配置,并且我搭建的服务器是最简单的版本,最多就五六个连接,连接也没有进行压缩,所以更不需要什么配置。我推荐先买最低配的服务器,如果满足不了你再升级。我购置的服务器就是阿里云最便宜的服务器,配置非常足够。
选择一
基本适合任何带宽需求,可进行Minecraft联机。但是流量需付费。(总价:11.5元/月 流量:0.8元/GB)
- 付费模式:包年包月
- 地域及可用区:华北3(张家口)
(在本教程撰写时,本地域最便宜) - 实例:
- 分类选择共享型
- 点击参考价格列旁的▲符号,将列表价格按从低到高排序。
- 选择最便宜那款(应该是ecs.t6-c4m1.large ¥ 5.9 /月)
- 镜像:CentOS 7.3 64位
- 储存:下调到20G
(40G根本用不上) - 点击“下一步:网络和安全组”
- 带宽计费模式:按使用流量 0.8元/GB
- 带宽值:拉满80Mbps(按量付费不同带宽值价格统一)
- 点击“下一步:系统配置”
- 登录凭证:自定义密码(自行设置一个强度够高的密码)
- 直接点击“确认订单”,检查配置是否选择正确,选择购买的时长,购买付款即可。
选择二
(限12~24岁用户)适合带宽需求小的服务,如Terraria或远程桌面连接。带宽只有5Mbps但是无需额外付费(总价:9.5元/月)
- 在阿里云官网找到阿里云学生机:链接
- 选择轻量应用服务器 学生专享
- 点击立即购买
- 地域:随意,如果有个地域无货就换另一个
- 镜像类型:系统镜像 -> CentOS 7.3 ->
- 数据盘:0GB 无需数据盘
- 购买时长:随意
(本教程全部以ECS版本为例,若购买的为学生机轻量应用服务器,请进入轻量应用服务器控制台,操作大同小异,只是菜单位置有区别罢了)
连接并配置云服务器
(本节借用了我上一篇教程的文字和图片,因为操作一模一样没有区别)
1.下载Xshell和Xftp
官方家庭/学校免费版获取链接:链接(填写正确邮箱,选择两者,提交。两封包含下载链接的邮件就会发送到你的邮箱)
2.进入ECS控制台(点击阿里云主页的右上角控制台,再点左上角选择云服务器ECS)
进入你购买实例的控制台,找到配置信息一栏,找到公网IP
3.打开本机的Xshell软件,点击“创建新会话”按钮
在弹出的对话框中填写公网IP,然后点击确定
第一次连接服务器会弹出这个安全警告,无需理会直接点击“接受并保存”
输入服务器用户名:root
可以勾选上记住用户名,下次就不用再输入
输入你设置的服务器密码
可勾选记住密码,下次就不用输入
点击确定后,出现“Welcome to Alibaba Cloud Elastic Computer Service”的欢迎语后,即已经连接上服务器
(若没有成功连接,检查密码是否输入正确,IP是否输入正确,再多试几次)
4.安装screen命令
连接服务器SSH(即使用Xshell连接服务器),输入以下命令安装screen,安装很快,秒装。
yum install screen
至此,服务器系统配置完成,开始配置frp
下载frp
下载下来的压缩包包含了服务端和客户端,需要下载对应操作系统的版本。如果你在Windows系统连接Linux服务器,那你就得把Linux版本和Windows版本都下载一遍了。
解压压缩包,里面frps.exe就是服务端(server),frps.ini就是服务端配置文件,frpc.exe就是客户端(client),frpc.ini就是客户端配置文件。
里面还有个frps_full.ini/frpc_full.ini,那个是完整配置文件,里面写了各种配置的用法,作为参考,不过我们的需求很简单,没必要整这么花里胡哨的东西。
配置frp服务端
本操作建议在自己电脑上配置好后再上传到服务器,更方便。
1.解压下载的linux版frp
2.用记事本打开frps.ini(frp服务端配置文件)
按以下方式配置(删除我的注释)
[common] bind_port = 7000 #这个是客户端与服务端的通信端口,可保持默认 dashboard_port = 7500 #这个是frp仪表盘的端口,可保持默认 dashboard_user = xxx #这个是登录仪表盘的账号,自行设置 dashboard_pwd = xxx #这个是登录仪表盘的密码,自行设置 token = xxx #这个是客户端连接服务端的密码,自行设置
配置好后,保存frps.ini
至此,frps服务端配置完成,开始运行frp服务端
运行frp服务端
上传frp
1.打开Xshell软件,右键之前创建的服务器会话,选择“用Xftp打开”。我们通过Xftp软件上传文件到服务器。
2.然后就可以进入到Xftp的界面
3.进入/root目录(连接后默认为此目录)
4.在/root目录下新建文件夹(右键 -> 新建 -> 新建文件夹),输入文件夹名“frp”
5.双击进入frp文件夹
6.将frps服务端复制到服务器
框选本机的frps相关文件,直接拖动到服务器frp文件夹里就行
7.右键上传的frps文件,点击更改权限
勾选执行权限,点击确定
运行frp
(以后启动frp都是这个操作)
1.打开Xshell连接到你的服务器
2.输入以下命令,创建一个session(可以类比成Windows操作系统的窗口,这样就可以保持服务一直运行)
注意是大写“S”
screen -S frp
2.输入以下命令,定位到/root/frp目录
cd /root/frp
3.输入以下命令,启动frp
./frps -c frps.ini
若看到以下字样,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
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
配置完成后保存即可
至此,客户端配置完成,但现在还无法连接,因为还要放行防火墙。
放行防火墙
进入阿里云ECS控制台(之前复制公网IP的那里)
若是轻量应用服务器,进入轻量应用服务器的控制台,大同小异。

需要放行的是上文服务端设置的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
7.出现success即连接成功了
这时你本机的对应端口就可以在公网中直接访问了。比如你想在公网中访问你电脑上开启的Minecraft服务器,IP就填写你服务器的公网IP,端口就填写25565
配置相关游戏服务端
注:本教程重点是搭建frp内网穿透服务器,并没有详细的Minecraft、Terraria服务器配置内容,相关内容请自行百度学习。
Minecraft服务端配置要点就是将server.properties配置内的server-port设置为25565,server-ip留空。基岩版的端口就是19132。我的另一篇教程结尾也提到了点Minecraft服务器的配置方法,可参见:
Terraria服务端配置要点就是设置端口为7777。
总之,你服务端的端口要和frp中设置的相应端口相同。并且开启服务器时frp的控制台不能关闭,关闭了内网穿透就会断开。
额外配置
如果你想要给你的服务器绑定一个域名,可以到阿里云购买一个域名,然后将域名解析到你服务器的公网IP即可。
这样你就能直接在游戏里填写服务器绑定的域名进入游戏了。