@TOC
使用fatedier/frp
使用fatedier/frp
github中文文档如下: https://github.com/fatedier/frp/blob/master/README_zh.md
fatedier/frp搭建:
linux服务端下载安装包:
服务端搭建在上一步准备的公网服务器上,因为服务器是 centos7 x64 的系统,因此,这里下载最新安装包版本为 linux_amd64 的 frp_0.29.0_linux_amd64.tar.gz 。
1 | $ wget https://github.com/fatedier/frp/releases/download/v0.29.0/frp_0.29.0_linux_amd64.tar.gz |
linux服务端解压安装包:
1 | $ tar -zxvf frp_0.29.0_linux_amd64.tar.gz |
linux服务端修改配置文件:
1 | $ cd frp_0.29.0_linux_amd64 |
linux服务端 启动 frp
1 | [root@izbp1ad1jbc6fvyx1vcon3z frp_0.29.0_linux_amd64]# nohup ./frps -c ./frps.ini & |
linux服务端 检查frp端口是否启动监听
1 | [root@izbp1ad1jbc6fvyx1vcon3z frp_0.29.0_linux_amd64]# netstat -aptn |
如上代码所示 已经成功启动
windows frp 客户端搭建(其他平台同理一样 改配置):
windows客户端下载安装包:
https://github.com/fatedier/frp/releases/download/v0.29.0/frp_0.29.0_windows_386.zip
直接下载;
windows客户端解压安装包:
….
windows客户端修改配置文件:
修改E:\personal\工具\内网穿透\frp_0.29.0_windows_amd64\frp_0.29.0_windows_amd64\frpc.ini文件
修改 frpc.ini 文件,假设 frps 所在的服务器的 IP 为 x.x.x.x,local_port 为本地机器上 web 服务对应的端口, 绑定自定义域名 www.yourdomain.com:
1 | # frpc.ini |
windows客户端 启动 frp
直接到目录下打开cmd.exe
1 | E:\personal\工具\内网穿透\frp_0.29.0_windows_amd64\frp_0.29.0_windows_amd64>frpc.exe |
至此,frp搭建完成
扩展使用, nginx反向代理(可搭配域名解析等场景使用)
nginx添加配置如下:
1 | location /callback/ { |
如果配置了https, 需要在https代理设置下同理配置相同内容;
重载nginx,使配置生效
1 | nginx -s reload |
使用效果
1 | { |
扩展使用, 使用frp做远程连接(windows)
在需要接收外网远程连接的pc的frpc.ini中配置如下:
1 | [ssh-windows-pc1] |
使用远程连接:remote_addr:6000即可
将BAT文件或exe文件注册为服务的方法
为了方便windows pc机快速启动, 可以注册frpc客户端为win系统服务, 参考网上的教程大致如下:
第一步:
下载微软系统小工具 instsrv.exe和srvany.exe至C:\Windows\System32(如果是64bit系统,则将其拷贝到C:\WINDOWS\SysWOW64)。
脚本之家下载:arvany
第二步:
进入dos界面,运行命令(这里以64bit系统为例,32位改为相应路径即可):
C:\Documents and Settings\administrator>C:\WINDOWS\SysWOW64\instsrv.exe MyService C:\WINDOWS\SysWOW64\srvany.exe
注:Myservice是自定义的服务的名称,可以根据应用程序名称任意更改。
第三步:
打开注册表,定位到下面的路径。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName
(同样的ServiceName是你刚才安装服务时自定义的服务名称。)
如果该服务名下没有Parameters项目,则对服务名称项目右击新建项,名称为Parameters,然后定位到Parameters项,新建以下几个字符串值。
名称 Application 值为你要作为服务运行的BAT文件地址。
名称 AppDirectory 值为你要作为服务运行的BAT文件所在文件夹路径。
名称 AppParameters 值为你要作为服务运行的BAT文件启动所需要的参数。
注:instsrv ServiceName remove 命令可删除服务。