写在前面
2020快点过去吧。。。早起一看朋友圈都沸沸扬扬的…
接着上回映射端口联机超级鸡马的方式。利用SakuraFrp可以很方便快捷的实现将本地端口开放给公网IP从而让小伙伴通过该端口和你一起就像在本地一样玩耍。而这个公网IP是SakuraFrp提供给你的(忍不住再吹一波)那么如果你拥有属于自己的云服务器与公网IP,可不可以自己动手将本机的端口映射到自己的公网IP上呢?
本着折腾的原则,对frp这一神器再进行一点浅显的学习。
所需材料
- 云服务器。(需要公网IP)
- FRP。FRP (Fast Reverse Proxy) 是一个使用 Go 语言开发的高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务。FRP 支持 TCP、UDP、HTTP、HTTPS等协议类型,并且支持 Web 服务根据域名进行路由转发。功能强大,这里只学习简单的使用方法。
开始做菜!
因为此次使用的目的在于将本地游戏端口开放出去,实际上只是使用了FRP中最最基础的一部分简单功能。更多强大功能日后再慢慢学习吧
分别安装服务器端与客户端FRP
我的电脑作为客户端是windows系统,服务端云服务器是Ubuntu16.04。各位使用的时候依自己的使用情况选择响应版本
服务端
Linux下如果不确定自己云服务器版本内核信息可以通过以下命令查看
lsb_release -a
在frp版本页找到服务器对应版本进行下载
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
下载并解压后,目录下应该有8个文件,作为服务端,我们重点研究看frps frps.ini frps_full.ini三个。
编辑frps.ini
[common]
bind_addr = 0.0.0.0
bind_port = 7000
bind_udp_port = 7001
token = DNMD
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
其中
token用于服务端与客户端之间进行验证,自设
dashboard_port开放该端口供我们网页上直观观察工作情况,可以不开,不需要的话最后四行都不需要。
dashboard_user/dashboard_pwd作为该页面的登录身份验证凭证。
我们这里只研究了一些端口的开放
frps.ini中还可以添加更多配置,格式可以在frps_full.ini中查看。
利用虚拟屏幕后台运行服务端
配置完成后,通过虚拟屏幕screen将其在后台开启(效果类似nohup,都是为了让服务在后太运行,即使退出shell工具也不会受影响)
screen -S frp
创建名为frp的屏幕并进入
./frps -c frps.ini
此时在frp窗口下启动了frp服务端服务,按下Ctrl+a+d退出该屏幕。
查看各屏幕运作情况
screen -ls
可以看到此时frp窗口属于“Detached”说明该屏幕已转入后台了,并且可以看到其进程号
重新进入已挂起的后台屏幕
screen -r frp
关闭/杀死不需要的屏幕
用kill+进程号就可
检查服务端是否启动(需要配置时开启dashboard)
登录你的公网IP:dashboard_port
如123.123.23.23:7500
如果需要登录就登录看看,如果打得开该页面则说明服务端已经成功启动了。
客户端
windows系统则下载对应版本
其配置过程类似服务端,如果服务端成功启动的话那么客户端就更好理解了。
这里以之前启动超级鸡马联机端口为例
编辑frpc.ini(frpc,c对应Client)
[common]
server_addr = 你的公网IP
server_port = 7000
token = DNMD
dns_server = 114.114.114.114
[UltimateChickenHorse]
type = udp
local_ip = 127.0.0.1
local_port = 17778
remote_port = 6789
use_encryption = 0
use_compression = 0
server_port与服务端配置相同,取默认7000就可。
token需要与服务端一致,毕竟是验证的凭证
启动服务名称[UltimateChickenHorse]
协议为udp
本地端口 17778 映射到 远程端口 6789
服务器的6789未必对外开放,最好再安全规则那里配置一下开放包含要用远程端口的安全组
这里我开放了多个端口,具体几个自己看吧,要包含你需要用到的就行。
最后启动客户端
windows下进入cmd
我的Frp文件位于D盘下名为FRP的文件夹内
因此cmd中
首先进入D盘 ,进入FRP文件夹,启动客户端
:D
cd FRP
frpc.exe -c frpc.ini
windows下命令行与linux不太一样。。具体上网查询吧
看到启动端口开放成功提示就好啦,此时端口已经成功映射到云服务器了
最后检查一下
一点弯路
- 服务器上下载frp版本一定要选对!!!本人整的时候是晚上12点多了,,脑袋犯浑MD装的版本完全不对,每次启动都是无响应,有点怀疑人生。。。看来以后出了问题第一时间不应该怀疑机器出问题而是先反思自己。。。
- 也是第一次使用screen,以为自己是在层层嵌套的窗口中(以为陷入套娃陷阱把自己搞蒙了)用着用着把自己绕进去了,渐渐迷失自我。。已经是搞不清自己是在第几层了,在自我怀疑中耗去1h。。
- 多数游戏联机走的是udp。第一次使用一直没考虑到这点,写的TCP…
windows查看本地端口占用情况的一个小方法:
首先确保该端口(17778)正被占用;