文章目录

    • 前言
  • 一、frp是什么?
    • frp+公网主机,能做什么?
  • 二、服务器上的配置
    • 1.下载frp程序
    • 2.解压文件
    • 3.编辑服务端配置文件
    • 4.运行服务端程序
    • 5.查看frp服务端运行情况
    • 6.防火墙设置
      • 操作系统防火墙设置
        • 入站规则添加
        • 出站规则添加
      • 服务器控制台防火墙设置
  • 三、客户端上的配置
    • 1.编辑配置文件
    • 2.运行客户端程序
  • 其它设置
    • 域名解析到映射到服务器
    • 用bat批处理文件启动服务端/客户端
    • 设置开机启动

前言

当你开启一个《我的世界》服务器,兴致勃勃地准备给朋友发送你服务器的地址时,却想起:你没有公网!!!
这时,你又想起了很久前在腾讯云上买来吃灰的服务器。

1200GB/月的流量包,8Mbps的带宽,公网IP。当你又看了看它的4核CPU和4GB内存,再看了看运行在你台式机上,快要被《我的世界》服务程序挤爆的8GB内存(此处应用夸张修辞,表达该服务程序只应该运行在你的本地主机上),放弃了把服务程序运行在服务器上的想法。

为了解决没有本地公网 IP 的难题,当你正好又有闲置的公网服务器时,端口映射就显得重要,frp便是不错的选择。

一、frp是什么?

frp是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议。

frp+公网主机,能做什么?

穿后台、建网站、做调试、开游戏……

比如:你可以直接用微软官方远程桌面,连接你处于内网的电脑主机

二、服务器上的配置

1.下载frp程序

github链接:https://github.com/fatedier/frp/releases


一般选最新的版本下载


选择对应自己的版本,下载。

386和amd64的区别?你可以简单地理解:
386——32位操作系统
amd64——64位操作系统

我的服务器系统是Windows Server 2019,本地主机是Windows10,都是64位的系统,所以选择下载amd64的版本。

小tip:github下载速度很慢,可以选择使用Git国内镜像或者IDM等下载器下载

2.解压文件


解压文件后,你得到了这样一堆文件:
frpc.exe、frpc.ini、frpc_full.ini,都是客户端的文件。
c的含义——client(客户)

frps.exe、frps.ini、frps_full.ini,都是服务端的文件。
s的含义——server(服务)

3.编辑服务端配置文件

打开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后进行下一步。

4.运行服务端程序

双击frps.exe程序,出现如图提示,意思是你不能用这种方式来打开它,你需要用cmd来运行。
(错误示范)

正确的打开方式是(其中之一):

打开C:\Windows\System32,找到cmd.exe文件,将frps.exe拖动置cmd.exe上


输入以下命令,回车

.\frps.exe -c frps.ini

如果防火墙提示,点击允许此程序运行。

此时frp服务端程序就已经在运行了,在它的同一目录下会生成一个叫做frps.log的文本文档,打开就可以看到frp服务端程序的运行日志;任务管理器的详细信息中也出现了frps.exe的进程。

5.查看frp服务端运行情况

打开服务器上的浏览器,在浏览器中输入:

你的内网ip:7500

在弹出的提示框中输入前面填写的状态面板的账号和密码


如果出现如图界面,就说明你的服务端配置正确。

6.防火墙设置

防火墙开放后具有一定风险,建议先跳过此步,若最终能成功运行,就不要对防火墙做任何处理

操作系统防火墙设置


搜索Windows Defender 防火墙,运行。

选择高级设置

入站规则添加


选择入站规则,选择新建规则

选择程序,下一步

选择此程序路径(T),浏览(R),选择frps.exe文件,下一步

允许安全连接,下一步

全部勾选,下一步

填写名称(随意,比如frp入站)

出站规则添加


与入站规则添加相同。

服务器控制台防火墙设置

登陆你的服务器控制台,这里以腾讯云为例

选择添加规则

在应用类型中选择全部TCP,点击确定

三、客户端上的配置

1.编辑配置文件

打开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后进行下一步。

2.运行客户端程序

