【群晖NAS】FRP内网穿透


双11购置了一台16g内存的群晖DS918+,购买之后安装了一些基本套件就没咋玩了。原因是大部分时间其实都不在家,无法在外网访问成了最大的问题。家里宽带是广东电信的,公网IP基本没戏了,恰好双11撸了一台腾讯云8M带宽的机器,借助这台机器来做内网穿透,方案的话就选用最常见的Frp。

前提

  • 一台公网服务器(我用的腾讯云轻量2核4G8M带宽 3年160)
  • 一台群晖NAS

腾讯云服务器配置

  1. 在腾讯云轻量服务器中找到防火墙开放相应端口(通常只需要开放5005,2222,5007,443,5001,7500,7000等端口,详细端口根据frp配置文件决定), 嫌麻烦又不介意安全的话可以把所有端口全开放。

  2. frps安装配置
    frp服务端程序和客户端程序版本最好是保持一致。在云服务器上安装frp服务端

    wget https://d.frps.cn/file/frp/v0.37.0/frp_0.37.0_linux_amd64.tar.gz
    
    tar xf frp_0.37.0_linux_amd64.tar.gz
    cd frp_0.37.0_linux_amd64
    vim frps.ini

    云服务器上注意是修改frps.ini,不是frpc.ini。服务端frps.ini的配置如下

    [common]
    bind_port = 7000
    dashboard_port = 7500
    token = password

    bind_port 是frp服务端和客户端连接的接口,之后客户端设置时需保持一致
    dashboard_port 是frp仪表板端口, 可以通过服务器IP:7500访问,查看流量等运行信息。
    token 可自行设置, 在客户端设置的时候记得保持一致即可。

  3. 启动frp服务端
    先运行./frps -c frps.ini,如果没有输出报错信息说明frp能够正常启动。
    为了让frp服务端能够随着服务器自启,可以将frps放入system管理

    #进入刚刚安装的文件夹下的systemd目录
    cd frp_0.37.0_linux_amd64/systemd/
    vim frps.service

    文件如下,只需要将文件中的ExecStart启动路径修改成自己的。

    [Unit]
    Description=Frp Server Service
    After=network.target
    
    [Service]
    Type=simple
    User=root
    Restart=on-failure
    RestartSec=5s
    ExecStart=/home/ubuntu/software/frp_0.37.0_linux_amd64/frps -c /home/ubuntu/software/frp_0.37.0_linux_amd64/frps.ini 
    #只需要将上面的路径改成自己的路径
    [Install]
    WantedBy=multi-user.target

    服务端开启

    cp frps.service /lib/systemd/system/
    systemctl enable frps
    systemctl start frps

    启动成功后,可以使用命令ps -ef|grep frp 或者网页访问服务器IP:7500查看是否启动成功。

群晖NAS配置

本人群晖系统版本是7.0,需要先在套件中心安装docker

  1. 在群晖NAS的docker中打开注册表,搜索frps,选择stilleshan/frps,点击下载的时候需要选择和服务端同样的版本,这里我们选0.37.0

  2. 准备frp客户端的配置文件
    在本地新建一个文件命名为frpc.ini,文件内容如下

    [common]
    server_addr = XXX.XXX.XX      #替换成自己的腾讯云的公网IP或者将 对应域名 域名需要CNAME指向服务器IP
    server_port = 7000
    token = password
    [ssh]
    type = tcp
    local_ip = 192.168.31.10  #此处填写群晖NAS的内网地址
    local_port = 22         
    remote_port = 2222      
    [dsm]
    type = tcp
    local_ip = 192.168.31.10
    local_port = 5000
    remote_port = 5443
    [ds_file]
    type = tcp
    local_ip = 192.168.31.10
    local_port = 5001
    remote_port = 5001
    [https_webdav]
    type = tcp
    local_ip = 192.168.31.10
    local_port = 5006
    remote_port = 5007
    [http_webdav]
    type = tcp
    local_ip = 192.168.31.10
    local_port = 5004
    remote_port = 5005
    [emby]
    type = tcp
    local_ip = 192.168.31.10
    local_port = 8096
    remote_port = 8096

    编辑保存文件后将文件放入群晖NAS内部的文件夹下,7.0安装docker的时候会自动创建一个docker文件夹,在里面创建一个目录frpc,将文件放入其中。

  3. 启动容器,在映像中选中刚刚下载的容器,点击启动选择高级设置-存储空间,添加文件如图。

  4. 点击高级设置-网络,勾选使用与Docker Host相同的网络

  5. 点击应用,确认配置没问题后启动容器即可。

外网访问

输入腾讯云服务器公网域名+相应端口就能直接访问了。

这里还存在一个问题,如果不想加端口访问怎么办?有几种方法

  • 添加域名反向代理,如果服务器上安装了宝塔面板的话,操作很简单。具体可以查看内网穿透Nas这位大佬的配置
  • 在frpc.ini配置文件中给相应端口加上custom_domains配置,具体可以查看群晖Docker FRP内网穿透教程这位大佬的配置

文章作者: Nczkevin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Nczkevin !
评论
  目录