FRP 实现群晖外网访问

date
Aug 22, 2019
slug
frp-config
status
Published
tags
summary
利用 FRP 内网穿透实现在外网访问家中的群晖
type
Post

服务器端

前往 GitHub 上的 FRP 仓库地址下载最新的 release 版本。
wget <https://github.com/fatedier/frp/releases/download/v0.28.2/frp_0.28.2_linux_amd64.tar.gz>
tar -zxvf frp*.tar.gz
cd frps*
其中,frps开头的为服务器端文件,frpc开头的为客户端文件。这里我们只关心服务器端的文件,可以删除多余的客户端文件。
接下来,我们需要进行一些配置。打开 frps.ini。按需进行配置,可以参考frps_full.ini文件。
// 部分配置
token = secret

vhost_http_port = 8089
vhost_https_port = 8443

// 这样客户端的配置中,写 subdomain = nas 就可以通过 nas.example.com 访问了
subdomain_host = example.com

配置系统服务

上一步完成后,修改 systemd 目录下的 frps.service 文件,修改其中的目录为你的 frps 目录。
然后,将其移动到系统服务目录下。对于 Ubuntu16.04:
sudo cp systemd/frps.service /etc/system/systemd/

// 启动服务
sudo systemctl start frps
// 开机自启
sudo systemctl enable frps

与 NGINX 配合

nginx 反向代理实现不带端口访问。配置文件参考下面:
# /etc/nginx/site-enabled/nginx
// TODO
server {
    listen 80;
    server_name nas.example.com;

    location / {
        proxy_pass <http://127.0.0.1:8089>;
    }
}
使用 Let's encrypt 来加上 SSL。
certbot run
至此,服务端配置就大功告成啦。

客户端配置

客户端我是用路由器固件自带的 FRP 内网穿透功能。主要看一下配置文件。
[common]
server_addr = # 服务器IP
server_port = # 服务端 FRP 监听端口
token = # 与服务端配置一致

[nas]
type = http
local_ip = 192.168.1.8 # 本地群辉地址
local_port = 5000 # 群辉管理页面端口 (Https 为 5001)
remote_port = 8089
subdomain = nas

Enjoy

现在,就可以通过 nas.example.com 来访问家里的群辉啦。

© Hopsken 2021 - 2024