黑群晖配合 frp 无公网IP实现远程连接(图文并茂)

2019-04-23 11:27:20 118点赞 1584收藏 79评论

创作立场声明:全部内容都为自己手打并测试真实有效,转载请声明来源,谢谢

一、初始需求

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

(使用域名访问)(使用域名访问)

(使用域名访问)(使用域名访问)

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


二、环境准备

  • 黑群晖主机,系统6.1.7


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

  • 服务器,有公网IP的云主机(下文假定IP为 10.10.10.10),系统 Centos 7,需安装Nginx


  • 阅读 frp 项目文档,GitHub链接

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

    、没了黑群晖配合 frp 无公网IP实现远程连接(图文并茂)

(群晖系统6.1.7)(群晖系统6.1.7)

(用于测试的服务器,装了BT管理面板)(用于测试的服务器,装了BT管理面板)



三、开始操作

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

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

(Mac终端,远程连接服务器)(Mac终端,远程连接服务器)

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 文件夹,第三步是下载 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" 回车进行保存

(编辑 frps.ini 文件)(编辑 frps.ini 文件)

1.4 运行 frp 服务端

./frps -c ./frps.ini

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

(frp 管理面板)(frp 管理面板)

1.5 安全配置

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

(端口未开放)(端口未开放)

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

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

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

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

(系统放行 frp 端口)(系统放行 frp 端口)

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

(端口已开放)(端口已开放)

1.6 开启自启

vi /etc/rc.d/rc.local

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

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

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

需要添加执行权限黑群晖配合 frp 无公网IP实现远程连接(图文并茂)

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 客户端配置)(frp 客户端配置)

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

(用户主目录)(用户主目录)

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

(Docker 套件)(Docker 套件)

(注册表搜索)(注册表搜索)

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

(保持与服务端版本一致)(保持与服务端版本一致)

2.3 创建 Docker frpc容器

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

(创建容器)(创建容器)

(配置权限)(配置权限)

点击高级设置

(配置自启)(配置自启)

(配置文件)(配置文件)

(配置网络)(配置网络)

(已启动)(已启动)

2.4 IP访问

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


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

3.1 解析域名

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

(域名解析)(域名解析)

3.2 域名访问

(frp 管理面板 TCP协议)(frp 管理面板 TCP协议)

(frp 管理面板 HTTP协议)(frp 管理面板 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上无需加端口号

(DS Video 套件手机应用)(DS Video 套件手机应用)

(DS Video 套件手机应用)(DS Video 套件手机应用)

3.3 访问 Photo Station 套件

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

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

(使用域名)(使用域名)

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

(手动更改地址)(手动更改地址)

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

(设置 Photo Station 访问地址)(设置 Photo Station 访问地址)

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

(DS Photo)(DS Photo)


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

4.1 创建站点

(创建站点)(创建站点)

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

}

(转发配置)(转发配置)

4.3 域名访问

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

(无需端口号即可访问)(无需端口号即可访问)

(DS Photo)(DS Photo)


总结

这一次折腾下来还挺花时间,第一个是在ddns那花了很长时间可惜最后不能用,我还都配置好了,进了电信的猫配置好。后面则是 frp 官方文档给出的例子太简单了,基本上都是自己尝试出来的。还是需要不少基础知识,比如这个到哪里,那个到哪里,过程了解个大概,就可以大胆尝试了。黑群晖配合 frp 无公网IP实现远程连接(图文并茂)

使用这个速度呢应该是服务器或内网的上传宽带瓶颈,谁低则是最高速度,我服务器是5M,内网是20M下行2M上行(可恶的宿舍,最高只能拉20M电信,光纤都不进宿舍的),所以最高速就只能到300多k了,看个小点的电影还行,图片也还行。因为反正网络慢,我内网还用的是两个路由器WIFI桥接,这样就可以不用拉网线

