frp 是一个跨平台、高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。
其项目托管在github,项目地址:https://github.com/fatedier/frp
下载客户端文件 (手动配置服务端)
frp客户端的使用很简单,主程序就是一个单文件,加上一个可自定义的配置文件就能运行。
客户端下载地址: https://github.com/fatedier/frp/releases
本站下载地址:https://down.chaolucky.com/blog/frp/frp.zip
下载时请注意版本兼容性及支持平台。客户端与服务端最好为同一版本。
windows版本会在软件版本号后面添加“Windows”字样,注意32位于64位版本,如果是linux,找到linux字样即可,同样注意32位与64位版本,linux版本不同,下载的包也会不同,如果是基于arm平台的linux,例如树莓派,安卓手机,请下载arm版本,FreeBSD同上。
下载后是一个压缩包,包内有frpc与frps,frpc是客户端,frps服务端是本次介绍的重点。
配置文件
将frps上传到服务器,并且在同级目录下新建frps.ini配置文件:vim frps.ini
# [common] is integral section
[common]
# A literal address or host name for IPv6 must be enclosed
# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
bind_addr = 0.0.0.0
bind_port = 5443
# udp port used for kcp protocol, it can be same with 'bind_port'
# if not set, kcp is disabled in frps
kcp_bind_port = 5443
# if you want to configure or reload frps by dashboard, dashboard_port must be set
dashboard_port = 80
# dashboard assets directory(only for debug mode)
dashboard_user = admin
dashboard_pwd = password
# assets_dir = ./static
vhost_http_port = 1080
vhost_https_port = 466
subdomain_host = frp.cchao.ren
# console or real logFile path like ./frps.log
log_file = ./frps.log
# debug, info, warn, error
log_level = info
log_max_days = 3
# auth token
token = 123456
# only allow frpc to bind ports you list, if you set nothing, there won't be any limit
#allow_ports = 1-65535
# pool_count in each proxy will change to max_pool_count if they exceed the maximum value
max_pool_count = 100
# if tcp stream multiplexing is used, default is true
tcp_mux = true
其中bind_addr
是本机的地址,bind_port
是客户端连接的端口,可以修改,dashboard_port
,_dashboard_user
,dashbord_pwd
是服务端web界面控制一台参数(端口,用户名,密码),不过没什么东西。vhost_http_port
以及 vhost_https_port
是http穿透时,访问的端口,如果要绑定多个网站,需要给定subdomain_host
参数,在frpc客户端的配置文件中需要制定下一级域名,虽然端口相同,但是域名不同,访问的页面于是不同,下文客户端配置会详细介绍。token
参数是客户端访问时的“密码”。
配置文件编写完成之后,就可以使用命令:frps -c frps.ini
来启动服务端。
使用脚本安装配置服务端(Linux)
首先切换到预先为frps新建店目录,然后在linux命令行界面输入:
wget --no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-install-shell/master/frps/install-frps.sh -O ./install-frps.sh
chmod 700 ./install-frps.sh
./install-frps.sh install
运行之后根据下面的文档来配置:
Loading network version for frps, please wait...
frps Latest release file frp_0.8.1_linux_amd64.tar.gz #此步骤会自动获取frp最新版本,自动操作,无需理会
Loading You Server IP, please wait...
You Server IP:12.12.12.12 #自动获取你服务器的IP地址
Please input your server setting:
Please input frps bind_port [1-65535](Default Server Port: 5443): #输入frp提供服务的端口,用于服务器端和客户端通信
Please input frps dashboard_port [1-65535](Default dashboard_port: 6443): #输入frp的控制台服务端口,用于查看frp工作状态
Please input frps vhost_http_port [1-65535](Default vhost_http_port: 80): #输入frp进行http穿透的http服务端口
Please input frps vhost_https_port [1-65535](Default vhost_https_port: 443): #输入frp进行https穿透的https服务端口
Please input privilege_token (Default: WEWLRgwRjIJVPx2kuqzkGnvuftPLQniq): #输入frp服务器和客户端通信的密码,默认是随机生成的
Please input frps max_pool_count [1-200](Default max_pool_count: 50): #设置每个代理可以创建的连接池上限,默认50
##### Please select log_level #####
1: info
2: warn
3: error
4: debug
#####################################################
Enter your choice (1, 2, 3, 4 or exit. default [1]): #设置日志等级,4个选项,默认是info
Please input frps log_max_days [1-30]
(Default log_max_days: 3 day): #设置日志保留天数,范围是1到30天,默认保留3天。
##### Please select log_file #####
1: enable
2: disable
#####################################################
Enter your choice (1, 2 or exit. default [1]): #设置是否开启日志记录,默认开启,开启后日志等级及保留天数生效,否则等级和保留天数无效
如果没有问题则继续安装:
============== Check your input ==============
You Server IP : 12.12.12.12
Bind port : 5443
Dashboard port : 6443
vhost http port : 80
vhost https port: 443
Privilege token : WEWLRgwRjIJVPx2kuqzkGnvuftPLQniq
Max Pool count : 50
Log level : info
Log max days : 3
Log file : enable
==============================================
Congratulations, frps install completed!
==============================================
You Server IP : 0.0.0.0
Bind port : 5443
Dashboard port : 6443
vhost http port : 80
vhost https port: 443
Privilege token : WEWLRgwRjIJVPx2kuqzkGnvuftPLQniq
Max Pool count : 50
Log level : info
Log max days : 3
Log file : enable # 将上面信息添加到你的路由器frp穿透插件中吧
==============================================
frps Dashboard: http://0.0.0.0:6443/ # 这个是frp控制台访问地址
==============================================
如果要更新脚本,使用命令:./install-frps.sh update
卸载使用:./install-frps.sh uninstall
配置命令:(如果找不到frps命令,请手动将"frps"改为:/etc/init.d/frps)
/etc/init.d/frps start ##启动frps
/etc/init.d/frps stop ##停止frps
/etc/init.d/frps restart ##重启frps
/etc/init.d/frps status ##frps状态
/etc/init.d/frps config ##打开配置文件
/etc/init.d/frps version ##frps版本
frpc客户端配置
frpc的配置较为简单,只需要两个文件,一个是frpc二进制文件,一个是frpc.ini配置文件。frpc.ini配置文件参考如下:
#服务端配置
[common]
#服务器地址
server_addr = chaolucky.com
#服务器端口
server_port = 5443
#服务端token
token = 123456
#本地Web页面管理面板
admin_addr = 127.0.0.1
admin_port = 8080
admin_user = admin
admin_pwd = admin
##用户端口转发配置部分##
#此名称可随意修改,但是两边必须有必须中括号
[http]
#type后面的参数表示这是一个http类型的穿透还是tcp,udp等等的类型
type = http
#本地地址
local_ip = 192.168.0.1
local_port = 80
#自定义的域名
subdomain = router
[tcp]
type = tcp
local_ip = 127.0.0.1
local_port = 80
#tcp穿透指定的服务器端口,http类型不续此配置
remote_port = 1234
其中自定义域名表示下一级域名,比如,服务端制定的域名是“frp.cchao.ren”。客户端 subdomain=router
,那么访问的域名就是 router.frp.chaolucky.com,后面接上服务端指定的 http
穿透的端口。例:router.frp.chaolucky.com:8080。
本站提供免费的FRP内网穿透服务,具体请查看 http://frp.chaolucky.com/
注意事项
login to server failed: authorization failed错误的原因及处理办法:
login to server failed: authorization failed是因为token错误导致的,可以检查token的值是不是正确 ,另外一种错误的原因是0.17.0以前的版本沿用了特权模式时候的写法privilege_token = 123456 ,从0.17.0版本开始使用token = 123456 ,所以检查是不是token的配置项名称错误了。
期待你的神评呦~