赞
踩
当你开启一个《我的世界》服务器,兴致勃勃地准备给朋友发送你服务器的地址时,却想起:你没有公网!!!
这时,你又想起了很久前在腾讯云上买来吃灰的服务器。
1200GB/月的流量包,8Mbps的带宽,公网IP。当你又看了看它的4核CPU和4GB内存,再看了看运行在你台式机上,快要被《我的世界》服务程序挤爆的8GB内存(此处应用夸张修辞,表达该服务程序只应该运行在你的本地主机上),放弃了把服务程序运行在服务器上的想法。
为了解决没有本地公网 IP 的难题,当你正好又有闲置的公网服务器时,端口映射就显得重要,frp便是不错的选择。
frp是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议。
穿后台、建网站、做调试、开游戏……
比如:你可以直接用微软官方远程桌面,连接你处于内网的电脑主机
github链接:https://github.com/fatedier/frp/releases
一般选最新的版本下载
选择对应自己的版本,下载。
386和amd64的区别?你可以简单地理解:
386——32位操作系统
amd64——64位操作系统
我的服务器系统是Windows Server 2019,本地主机是Windows10,都是64位的系统,所以选择下载amd64的版本。
小tip:github下载速度很慢,可以选择使用Git国内镜像或者IDM等下载器下载
解压文件后,你得到了这样一堆文件:
frpc.exe、frpc.ini、frpc_full.ini,都是客户端的文件。
c的含义——client(客户)
frps.exe、frps.ini、frps_full.ini,都是服务端的文件。
s的含义——server(服务)
打开frps.ini文件,你只能得到:
[common]
bind_port = 7000
登陆你的公网服务器控制台,查看网络信息
为保证服务端程序能正常运行,你需要在frps.ini文件中添加这些内容:
[common] bind_addr = x.x.x.x ---填写服务器的内网IP,用于客户端程序的连接 bind_port = 7000 ---你希望此frp程序从哪个端口开放,用于客户端程序的连接 kcp_bind_port = 7000 vhost_https_port = 7001 dashboard_addr = x.x.x.x ---填写服务器的内网IP,用于查看frp服务运行监控面板 dashboard_port = 7500 ---填写端口号,用于连接frp服务运行监控面板的端口 dashboard_user = admin ---监控面板的管理账号 dashboard_pwd = admin ---监控面板的管理密码 log_file = ./frps.log ---日志保存位置 log_level = info log_max_days = 3 ---日志最长清除时间,一般3天 authentication_timeout = 900 token=12345678 --访问密钥,服务端和客户端一定要保持一致(否则会导致连接失败) allow_ports = 2000-3000,3001,3003,4000-50000,3362 ---允许客户端程序映射到服务器的端口,按照自己需要填写,可以是区间,也可以是单个端口,用逗号隔开 max_pool_count = 50 ---最大连接数 max_ports_per_client = 0
纯净版:
[common] bind_addr = (此处需要根据自身填写) bind_port = 7000 kcp_bind_port = 7000 vhost_https_port = 7001 dashboard_addr = (此处需要根据自身填写) dashboard_port = 7500 dashboard_user = admin dashboard_pwd = admin log_file = ./frps.log log_level = info log_max_days = 3 authentication_timeout = 900 token = 12345678 allow_ports = 2000-3000,3001,3003,4000-50000,3362 max_pool_count = 50 max_ports_per_client = 0
你也可以打开frps.ini对应的frps_full.ini文件,里面对各种配置信息有着详细的解释,可以根据自己实际需要去添加到frps.ini文件中。保存frps.ini后进行下一步。
双击frps.exe程序,出现如图提示,意思是你不能用这种方式来打开它,你需要用cmd来运行。
(错误示范)
正确的打开方式是(其中之一):
打开C:\Windows\System32,找到cmd.exe文件,将frps.exe拖动置cmd.exe上
输入以下命令,回车
.\frps.exe -c frps.ini
如果防火墙提示,点击允许此程序运行。
此时frp服务端程序就已经在运行了,在它的同一目录下会生成一个叫做frps.log的文本文档,打开就可以看到frp服务端程序的运行日志;任务管理器的详细信息中也出现了frps.exe的进程。
打开服务器上的浏览器,在浏览器中输入:
你的内网ip:7500
在弹出的提示框中输入前面填写的状态面板的账号和密码
如果出现如图界面,就说明你的服务端配置正确。
防火墙开放后具有一定风险,建议先跳过此步,若最终能成功运行,就不要对防火墙做任何处理
搜索Windows Defender 防火墙,运行。
选择高级设置
选择入站规则,选择新建规则
选择程序,下一步
选择此程序路径(T),浏览(R),选择frps.exe文件,下一步
允许安全连接,下一步
全部勾选,下一步
填写名称(随意,比如frp入站)
与入站规则添加相同。
登陆你的服务器控制台,这里以腾讯云为例
选择添加规则
在应用类型中选择全部TCP,点击确定
打开frpc.ini,你会看到以下内容:
[common] --基础设置
server_addr = x.x.x.x --此处填写你服务器的公网IP
server_port = 7000 --此处填写你服务器上frp服务端设定的端口,默认7000
[ssh] --此处填写你需要添加的映射的名称(自定义,123、qwe之类的都可以)
type = tcp --此处填写该映射的协议类型
local_ip = 127.0.0.1 --本地IP,不做任何更改
local_port = 22 --需要映射的本地IP
remote_port = 6000 --需要映射到服务器的IP,注意不得与服务器上的端口重复
但就上面的内容,是不能正常运行的,还需要填写其它内容。
示例:
[common] server_addr = x.x.x.x --此处填写你服务器的公网IP server_port = 7000 --此处填写你服务器上frp服务端设定的端口,默认7000 privilege_token = 12345678 --此处填写你服务端设定的密钥 token = 12345678 --此处填写你服务端设定的密钥 login_fail_exit = false --此处填写false表示连接服务器失败后 自动重连而不是退出,建议添加 [Minecraft] --例如,我想映射《我的世界》服务端,这里填写映射的名称)其他的也可以 type = tcp --《我的世界》服务端采用tcp协议,所以填写tcp local_ip = 127.0.0.1 --这里不做任何改变 local_port = 25565 --《我的世界》服务端默认端口是25565 remote_port = 25565 --映射到服务器上的端口 custom_domains = tonesc.xyz --这里填写需要解析到此映射的域名 [control] --例如,我想映射本地实体计算机的远程端口,这里填写映射的名称)其他的也可以 type = tcp --windows系统 远程桌面程序的协议是tcp local_ip = 127.0.0.1 --这里不做任何改变 local_port = 3389 --windows系统 远程桌面的端口是3389 remote_port = 20990 --服务器上的系统也是Windows,远程桌面端口同为3389,所以随意填写一个 custom_domains = tonesc.xyz --这里填写需要解析到此映射的域名
纯净版:
[common] server_addr = (此处填写你服务器上的公网IP) server_port = 7000 privilege_token = 123123 token = 123123 login_fail_exit = false [Minecraft] type = tcp local_ip = 127.0.0.1 local_port = 25565 remote_port = 25565 custom_domains = tonesc.xyz [control] type = tcp local_ip = 127.0.0.1 local_port = 3389 remote_port = 20990 custom_domains = tonesc.xyz
同样的,你也可以打开frpc.ini对应的frpc_full.ini文件,里面对各种配置信息有着详细的解释,可以根据自己实际需要去添加到frpc.ini文件中。保存frpc.ini后进行下一步。
打开方式与服务端相同,出现以下提示(句子中有“success”),就说明该映射已经在正常运行了。
2022/03/19 18:59:53 [I] [service.go:325] [XXXXX] login to server success, get run id [3d9a1f0a6250b27], server udp port [0]
2022/03/19 18:59:53 [I] [proxy_manager.go:144] [XXXXX] proxy added: [Minecraft control]
2022/03/19 18:59:53 [I] [control.go:181] [XXXXX] [Minecraft] start proxy success
2022/03/19 18:59:53 [I] [control.go:181] [XXXXX] [control] start proxy success
至此,frp程序服务端和客户端的配置就完成了!
首先我们应该明白,映射是将你处在内网的实体主机上运行的程序端口,映射到你的服务器上,所以想要访问处在内网的实体主机上的程序,就是直接访问服务器上的映射到的相应端口。
例如:
实体主机的操作系统:Windows
实体主机的远程桌面端口:3389
实体主机的IP地址:不需要
服务器的操作系统:Windows
映射到服务器上的相应端口:20990(假设)
服务器的IP地址:123.123.123.123(假设)
映射正常运行,需要远程桌面连接实体主机,则在其它设备的远程桌面程序中输入:
123.123.123.123:20990 --服务器的IP:映射到服务器上的端口
如果需要正常访问服务器的远程桌面程序,则在其它设备的远程桌面程序中输入(二选一):
123.123.123.123:3389 --服务器的IP:服务器自身的远程桌面端口
123.123.123.123 --服务器的IP
因此,需要解析域名到映射程序上时,只需解析域名到服务器的IP地址即可。
在与frp程序的同一目录下,创建一个bat文件,名称随意
运行客户端程序,则在bat文件中输入以下内容:
@echo off
:home
frpc -c frpc.ini
goto home
运行服务端程序,则在bat文件中输入以下内容:
@echo off
:home
frps -c frps.ini
goto home
保存,双击运行bat,即可快速打开frp服务。
为上一步中创建的bat文件创建快捷方式,将其快捷方式移动到以下目录:
C:\Users\你的用户名称\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
*完结
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。