最后说点题外话,2年前在张大妈的洗脑下,本来只想买个硬盘,硬生生自己配了个黑群晖黑群晖配合 frp 无公网IP实现远程连接(图文并茂) ,去年年底搬宿舍的时候不知道为什么硬盘都坏了,2*2T做的raid备份,居然差不多时间一起坏了,同时还坏了一台电脑,也不知道什么运气,后来淘宝找人恢复了照片数据(其他800多G别的东西懒的复制就不要了),去京东换了2块新的硬盘,重新装系统,复制数据,真累,只想说硬件有价,数据无价,当时非常后悔为什么一开始没买个白群晖黑群晖配合 frp 无公网IP实现远程连接(图文并茂)

(NAS 使用WIFI桥接)(NAS 使用WIFI桥接)

(DS 移动端APP)(DS 移动端APP)


展开 收起

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

1849元起

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

2499元起

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2599元起

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

3499元起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2849元起

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

1799元起

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

2799元起

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

5899元起

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

1999元起

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

2499元起

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

4299元起

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

3299元起

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

2190.84元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

1341.01元起

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

1299元起
79评论

  • 精彩
  • 最新
  • 楼主这个文章写的很详细,但是要告诉各位一件事,与其折腾这些,不如买个华硕路由器加电信宽带,拨号动态ip配合9块钱一年的阿里云域名就能配置好nas访问。
    这个教程适合移动宽带等不能获取公网ip的用户,要知道买服务器也是个成本,要么国外的访问慢,要么国内的限流量,价格和耗费时间完全足够去买电信宽带了。

    校验提示文案

    提交
    我就是电信宽带,小地方很电信装宽带的很奇葩呀,什么都限制,能交钱解决当然最好了

    校验提示文案

    提交
    我小青岛的电信是大内网。。100.

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 谁能告诉我这么麻烦设置,和路由器作个端口映射相比,有什么优点?

    校验提示文案

    提交
    这是对没有公网ip的人用的,缺点受frp远程服务器速度限制。有公网ip直接就ddns了。

    校验提示文案

    提交
    像移动这种不给公网IP的话路由怎么搞都无法外网域名访问

    校验提示文案

    提交
    还有5条回复
    收起所有回复
  • 我的老毛子路由器上,type只能用tcp 改成htt就连不上

    校验提示文案

    提交
    这个就不清楚了,tcp还能连路由吗 [皱眉] [皱眉]

    校验提示文案

    提交
    收起所有回复
  • vultr上的主机,怎么开发端口,cento 7

    校验提示文案

    提交
    这个好像平台没有限,你检查一下系统防火墙

    校验提示文案

    提交
    vultr的话去搜一下iptables的用法

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • frpc远程ssh修改配置重启就断开了,目前写了个脚本定时检测启动,不知道有没有更好的办法。

    校验提示文案

    提交
    这个。。。再做个心跳检测吧 [喜极而泣]

    校验提示文案

    提交
    收起所有回复
  • 有点复杂。

    校验提示文案

    提交
    懂原理就简单了,跟着做其实很快完成

    校验提示文案

    提交
    收起所有回复
  • 请问一下,这个和ssh映射到阿里云上有啥区别 [口水]

    校验提示文案

    提交
    差不多的感觉

    校验提示文案

    提交
    收起所有回复
  • 不用假设服务,frp免费服务器一大堆,稳定的也很多,还带二级域名,直接用很香!

    校验提示文案

    提交
    frp不是难在服务端,貌似客户端难一点,因为本身有服务器就自己来了

    校验提示文案

    提交
    客户端服务端都不难啊……配置文件几个参数的事儿。还有一种最安全的架构,借助公开免费的frp服务器,自己用客户端做连接,再做下层frp级联,省去公网IP,按照你的文章还是需要一台公网IP的云主机的呀。

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 私有云还是别连公网了,在家用用就好了

    校验提示文案

    提交
    大多数情况确实是这样

    校验提示文案

    提交
    收起所有回复
  • proxy-go 了解一下,比楼主你的简单的多。

    校验提示文案

    提交
    好,有空去了解一下

    校验提示文案

    提交
    收起所有回复
  • frp影响硬盘休眠 [观察] 搞了frp之后硬盘就不休眠了,另外就是你试试在外网上传个文件看看是不是百分百失败。。。frp我用了挺久了,算是还行,但有公网ip的话还是直接DDNS配合路由搞端口转发更合适。。。

    校验提示文案

    提交
    不会啊,我上传完全可以,ddns配合路由器当然好,省掉再转发一层。。

    校验提示文案

    提交
    收起所有回复
  • 首先要一台公网服务器,go die [倒地]

    校验提示文案

    提交
    对呀,有服务器可以做很多事,比如。。。挂个网站 [狂汗] [狂汗]

    校验提示文案

    提交
    收起所有回复
  • 看了这么久的黑群晖,就是下不了手,怎么办。在线等?

    校验提示文案

    提交
    白的,是真心推荐,不要折腾

    校验提示文案

    提交
    有些命令需要在黑框框下输入,但这个黑框框在哪里啊?能否告知

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 大兄弟,牛掰,佩服,我做前端出身的,对于这种工作只能膜拜……最终买了花生壳的内网穿透服务,不过最近发现也不能用了……

    校验提示文案

    提交
    花生壳有点卡,原来也用过,后来放弃了

    校验提示文案

    提交
    花生壳6块钱永久1g流量,速度凑合

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 还没细看,想问作者。我有一个域名(但已建网站),也买了阿里云的服务器(最便宜那种套餐),是否根据教程就能实现远程访问。远程下载时会有流量限制吗?

    校验提示文案

    提交
    可以的,流量限制主要看谁是最低木板,比如你家网络如果上行是10M,服务器是3M,那么外网访问最大速度为3M,如果上行是2M,那么最大是2M,当然第一种情况可以使用穿透把瓶颈去到家庭网络

    校验提示文案

    提交
    收起所有回复
  • 写的很详细,我好奇的是:这么折腾,这个装备的价值在哪里?追求安全或安全感吗?
    那直接租用阿里或华为的服务器,其安全系数是不是比本地硬盘更高?我是这么认为的,本地硬盘的折损和意外风险还是远远大于巨头的云服务器的。

    校验提示文案

    提交
    瓶颈在于网络,外网上行速度太小,你要考虑大部分人上行才2M,下行也不是人人100M,但是内网却基本上最少能达到10M,所以不担担能存照片或文档之类,还能当家庭影音中心

    校验提示文案

    提交
    收起所有回复
  • 请教下楼主,黑裙里面的配置文件也用“frp_0.26.0_linux_amd64.tar.gz”这个版本吗? 看到一些文章里面说黑裙端要用“frp_0.26.0_linux_386.tar.gz”,能否帮忙确认?

    校验提示文案

    提交
    可以的,不过用docker不是更简单?

    校验提示文案

    提交
    收起所有回复
  • 麻烦问下楼主,没有域名是否可以!有服务器有ip地址

    校验提示文案

    提交
    可以的,用ip代替域名就行

    校验提示文案

    提交
    收起所有回复
  • 请问“开放了 5000 端口的话也能使用手机上的DS套件应用连接了,使用 5000 端口的套件应用有:DS audio、DS cam、DS file、DS finder、DS video、DS download。由于这些套件使用的是TCP协议,所以在手机APP上无需加端口号”是指将服务器段你这边写的7008端口修改为5000端口吗?

    校验提示文案

    提交
    由于APP默认是直接用5000端口,所以如果你在服务器也是转发的5000端口,那么就可以不用填后面的端口号

    校验提示文案

    提交
    收起所有回复
  • Parse conf error: invalid server_port
    连不上。。

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
1.5K
扫一下,分享更方便,购买更轻松