1、一台具有公网IP的服务器(阿里云,腾讯云等均可) 2、frp,需要注意客户端版本应与服务器器端版本相同 3、目标客户机(被穿透计算机)
下载frp (选择适合版本) frp下载地址 https://github.com/fatedier/frp/releases
解压命令
把解压出来的文件夹复制到你想要的目录下,为了方便我直接放在用户目录下了,进入该目录
查看一下文件
我们只需要关注如下几个文件
前两个文件(s结尾代表server)分别是服务端程序和服务端配置文件,后两个文件(c结尾代表client)分别是客户端程序和客户端配置文件。 因为我们正在配置服务端,可以删除客户端的两个文件
然后修改frps.ini文件
这个文件应有如下格式
- “bind_port” 表示用于客户端和服务端连接的端口,这个端口号我们之后在配置客户端的时候要用到。
- “dashboard_port”是服务端仪表板的端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500其中x.x.x.x为VPS的IP)查看frp服务运行信息。
- “token”是用于客户端和服务端连接的口令,请自行设置并记录,稍后会用到。
- “dashboard_user”和“dashboard_pwd”表示打开仪表板页面登录的用户名和密码,自行设置即可。
- “vhost_http_port”和“vhost_https_port”用于反向代理HTTP主机时使用。
编辑完成后保存(按ESC建,在底部输入 即可)。 之后我们就可以运行frps的服务端了
我们的服务端仅运行在前台,如果Ctrl+C停止或者关闭SSH窗口后,frps均会停止运行,因而我们使用 nohup命令将其运行在后台。
输出如下内容即表示正常运行
此时可先使用Ctrl+C关闭nohup,frps依然会在后台运行,使用jobs命令查看后台运行的程序
在结果中我们可以看到frps正在后台正常运行
此时访问 x.x.x.x:7500 依然可以打开仪表板界面,至此,服务端即设置完成,你可以关闭SSH窗口了。 (或者使用PM2守护进程,需要先安装node.js)
frp的客户端就是我们想要真正进行访问的那台设备,大多数情况下应该会是一台Windows主机,我们以windows为例;Linux配置方法类似。 同样地,根据客户端设备的情况选择相应的frp程序进行下载。 frp下载地址 https://github.com/fatedier/frp/releases 将其解压在了C盘根目录下,并且将文件夹重命名为“frp”,可以删除其中的frps和frps.ini文件。 用文本编辑器打开frpc.ini,与服务端类似,内容如下
注:注释在配置完成后删除。
其中common字段下的三项即为服务端的设置。
- server_addr 为服务端IP地址,填入即可。
- server_port 为服务器端口,填入你设置的端口号即可,如果未改变就是7000
- token 是你在服务器上设置的连接口令,原样填入即可。
frp实际使用时,会按照端口号进行对应的转发,原理如下图所示。 上面frpc.ini的rdp、smb字段都是自己定义的规则,自定义端口对应时格式如下。
-
**[xxx]**表示一个规则名称,自己定义,便于查询即可。
-
type表示转发的协议类型,有TCP和UDP等选项可以选择,如有需要请自行查询frp手册。
-
local_port是本地应用的端口号,按照实际应用工作在本机的端口号填写即可。
-
remote_port是该条规则在服务端开放的端口号,自己填写并记录即可。
RDP, 即Remote Desktop 远程桌面,Windows的RDP默认端口是3389,协议为TCP,建议使用frp远程连接前,在局域网中测试好,能够成功连接后再使用frp穿透连接。 SMB, 即Windows文件共享所使用的协议, 默认端口号445,协议TCP,本条规则可实现远程文件访问。 配置完成frpc.ini后,就可以运行frpc了
使用命令提示符或Powershell进入该目录下
并执行
运行frpc程序,窗口中输出如下内容表示运行正常。
frpc运行时始终有一个命令行窗口运行在前台,影响美观,我们可以使用一个批处理文件来将其运行在后台,而且可以双击执行,每次打开frpc不用再自己输命令了。 在任何一个目录下新建一个文本文件并将其重命名为“”,编辑,粘贴如下内容并保存。
之后直接运行这个 .bat 文件即可启动frpc并隐藏窗口(可在任务管理器中退出)。 开机启动,把这个 .bat 文件放到Windows的开机启动文件夹就好了。
minsw注册为自动的服务(此种方式是带守护进程功能的)
下载 winsw,选择 WinSW.NET4.exe,将它改名为 frpcrun.exe https://github.com/winsw/winsw/releases
创建 xml 配置文件,名字叫 frpcrun.xml
将这2个文件放到同一目录, 然后执行 即可 ,如果需要卸载服务执行
可以根据需要在frpc.ini后追加规则即如果配置多个客户端注意frpc.ini中的连接名不能相同,不能用同样的配置文件,否者会出现冲突。