黑群晖配合frp无公网IP实现远程连接

作者:happyzxb 发表于:2019-05-13

一、初始需求

远程访问群晖的文件,使用域名访问并且不加端口,比如说在浏览器打开 http://nas.xxx.com 就是群晖的页面,手机使用DS套件远程访问,比如:DS file 输入 nas.xxx.com 可以登录使用域名访问。

黑群晖配合frp无公网IP实现远程连接

黑群晖配合frp无公网IP实现远程连接

所有照片都放在群晖里,希望在外面也能访问,宿舍没有公网IP,2年前在路由器装过frp,但是装在内存中,重启路由就没了,最近搬家换工作后又准备重新装一下,发现忘记怎么装了,然后尝试用DDNS,各种都配置好了,发现外网进不来电信猫,只能试试直接在群晖里面装frp...


二、环境准备

  • 黑群晖主机,系统6.2.1

  • 域名2个解析到服务器,nas.xxx.com,nas-photo.xxx.com(用于Photo Station)

  • 服务器,有公网IP的云主机(下文假定IP为 10.10.10.10),系统 Centos 7,需安装Nginx 直接安装宝塔面板方便

  • 用到的软件:Mac的终端(远程ssh连接服务器,Win下推荐使用XShell)、FileZilla(SFTP客户端编辑服务器上的文件,也可直接用命令行或服务器管理面板,跨平台,非必须)、浏览器

  • 黑群晖配合frp无公网IP实现远程连接

  • 以上安装了宝塔面板,以便于安装架站,各开放端口


  • 三、开始操作

  • 简单来说就是4步:

  • 1. 在服务器中运行 frp 服务端 'frps' 与相关配置

  • 2. 在群晖系统中运行 frp 客户端 'frpc' 与相关配置

  • 3. 解析2个域名到服务器

  • 4. 在服务器添加2个网站,转发端口

  • 那么现在展开来说:

  • 1. 在服务器中运行 frp 服务端 'frps' 与相关配置

  • 1.1 首先远程连接到服务器,打开终端输入:(10.10.10.10为服务器IP,请更换为自己服务器的IP)

  • ssh root@10.10.10.10

  • 输入密码,密码为不可见,回车后可登陆

  • 黑群晖配合frp无公网IP实现远程连接

  • 1.2 下载 frp 项目

  • cd ~

    mkdir frp

    curl -O https://github.com/fatedier/frp/releases/download/v0.26.0/frp_0.26.0_linux_amd64.tar.gz

    tar -xzf frp_0.26.0_linux_amd64.tar.gz

  • 黑群晖配合frp无公网IP实现远程连接

  • 这是解压完成后产生的文件图


解释一下:

第一行是进入用户主目录,第二行是创建 frp 文件夹,第三步是下载 frp 项目文件,第四步是解压 frp 项目文件。下载地址,进去对应选择自己的服务器环境,一般云主机就选我这个

1.3 配置 frp 服务端

cd frp_0.26.0_linux_amd64

vi ./frps.ini

按 'i' 进入编辑模式,复制粘贴(纯手打备注)

# frps.ini

[common]

bind_port = 7000 # frp 客户端连接端口

vhost_http_port = 7008 # http 协议端口

vhost_https_port = 7010 # https 协议端口

dashboard_port = 7001 # 管理面板端口

dashboard_user = admin # 管理面板用户名

dashboard_pwd = 123456 # 管理面板密码

按 Esc 退出编辑模式,输入 ':wq' 回车进行保存

黑群晖配合frp无公网IP实现远程连接

编辑frps.ini文件

1.4 运行 frp 服务端

./frps -c ./frps.ini

此时就已经在服务器中运行 frp 服务端 frps 了,可以在浏览器中输入 http://10.10.10.10:7001 即可访问到 frp 管理面板了

黑群晖配合frp无公网IP实现远程连接

这是frp管理面板


1.5 安全配置

如果此时访问不了管理面板,很大概率是因为端口没开的原因,可以使用端口扫描工具检测

黑群晖配合frp无公网IP实现远程连接

以上端口未开放


楼主使用的阿里云轻量服务器,需要在阿里云先开放端口(阿里云或腾讯云之类的主流云主机都需要先配置端口)

黑群晖配合frp无公网IP实现远程连接

阿里云云服务器防火墙配置



为了方便使用,直接开放了7000到7010端口,另外9025到9040好像是Video Station套件需要的端口,开了目前没有碰到有连接。需要哪些端口一起开了,

另外楼主用的 Centos,也需要开放系统防火墙,由于安装了BT面板,直接在BT面板进行操作

黑群晖配合frp无公网IP实现远程连接

系统放行frp端口

此时再进行端口扫描,端口就算开放也需要有相应的服务监听才会显示已开放,显示关闭的是没有服务启用这些端口(此处应该输入7000-7010)

黑群晖配合frp无公网IP实现远程连接

以上端口已开放

1.6 开启自启

vi /etc/rc.d/rc.local

按 'i' 进入编辑模式,在文件最后添加

cd /root/frp/frp_0.26.0_linux_amd64 && ./frps -c ./frps.ini

按 Esc 退出编辑模式,输入 ':wq' 回车进行保存

需要添加执行权限

chmod +x /etc/rc.d/rc.local



2. 在群晖系统中运行 frp 客户端 'frpc' 与相关配置

2.1 准备 frp 客户端配置文件

进入群晖,打开文本编辑器,新建文件,复制粘贴保存为 frpc.ini(纯手打备注)

# frpc.ini

[common]

server_addr = 10.10.10.10 # 服务端IP

