下载
64位 Linux 操作系统
- 文件名: frp_0.xx.x_linux_amd64.tar.gz
下载地址: https://github.com/fatedier/frp/releases
树莓派(32位)
文件名: frp_0.xx.x_linux_arm.tar.gz
- 下载地址: https://github.com/fatedier/frp/releases
服务端
CentOS 下的服务
- 位置:
/lib/systemd/system/frps.service
- 内容: ```bash [Unit] Description=frps - frp 服务端,一个可用于内网穿透的高性能的反向代理应用。 Documentation=https://gofrp.org/docs/ After=network.target
[Service] Type=simple PIDFile=/var/run/frp.pid ExecStartPre=-/usr/sbin/setcap cap_net_bind_service=+ep /usr/bin/frps ExecStart=/usr/bin/frps -c /etc/frp/frps.ini Restart=always RestartSec=10s User=root PermissionsStartOnly=true LimitNOFILE=infinity
[Install] WantedBy=multi-user.target
- **重载服务配置**: `systemctl --system daemon-reload`
- **开启自启动**: `systemctl enable frps.service`
- **启动服务**: `systemctl start frps.service`
- **重启服务**: `systemctl restart frps.service`
- **停止服务**: `systemctl stop frps.service`
<a name="6hGgg"></a>
## 服务端配置
参考文档: [https://www.huaweicloud.com/articles/3fc9925975a869f938fb15f0d5b3397b.html](https://www.huaweicloud.com/articles/3fc9925975a869f938fb15f0d5b3397b.html)
```bash
[common]
# 服务端控制面板访问账号和密码,不设置则默认admin
dashboard_user = admin
dashboard_pwd = passwd
# 客户端连接令牌
token = token2020
# 路由地址 不配置泛域名,可在 frpc.ini 中配置 vhost 时添加:custom_domains = xx.xxx.com
# subdomain_host = jonnyhub.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 = 1480
vhost_https_port = 1443
#服务端控制面板访问端口
dashboard_addr = 0.0.0.0
dashboard_port = 7500
# frp日志记录路径
log_file = /var/log/frp/frps.log
# 日志记录级别(trace, debug, info, warn, error)
log_level = info
# 日志记录滚动天数
log_max_days = 7
# 客户端与服务端连接心跳检测
heartbeat_timeout = 90
# 允许客户端使用的穿透端口,不设置则全部允许
#allow_ports = 1000-8000
# 穿透服务允许的连接数
max_pool_count = 16
# 单个客户端允许建立的穿透服务,0为不限制
max_ports_per_client = 0
# 连接超时
authentication_timeout = 900
# tcp流多路复用(可以理解为优化传输)
tcp_mux = true
客户端配置
树莓派 OS - 服务
位置: /lib/systemd/system/frps.service
内容:
[Unit]
Description=frpc - frp 客户端。
Documentation=https://gofrp.org/docs/
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/frpc -c /etc/frp/frpc.ini
Restart=always
RestartSec=10s
User=root
LimitNOFILE=infinity
[Install]
WantedBy=multi-user.target
重载服务配置: systemctl --system daemon-reload
开启自启动: systemctl enable frpc.service
启动服务: systemctl start frpc.service
重启服务: systemctl restart frpc.service
停止服务: systemctl stop frpc.service
客户端配置:
# [common] 为公共配置区域必须存在
[common]
# 与服务端连接令牌
token = token2020
# 客户端标识
user = raspi
#服务端的访问地址(可用ip或者域名)。
server_addr = 106.xx.xxx.xxx
####################此处为common的默认配置区域无需修改###################
#服务端用于穿透的端口,与服务端保持一致。
server_port = 7000
# 日志记录路径
log_file = /var/log/frp/frpc.log
# 日志记录级别(trace, debug, info, warn, error)
log_level = info
# 日志记录滚动天数
log_max_days = 7
# frpc客户端管理界面
admin_addr = 127.0.0.1
admin_port = 7400
admin_user = admin
admin_passwd = admin
# 连接池
pool_count = 10
# 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 = 192.168.xx.xx
#需穿透服务本地访问端口
local_port = 22
#是否使用通讯加密,默认false
use_encryption = false
#是否使用通讯压缩,默认false
use_compression = false
#穿透后外网访问端口。
remote_port = 6022
# [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