FRP 简介
frp [官方文档] 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
使用场景
做具体的配置前,根据对应的操作系统及架构,从 Release 页面下载最新版本的程序。客户端和服务端版本需一致!
- 将 frps 及 frps.ini 放到具有公网 IP 的机器上。请注意配置防火墙或安全组放过配置文件中使用的端口。
- 将 frpc 及 frpc.ini 放到处于内网环境的机器上。
启动服务
服务端
编辑frps.ini
文件
# frps.ini
[common]
bind_port = 7000
# 设置 http 访问端口为 8080 以使用访问内网web服务
vhost_http_port = 8080
# 用于身份验证,请自行修改,要保证服务端与客户端一致
token = abcdefgh
启动 frps:./frps -c ./frps.ini
客户端
编辑 frpc.ini
文件
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
# 用于身份验证,请自行修改,要保证服务端与客户端一致
token = abcdefgh
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
[web]
type = http
local_port = 80
custom_domains = www.yourdomain.com
#通过浏览器访问 http://x.x.x.x:6010/static/ 来查看位于 /tmp/file 目录下的文件,会要求输入已设置好的用户名和密码。
[test_static_file]
type = tcp
remote_port = 6010
plugin = static_file
#要对外暴露的文件目录
plugin_local_path = /tmp/file
#访问 url 中会被去除的前缀,保留的内容即为要访问的文件路径
plugin_strip_prefix = static
plugin_http_user = abc
plugin_http_passwd = abc
访问登录
ssh root@x.x.x.x -p6000
FRP 开机自动启动
frp工具非常贴心的已经带了服务的配置文件(位于frp的systemd文件夹下),我们仅需要做一些修改就好。
[Unit]
Description=Frp Server Service
After=network.target
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini
[Install]
WantedBy=multi-user.target
将其中的ExecStart
的内容按照实际放置的位置填写就好。User
根据实际情况写,也可以不写。
然后将文件命名为frps.service
,扩展名为service即可。然后将文件copy至/etc/systemd/system/
中
运行命令
// 启动服务
systemctl start frps
// 开机启动
systemctl enable frps
// 取消开机启动
systemctl disable frps
// 停止服务
systemctl stop frps