使用FRP安装包快速设置配置
使用FRP安装包快速设置配置
1、下载文件并解压文件
源码下载:https://github.com/fatedier/frp
下载最新版本frp 0.4.4,执行命令如下:
wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz
tar -zxvf frp_0.44.0_linux_amd64.tar.gz #解压缩:tar xvf 文件名
mv frp_0.44.0_linux_amd64 /usr/local/frp_0.44.0 #解压后记得重命名文件夹并移动
cd /usr/local/frp_0.44.0 #进入解压目录
测试启动命令(需要在 /usr/local/frp_0.41.0 目录下操作)
nohup ./frps -c ./frps.ini
2、添加服务frps.service
配置服务文件frps.service文件写成服务开机自启(以下示例内容仅在CentOS7上测试成功,CentOS8上没测试成功),在frp 0.42 版本中提供官方默认service文件,也可参考一下。
vim /usr/lib/systemd/system/frps.service
[Unit]
Description=frps service
After=network.target remote-fs.target nss-lookup.target
Wants=network.target
[Service]
Type=simple
ExecStart=/usr/local/frp_0.44.0/frps -c /usr/local/frp_0.44.0/frps.ini
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit
[Install]
WantedBy=multi-user.target
其中ExecStart=/usr/local/frp_0.44.0/frps -c /usr/local/frp_0.44.0/frps.ini
文件路径是根据解压文件存放的路径修改的
3、重新加载服务的配置文件
systemctl daemon-reload
4、服务端 frps.ini配置
注意:配置时需要删除注释内容,不然会导致配置内容不生效,或者程序显示乱码问题,以下有些是示例,仅供参考。
[common]
bind_port = 7000 # 监听端口,客户端与服务端进行通信的端口,即frp服务端口,需与frp客户端server_port一致
vhost_http_port = 80 # 当客户端配置type为http时使用这个端口访问
vhost_https_port = 443 # 当客户端配置type为https时使用这个端口访问
authentication_method = token # 默认认证方式token
token = waterbeartoken # 认证token,客户端配置对应相同的token
dashboard_port = 7500
#控制台端口 通过 Dashboard 可以方便的查看 FRP 的状态以及代理统计信息展示 通过 http://[server_addr]:7500 访问 Dashboard 界面。
dashboard_user = waterbear # dashboard的用户名
dashboard_pwd = waterbear # dashboard的密码
tcp_mux=true
#默认启用,开启客户端和服务器端之间的连接支持多路复用,不再需要为每一个用户请求创建一个连接,使连接建立的延迟降低,并且避免了大量文件描述符的占用,使 frp 可以承载更高的并发数。
max_pool_count =100 #设置每个代理可以创建的连接池上限,默认为5
log_file = ./frps.log # 日志文件记录位置
log_level = info # 日志级别
log_max_days = 7 # 记录日志天数
5、客户端 frps.ini配置
注意:配置时需要删除注释内容,不然会导致配置内容不生效,或者程序显示乱码问题,以下有些是示例,仅供参考。
[common]
server_addr = 1.1.1.1 #公网服务器IP,也就是你安装frp服务端的服务器IP
server_port = 7000 # 监听端口,客户端与服务端进行通信的端口,即frp服务端口,需与frp服务端server_port一致
token = waterbeartoken # 认证token,服务端配置对应相同的token
#ssh等TCP协议使用代理方法:
[ssh] #中括号内的命名必须具有全局为一性,重复同名会导致报错
type = tcp #使用tcp方式
local_ip = 192.168.1.104 #内网服务器使用的ip
local_port = 22 #内网服务器ssh服务使用的本地端口22
remote_port = 2222 #公网使用的远程端口,也是是外网访问端口为
#以下这种配置方式与frps.ini中配置的vhost_http_port与vhost_https_port相关联,使用了域名绑定,访问http://web1.l-t.top和https://web2.l-t.top进行访问,通过不同访问域名区分网站。
[web87]
type = http #http方式
local_ip = 192.168.1.104 #群晖在内网使用的ip
local_port = 87 #本地端口
custom_domains = web1.l-t.top #如解析对应域名到公网IP这里填写解析域名,如无域名配置公网服务器ip
[web88]
type = https #https方式
local_ip = 192.168.1.104 #群晖在内网使用的ip
local_port = 88 #本地端口
custom_domains = web2.l-t.top #如解析对应域名到公网IP这里填写解析域名,如无域名配置公网服务器ip
#以下这种配置方式与frps.ini中配置的vhost_http_port和vhost_https_port无关,没有绑定访问域名,没有域名使用119.29.29.29:80和119.29.29.29:443访问,通过不同端口号区分网站。
[web89]
type = tcp #tcp方式
local_ip = 192.168.1.104 #群晖在内网使用的ip
local_port = 89 #本地端口
remote_port = 80 #远程端口,也就是外网访问端口
custom_domains = 119.29.29.29 #绑定域名,无域名配置服务器ip
[web90]
type = tcp #tcp方式
local_ip = 192.168.1.104 #群晖在内网使用的ip
local_port = 90 #本地端口
remote_port = 443 #远程端口,也就是外网访问端口
custom_domains = 119.29.29.29 #绑定域名,无域名配置服务器ip
#使用范围端口映射,在 frpc 的配置文件中可以指定映射多个端口,目前只支持 tcp 和 udp 的类型。这一功能通过 `range:` 段落标记来实现,客户端会解析这个标记中的配置,将其拆分成多个 proxy,每一个 proxy 以数字为后缀命名。
#例如要映射本地 63875-63895 和 21 这22个端口,主要配置如下:
[range:FTP2121]
type = tcp
local_ip = 192.168.1.104
local_port = 21,63875-63895
remote_port = 21,63875-63895
6、自定义二级域名(可选设置)
在多人同时使用一个 frps 时,通过自定义二级域名的方式来使用会更加方便。
通过在 frps 的配置文件中配置 subdomain_host
,就可以启用该特性。之后在 frpc 的 http、https 类型的代理中可以不配置 custom_domains
,而是配置一个 subdomain
参数。
只需要将 *.{subdomain_host}
解析到 frps 所在服务器。之后用户可以通过 subdomain
自行指定自己的 web 服务所需要使用的二级域名,通过 {subdomain}.{subdomain_host}
来访问自己的 web 服务。
# frps.ini
[common]
subdomain_host = frps.com
将泛域名 *.frps.com
解析到 frps 所在服务器的 IP 地址。
# frpc.ini
[web]
type = http
local_port = 80
subdomain = test
frps 和 frpc 都启动成功后,通过 test.frps.com
就可以访问到内网的 web 服务。
注:如果 frps 配置了 subdomain_host
,则 custom_domains
中不能是属于 subdomain_host
的子域名或者泛域名。
同一个 http 或 https 类型的代理中 custom_domains
和 subdomain
可以同时配置。
更多设置详情请参考:
7、frps服务管理命令
systemctl start frps
systemctl stop frps
systemctl restart frps
systemctl status frps
systemctl enable frps
systemctl disable frps
使用docker方式启动FRP
下载FRP镜像:
服务端:docker pull snowdreamtech/frps
客户端:docker pull snowdreamtech/frpc
启动FRP命令:
服务端启动:start frps
docker run --restart=always --network host -d -v /etc/frp/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps
客户端启动:start frpc
docker run --restart=always --network host -d -v /etc/frp/frpc.ini:/etc/frp/frpc.ini --name frpc snowdreamtech/frpc