注意:用国内服务器搭建,需要域名备案才能使用

一、frp的作用

利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。
对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。
利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机

二、配置说明

1、实现功能

(1)外网通过ssh访问内网机器
(2)自定义绑定域名访问内网web服务

2、配置前准备

(1)公网服务器1台
(2)内网服务器1台
(3)公网服务器绑定域名1个
(4)内网服务器部署一个web服务

三、安装frp

1、公网服务器与内网服务器都需要下载frp进行安装

2、下载地址是https://github.com/fatedier/frp/releases

也可以通过命令下载:

wget https://github.com/fatedier/frp/releases/download/v0.16.1/frp_0.16.1_linux_amd64.tar.gz

3.在WINDOWS下用winscp软件登录,上传frp_0.16.1_linux_amd64.tar.gz至root目录

4.解压文件:

 

tar -zxvf frp_0.16.1_linux_amd64.tar.gz

5.进入解压目录:

 

cd frp_0.16.1_linux_amd64

frps、frps.ini这个两个是服务端文件,frpc、frpc.ini这两个是客户端文件

6.配置服务端:

vi ./frps.ini
[common]
bind_port = 7000        #与客户端绑定的进行通信的端口
vhost_http_port = 80    #访问客户端web服务自定义的端口号
vhost_https_port = 443  

按”i”键进行编辑,按“esc”退出编辑状态,输入“:wq”退出

四、启动服务端

临时启动

./frps -c ./frps.ini

后台保持启动

nohup ./frps -c ./frps.ini &

五、配置客户端

 

vi ./frpc.ini
[common]  
server_addr = 120.56.37.48      #公网服务器ip  
server_port = 7000              #与服务端bind_port一致  
  
#公网通过ssh访问内部服务器  
[ssh]  
type = tcp                      #连接协议  
local_ip = 127.0.0.1            #内网服务器ip  
local_port = 22                 #ssh默认端口号  
remote_port = 6000              #自定义的访问内部ssh端口号  
  
#公网访问内部web服务器以http方式  
[web]  
type = http                     #访问协议
local_ip = 127.0.0.1            #内网服务器ip 
local_port = 80                 #内网web服务的端口号  
custom_domains = www.10086ol.com,10086ol.com   
#所绑定的公网服务器域名,一级、二级域名都可以,绑定多个域名时用英文“,”分开

六、启动客户端

临时启动

./frpc -c ./frpc.ini

后台保持启动

nohup ./frpc -c ./frpc.ini &

七、穿透公司代理内网

1.修改服务端配置文件

vi ./frps.ini
[common]
bind_port = 443        #端口号修改为443
vhost_http_port = 80    #访问客户端web服务自定义的端口号 

2.修改客户端配置文件

vi ./frpc.ini
[common]
server_addr = 118.24.127.138
server_port = 443                            #端口号修改为443
http_proxy = http://10.168.57.241:8088       #加入公司代理地址

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

[web]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = www.10086ol.com

服务端与客户端启动方式不变,参照四、六。

八、群晖NAS使用frp穿透服务

①.设置ROOT密码,获取群晖的ROOT权限

1.打开控制面板,开启SSH功能

 

2.终端输入命令ssh admin@192.168.1.201登录,密码为群辉NAS的用户密码(地址修改为自己的NAS地址,win用户用Putty这个软件登录)

3.输入命令

sudo -i

4.设置root密码

synouser —setpw root XXX

【XXX便是你要修改的密码】

②.客户端调试

1.使用root用户登录群晖6.1

ssh root@192.168.1.201

(地址修改为自己的群晖NAS地址)

2.群晖NAS登陆后台配置文件

[common]
server_addr = 118.24.127.138
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

[nasweb]  
type = http                   
local_ip = 127.0.0.1           
local_port = 5000                     #群晖NAS登陆地址端口是5000
custom_domains = nas.veecolor.com

2.使用群晖NAS手机APP的DS photo软件在外网访问配置文件

[common]
server_addr = 118.24.127.138
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

[nasweb]  
type = http                   
local_ip = 127.0.0.1           
local_port = 5000                     #群晖NAS登陆地址端口是5000
custom_domains = nas.veecolor.com

[nasphoto]  
type = tcp                             #协议为TCP协议
local_ip = 127.0.0.1           
local_port = 80
remote_port = 8000                    #需要做一个端口转发才可以实现APP登陆,端口自定义
custom_domains = photo.veecolor.com