server_port = 7000 # 服务端端口

[nas.xxx.com]

type = http # 类型

local_ip = 127.0.0.1 # 本地IP

local_port = 5000 # 本地端口

custom_domains = nas.xxx.com # 监听域名

[nas-photo.xxx.com]

type = http # 类型

local_ip = 127.0.0.1 # 本地IP

local_port = 80 # 本地端口

custom_domains = nas-photo.xxx.com # 监听域名

[DSM, Download Station, Audio Station, Video Station]

type = tcp # 类型

local_ip = 127.0.0.1 # 本地IP

local_port = 5000 # 本地端口

remote_port = 5000 # 远程端口

#[range:Video Station] # range表示范围

#type = tcp # 类型

#local_ip = 127.0.0.1 # 本地IP

#local_port = 9025-9040 # 本地端口

#remote_port = 9025-9040 # 远程端口

黑群晖配合frp无公网IP实现远程连接

frp客户端配置


保存到用户主目录 /home/frpc.ini


黑群晖配合frp无公网IP实现远程连接

以上是用户主目录


2.2 安装 Docker 套件,注册表搜索 frp 下载

黑群晖配合frp无公网IP实现远程连接

docker套件安装


黑群晖配合frp无公网IP实现远程连接

注册表搜索frp

双击下载,防止时间有效性,选择和服务端一致版本

黑群晖配合frp无公网IP实现远程连接

要保持与服务端版本一致



2.3 创建 Docker frpc容器

下载好后将在映像中出现,双击新增容器进行配置

黑群晖配合frp无公网IP实现远程连接

创建容器


黑群晖配合frp无公网IP实现远程连接

配置权限


点击高级设置

黑群晖配合frp无公网IP实现远程连接

配置自启动


黑群晖配合frp无公网IP实现远程连接

配置文件


黑群晖配合frp无公网IP实现远程连接

配置网络


黑群晖配合frp无公网IP实现远程连接



2.4 IP访问

此时如果将上面 frp 客户端配置中的域名换成IP那么其实已经可以访问了,访问地址应该是:http://10.10.10.10:7008,不想继续优化的到这里就可以远程访问黑群晖了,不过 Photo Station这个套件有点特殊,暂时还不能访问,有需要请继续看下面


3. 解析2个域名到服务器

3.1 解析域名

解析 xxx.com 域名添加 nas 与 nas-photo 记录,到 10.10.10.10

黑群晖配合frp无公网IP实现远程连接

域名解析

3.2 域名访问

黑群晖配合frp无公网IP实现远程连接

frp管理面板tcp协议


黑群晖配合frp无公网IP实现远程连接

管理面板http协议


此时已经可以使用 http://nas.xxx.com:7008 进行访问群晖的 web 管理

黑群晖配合frp无公网IP实现远程连接

开放了 5000 端口的话也能使用手机上的DS套件应用连接了,使用 5000 端口的套件应用有:DS audio、DS cam、DS file、DS finder、DS video、DS download。由于这些套件使用的是TCP协议,所以在手机APP上无需加端口号

黑群晖配合frp无公网IP实现远程连接

dsvideo手机应用

黑群晖配合frp无公网IP实现远程连接


3.3 访问 Photo Station 套件

这个套件有点特殊,他用的是HTTP协议,并且是80端口,众所周知,80端口是HTTP协议默认端口,所以这个套件就算你有公网IP也不能访问,除非你是专线能开80端口的,但是应该也不会给NAS家用

黑群晖配合frp无公网IP实现远程连接

点击套件跳到了默认80端口,不显示端口则为默认端口

黑群晖配合frp无公网IP实现远程连接

使用域名

使用域名则会出现指定的页面不存在,那是因为 nas.xxx.com 并没有监听80端口,手动将其改成 nas-photo.xxx.com:7008 则可以进行访问了

黑群晖配合frp无公网IP实现远程连接

手动更改地址

所以此时我们需要在 Photo Station 里进行一下设置

黑群晖配合frp无公网IP实现远程连接

设置Photo Station 访问地址

这时候再回到 web 管理页面刷新,就会跳转到我们设定的地址了。手机版应用其实已经可以直接访问了,上面的设置针对的是 web 管理(PC端)

黑群晖配合frp无公网IP实现远程连接

4. 在服务器添加2个网站,转发端口

4.1 创建站点

黑群晖配合frp无公网IP实现远程连接

创建站点

创建相应的两个站点,nas.xxx.com 和 nas-photo.xxx.com,里面的内容都不重要

4.2 转发端口

主要是站点的配置,将所有的连接都转发到7008端口,这样直接访问80端口其实就是服务器帮我们请求到7008端口。记得将其它什么压缩,禁止css,js访问的配置都删除,不然会出现各种问题,最好是 location 就只有这一个配置

location / {

proxy_pass http://nas.xxx.com:7008;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}


黑群晖配合frp无公网IP实现远程连接

转发配置

4.3 域名访问

此时就可以直接使用 http://nas.xxx.com 进行访问了,记得将 Photo Station 中的配置进行更改(直接将端口号删除)

黑群晖配合frp无公网IP实现远程连接

无须端口号即可访问

黑群晖配合frp无公网IP实现远程连接

ds photo







版权声明

本站部份资源来自本人原创、以及网络收集,经过测试整理,版权争议与本站无关。
所有资源仅限用于学习和测试研究,不得用于商业或者非法用途,否则、一切后果请用户自负。
网络技术更新极快,我们不保证资源的长久可用性,下载前请仔细查看发布日期。

分享:

扫一扫在手机阅读、分享本文