frp配置(转)
Frp服务的搭建
搭建frp很简单,关键的步骤只有三步:
1、获取frp文件;
2、设置frp配置文件,
3、启动frp服务。(注意frp搭建的的这三步是分为客户端和服务端的,但是操作基本是一致的。)本教程frp服务的搭建主要介绍frp搭建的主要三步,以及frp服务端和客户端配置文件内容的解释说明,以及如何将frp在linux系统中创建systemd服务,进行服务管理。
第一步:获取frp文件
frp支持linux平台和windows平台。参照你的设置的运行平台下载linux版本的文件或者是windows的。https://github.com/fatedier/frp/releases
一般linux平台下载的版本为:frp_版本号_linux_amd64.tar.gz,windows平台下载的版本为:frp_版本号_windows_amd64.zip。
linux版本文件的解压命令为tar -zxvf 文件名 ;windows版本文件直接右键解压即可。
文件解压后,一般都含有frps(frp服务端运行文件)、frpc(frp客户端运行文件)、frps.ini(frp服务端配置文件)、frpc.ini(frp客户端配置文件),以及frp_full.ini(frp全部配置文件解释说明和参考。)
第二步:frp配置文件设置
frp配置文件分为服务端和客户端,想要正常只用frp工具,我们需要对服务端和客户端的配置文件分别进行设置。
frps.ini(服务端)配置文件解释说明
[common] # 服务端控制面板访问账号和密码,不设置则默认admin #注意以及几个是我随便填写的,请根据自己的实际情况,自行修改。 dashboard_user = user dashboard_pwd = password # 客户端连接令牌 token = access_token # 路由地址 subdomain_host = frp.x.com ###########下列配置默认即可,无需改动############### #穿透监听端口与地址(0.0.0.0表示允许任何地址) bind_addr = 0.0.0.0 bind_port = 7000 # udp协议监听端口 bind_udp_port = 7001 #udp协议支持kcp模式。kcp的运行端口,不设置表示禁用。可以与'bind_port'端口一致 kcp_bind_port = 7000 #虚拟主机穿透监听端口(指http与https的访问端口) vhost_http_port = 80 vhost_https_port = 443 #服务端控制面板访问端口 dashboard_addr = 0.0.0.0 dashboard_port = 7500 # frp日志记录路径 log_file = ./frps.log # 日志记录级别(trace, debug, info, warn, error) log_level = info # 日志记录滚动天数 log_max_days = 3 # 客户端与服务端连接心跳检测 heartbeat_timeout = 90 # 允许客户端使用的穿透端口,不设置则全部允许 #allow_ports = 1000-100000 # 穿透服务允许的连接数 max_pool_count = 5 # 单个客户端允许建立的穿透服务,0为不限制 max_ports_per_client = 0 # 连接超时 authentication_timeout = 900 # tcp流多路复用(可以理解为优化传输) tcp_mux = true
frpc.ini(客户端)配置文件解释说明
#该配置文件,我做了相关的删减,只保留了我们最常用到的几个穿透功能。 #[common为公共配置区域必须存在] [common] # 与服务端连接令牌 token = access_token # 客户端标识 user = nas #服务端的访问地址(可用ip或者域名)。 server_addr = 111.222.222.111 ####################此处为common的默认配置区域无需修改################### #服务端用于穿透的端口,与服务端保持一致。 server_port = 7000 # 日志记录路径 log_file = ./frpc.log # 日志记录级别(trace, debug, info, warn, error) log_level = info # 日志记录滚动天数 log_max_days = 3 # frpc客户端管理界面 admin_addr = 127.0.0.1 admin_port = 7400 admin_user = admin admin_passwd = admin # 连接池 pool_count = 5 # tcp数据流多路复用,默认开启,服务端客户端需要保持一致 tcp_mux = true # 失败重连 login_fail_exit = true # 服务端与客户端通信协议,支持tcp\upd protocol = tcp # dns服务选用 # dns_server = 8.8.8.8 #客户端向服务端心跳检查间隔与超时时间 heartbeat_interval = 10 heartbeat_timeout = 90 ##############以上为客户端服务的公共信息配置区域############ ###############具体的穿透服务功能启用(表示你要使用frp的那个功能)############## [ssh] #穿透类型 type = tcp #需穿透服务本地访问地址 local_ip = 127.0.0.1 #需穿透服务本地访问端口 local_port = 22 #是否使用通讯加密,默认false use_encryption = false #是否使用通讯压缩,默认false use_compression = false #穿透后外网访问端口。 remote_port = 6001 [dns] type = udp local_ip = 114.114.114.114 local_port = 53 remote_port = 6002 use_encryption = false use_compression = false #http或者https模式主要针对于虚拟主机,访问的取决于frps.ini文件中的vhost_http_port设置 [web01] type = http local_ip = 127.0.0.1 local_port = 80 use_encryption = false use_compression = true #虚拟主机访问账户密码设置,如果不设置的话。自己通过地址即可访问。 http_user = admin http_pwd = admin # if domain for frps is frps.com, then you can access [web01] proxy by URL http://test.frps.com #如果你的frps域名是yourdomain.com,那么你可以通过web01.yourdomain.com 来访问web01这个穿透服务。 subdomain = web01 #自己定义域名 custom_domains = yourdomain.com # locations is only available for http type locations = /,/pic # http重定向地址 host_header_rewrite = example.com # http请求文件头 header_X-From-Where = frp [web02] type = https local_ip = 127.0.0.1 local_port = 8000 use_encryption = false use_compression = false subdomain = web02 custom_domains = web02.yourdomain.com [plugin_static_file] type = tcp remote_port = 6006 plugin = static_file plugin_local_path = /var/www/blog plugin_strip_prefix = static plugin_http_user = abc plugin_http_passwd = abc
第三步:启动服务
linux环境下启动服务,需要先把运行文件添加可执行权限。例如我的文件实在root文件夹中,我需要搭建frp服务端,那么待设置好服务端配置文件(frps.ini)后执行以下命令即可。
cd /root
chmod +x frps
nohup ./frps -c ./frps.ini &
执行成功后,会显示frp的进程号码。你也可以通过命令来查看frps运行的进程编号。
ps -e | grep frps
在windows环境下则是以管理员身份运行cmd命令提示符。进入相应的目录后,运行命令即可。
frps -c frps.ini &
关于frp管理的优化设置
debian8.0,或者是centos7.0以上的版本,服务都是基于systemd的方式进行管理的。frp通过设置后也可以实现systemd的方式进行管理,这样我们就可以通过systemctl命令来进行服务的统一管理,同时通过这样的设置也可以将frp服务加入开机自启动。
1、将frp设置成linux系统的服务,基于systemd方式管理
# 编写 frp service 文件,以 centos7 为例
vim /usr/lib/systemd/system/frps.service
# 内容如下
[Unit] Description=frps daemon After=syslog.target network.target Wants=network.target [Service] Type=simple #此处的路劲地址根据自己的实际放置的地址进行修改 ExecStart=/root/frp/frps -c /root/frp/frps.ini Restart=always RestartSec=1min [Install] WantedBy=multi-user.target 2、将frp设置成开机自启动 systemctl enable frps systemctl restart frps
简单配置
配置服务端(公网服务器),首先删掉frpc、frpc.ini两个文件,然后再进行配置,vi ./frps.ini,
[common] bind_port = 7000 #与客户端绑定的进行通信的端口 vhost_http_port = 6081 #访问客户端web服务自定义的端口号 保存然后启动服务./frps -c ./frps.ini,这是前台启动,后台启动命令为nohup ./frps -c ./frps.ini &
---------------------
配置客户端(内网服务器),首先删掉frps、frps.ini两个文件,然后再进行配置,vi ./frpc.ini
[common] server_addr = 120.56.37.48 #公网服务器ip server_port = 7000 #与服务端bind_port一致 #公网通过ssh访问内部服务器 [ssh] type = tcp #连接协议 local_ip = 192.168.3.48 #内网服务器ip local_port = 22 #ssh默认端口号 remote_port = 6000 #自定义的访问内部ssh端口号 #公网访问内部web服务器以http方式 [web] type = http #访问协议 local_port = 8081 #内网web服务的端口号 custom_domains = repo.iwi.com #所绑定的公网服务器域名,一级、二级域名都可以
保存然后执行./frpc -c ./frpc.ini启动,这是前台启动,后台启动命令为nohup ./frpc -c ./frpc.ini &
---------------------