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

 happyzxb   2019-05-13 22:30   7057 人阅读  0 条评论

一、初始需求

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

111.jpg

111.jpg

所有照片都放在群晖里,希望在外面也能访问,宿舍没有公网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客户端编辑服务器上的文件,也可直接用命令行或服务器管理面板,跨平台,非必须)、浏览器

  • 111.jpg

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


  • 三、开始操作

  • 简单来说就是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

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

  • 111.jpg

  • 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

  • 111.jpg

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


解释一下:

第一行是进入用户主目录,第二行是创建 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' 回车进行保存

111.jpg

编辑frps.ini文件

1.4 运行 frp 服务端

./frps -c ./frps.ini

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

111.jpg

这是frp管理面板


1.5 安全配置

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

111.jpg

以上端口未开放


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

111.jpg

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



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

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

111.jpg

系统放行frp端口

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

111.jpg

以上端口已开放

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 # 远程端口

111.jpg

frp客户端配置


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


111.jpg

以上是用户主目录


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

111.jpg

docker套件安装


111.jpg

注册表搜索frp

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

111.jpg

要保持与服务端版本一致



2.3 创建 Docker frpc容器

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

111.jpg

创建容器


111.jpg

配置权限


点击高级设置

111.jpg

配置自启动


111.jpg

配置文件


111.jpg

配置网络


111.jpg



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

111.jpg

域名解析

3.2 域名访问

111.jpg

frp管理面板tcp协议


111.jpg

管理面板http协议


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

111.jpg

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

111.jpg

dsvideo手机应用

111.jpg


3.3 访问 Photo Station 套件

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

111.jpg

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

111.jpg

使用域名

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

111.jpg

手动更改地址

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

111.jpg

设置Photo Station 访问地址

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

111.jpg

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

4.1 创建站点

111.jpg

创建站点

创建相应的两个站点,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;

}


111.jpg

转发配置

4.3 域名访问

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

111.jpg

无须端口号即可访问

111.jpg

ds photo







本文地址:https://zxbblog.com/?id=98
版权声明:本文为原创文章,版权归 happyzxb 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?