打开方式与服务端相同,出现以下提示(句子中有“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地址即可。

用bat批处理文件启动服务端/客户端


在与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

*完结

frp服务端和客户端的配置和使用(超详细)相关推荐

  1. NFS服务端和客户端的配置

    NFS(NFS介绍,NFS服务端和客户端配置) 一.NFS服务介绍 NFS是 Network File system的缩写 分为2.3.4三个版本,2和3由sun公司起草开发,4.0开始netapp公 ...

  2. 网络启动安装linux客户机nfs设置,NFS服务端和客户端安装配置

    一  NFS介绍 NFS用的比较多,但是更新没有想象的那么快,Nginx一年要迭代很多个版本,而NFS最新版本4.1是2010年更新的,到目前为止还没有更新过,但这并不影响NFS使用的广泛性 RPC协 ...

  3. SVN服务端、客户端安装配置和填坑

    一.svn服务端和客户端安装: 1.安装程序: 服务端程序:Setup-Subversion-1.8.17.msi 客户端程序:TortoiseSVN-1.9.7.27907-x64-svn-1.9. ...

  4. 服务端/web+客户端模式配置

    转载地址:https://blog.51cto.com/mailfile/1762515 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统 ...

  5. oracle11g服务端配置实例,Win7系统Oracle11g服务端和客户端连接数据库配置

    A连接本地数据库 1)服务端配置 创建一个监听程序 a)开始-Oracle-OraDb11g_home1-配置和移植工具-Net Manager. b)选中"监听程序",点击&qu ...

  6. ntp服务器linux(服务端和客户端)配置

    1.介绍ntp服务 NTP属于运用层协议(依据UDP传输,运用的端口号为123),用来同步网络中分布式时间服务器和客户端之间的时间,使网络中的设备供应依据一起时间的运用成为可能. 时间服务器和客户端是 ...

  7. 在laravel5.8中集成swoole组件----用协程实现的服务端和客户端(nginx配置篇章)

    laravel项目中的配置  原文出处:https://laravelacademy.org/post/19700.html,感谢原文作者让laravel这款可爱的php框架,进入了高并发的殿堂 如果 ...

  8. (SVN笔记)SVN服务端+SVN客户端Tortoise——安装配置

    目录 1.前言 2.官网下载SVN服务端1.14.1 3.安装SVN服务端Server 4.官网下载SVN客户端Tortoise4.3.4 5.安装Tortoise 6.验证Tortoise安装 7. ...

  9. 华为路由器配置NTP服务端和客户端

    华为路由器配置NTP服务端和客户端 基础配置 R1: <Huawei>sys-view #进入系统配置模式 Enter system view, return user view with ...

最新文章

  1. 【跟着我们学Golang】之面向对象
  2. 《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——02-08项目人力资源(Human Resource)管理...
  3. bdm导入mysql_vs 2010下使用水晶报表Crystal Reports
  4. MESI协议为何会引发 有序性、可见性的问题
  5. 尝鲜Ubuntu Server 12.04 LTS
  6. linux相关(find/grep/awk/sed/rpm)
  7. Qt工作笔记-QTreeWidget中调用setHeaderItem设置头后,不能addChild
  8. 快速了解Linux curl命令
  9. Backup--BUFFERSIZE 和BUFFERCOUNT
  10. uv422转换为yuv420_利用libswscale转换yuyv422到yuv422p或rgb之间的转换, 视频翻转
  11. java setvalue函数,Java JavaTuples setValue()用法及代码示例
  12. 未来无生经超级计算机,最强崩坏系统
  13. mysql数据文件后缀名_数据文件的后缀名_MySQL
  14. 半导体存储器件原理概述
  15. 微信中H5通过uin_base64链接跳转公众号关注页面,关注按钮闪一下消失?
  16. 极客星球 | 图像技术在上亿规模实拍图片中的应用
  17. 原始资料的收集方法———定性资料的收集
  18. 大学——留德的路01
  19. reference_line_provider
  20. ES学习笔记十-数据建模

热门文章

  1. 解决之道:从互联网安全到IoT安全,如何关上潘多拉魔盒?
  2. android 加固服务器,Python 脚本构建Android APK 自动加固、打渠道包并上传服务器
  3. 抖音程序员HTML相册,快手抖音程序员表白女朋友3D立体相册源码html网页相册代码...
  4. java cup_JavaCUP
  5. gcc/g++ -O 优化选项说明
  6. WPS表格操作自动换行怎么设置?
  7. 物联网计算机高铁工作,说说物联网在铁路当中的应用前景
  8. springboot 7天签到功能设计 数据库表设计 加代码
  9. W3school~SQL教程
  10. 专题地图怎么做,怎么打印地图?