前言
frp这个工具,它的优点就是完全开源免费,自定义配置,可端口映射,可实现windows远程(类似Team Viewer );缺点是不提供服务,也就是说我们需要自己买个服务器开公网IP在上面搭建。
如果没有米的话,推荐使用
- 花生壳
- nat123
- ngrok
这几个工具都算是挺好用的,都有免费版,能绑定一个应用,端口号还是随机的。临时玩玩是可以的。
接下来就说重点 FRP(Fast Reverse Proxy)
目录
1. 准备
frp工具下载
2. 服务器配置
3. 端口转发
4. WEB服务(windows 远程桌面,可不用此项)
一、 文件下载:
frp是托管在Github上的开源项目,直接到Release页面下载即可,链接如下:
https://github.com/fatedier/frp/releases
我用的是Linux 服务器,本地用的windows系统。下载了:_linux_amd64.tar.gz、windows_amd64.zip
大家依据自己的系统下载对应文件安装。
二、服务端配置
下载后打开文件均有如下类似的目录:
首先我们看看如何配置frp的服务端。服务端配置比较简单,如果不使用高级功能的话,只需要两三行就可以了。
# frps.ini [common] bind_port = 7000 token = 123456
bind_port是服务端与客户端之间通信使用的端口号,默认就可以。token用于验证连接,只有服务端和客户端token相同的时候才能正常访问。如果不使用token,那么所有人都可以直接连接上,所以我建议大家在使用的时候还是把token加上。
配置完毕后就可以启动服务端了,启动命令也很简单:
frps -c frps.ini # linux 后台启动 nohup ./frps -c frps.ini &
三、端口转发
下面来看看客户端配置,frp可以实现很多常用功能,都是在客户端配置文件中完成配置。首先来看看最基本的端口转发配置。
# frpc.ini [common]
# 公网服务器的IP server_addr = x.x.x.x server_port = 7000 token = 123456 [ssh] type = tcp local_ip = 127.0.0.1
# 3389 是Windows 默认的远程端口 local_port = 3389 remote_port = 6000
首先是common下的配置项,需要和服务端配置文件相同。然后是ssh下的配置,type是连接类型,大部分应用都是tcp协议的,所以这里就写tcp就好;local_ip是本地ip,默认127.0.0.1即可;local_port是要转发的端口号,官方实例中这里是远程转发SSH,所以端口号是3389,如果你想做游戏服务器的话,改成对应的端口号即可;remote_port是端口转发之后暴露在外网的端口号。
客户端配置完毕之后,就可以启动了,启动命令类似:
frpc.exe -c frpc.ini # windows 后台启动 frpc.exe -c frpc.ini &
这样你就可以在另一台电脑的远程窗口填入 server_addr :6000 来访问了本地这台Windows了(前提是这台电脑已开启接受远程链接,可先通过内网调通)。
如果你想简单把本地部署的网站开放出去,也可以以这种方式直接将本地80端口转发出去。
如果你购买了域名,希望别人通过域名访问本地网站,还可以使用接下来要介绍的,专门的web转发功能。
四、转发web服务
首先是服务端,需要添加vhost_http_port参数:
# frps.ini [common] bind_port = 7000 vhost_http_port = 80
然后是客户端,注意web下的参数,type是协议类型,http或者https,local_port是本地网站的端口号,custom_domains是购买的网站域名,需要注意这个网站域名需要事先在域名服务商那里设置好域名解析才能正常使用。
# frpc.ini [common] server_addr = x.x.x.x server_port = 7000 [web] type = http local_port = 8080 custom_domains = www.yourdomain.com
配置完成后,访问服务器网址http://x.x.x.x即可看到部署在本地http://localhost:8080上的网站。如果需要https的话,只要把vhost_http_port改成vhost_https_port,再把客户端web下type设置为https即可。