700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【内网穿透Nas】基于Frp实现群晖的远程访问(ssh DSM DS file WebDAV Server emby)

【内网穿透Nas】基于Frp实现群晖的远程访问(ssh DSM DS file WebDAV Server emby)

时间:2018-08-24 08:28:11

相关推荐

【内网穿透Nas】基于Frp实现群晖的远程访问(ssh DSM DS file WebDAV Server emby)

内网穿透系列文章索引:

内网穿透基本原理【内网穿透服务器】远程访问【内网穿透服务器】远程(smb)文件共享【内网穿透服务器】远程FTP服务器共享【内网穿透路由器】远程访问后台【内网穿透硬盘】远程访问【内网穿透计算机】远程访问【内网穿透开机】VNC方式【内网穿透开机】udp广播方式【内网穿透开机】路由器广播方式【内网穿透监控】远程访问【内网穿透Nas】远程访问(本文)

内网穿透话题 实际上已经写过很多了,从服务器,到路由器,从硬盘,到计算机、自制监控,穿透应用场景基本覆盖了包括组网、存储、下载、开机在内的各大情形,基本上能够替代Nas的大部份功能。但是没有Nas穿透的系列始终是不完整的,今天将以群晖系统为例,通过Frp,实现Nas各大服务(包括但不限于ssh服务、DSM服务、移动端DS file、WebDAV Server磁盘映射、emby)的远程访问。

首先梳理出公网想要访问的服务,自定义清楚访问端口:

【ssh】(本地默认端口:22)自定义访问端口:2222【DSM服务】(本地默认端口:5000-http 5001-https)自定义访问端口:443【DS file】(本地默认端口:5000-http 5001-https)自定义访问端口:5001【WebDAV Server】(本地默认端口:5005-http 5006-https)自定义访问端口:5007【https】自定义访问端口:5005【http】#用https的5007访问WebDAV Server的https的5006端口;用https的5005访问WebDAV Server的http的5005端口【emby】(本地默认端口:80096-http 不支持-https)自定义访问端口:80096【https双重反代以访问http】【举一反三:http项目】(本地默认端口:x)自定义访问端口:x【通过https的x端口访问http的x端口】

其次,检查需要提前准备的材料:
一台公网服务器(作为FRPS,实现内网穿透);Nas一台(作为FRPS)域名解析至公网服务器为域名申请证书,并上传至Nas

根据访问需求,我们需要用到443端口即https服务,因此域名需要申请到https证书。这里以腾讯云为例,我们申请一个免费ssl证书。

证书申请完毕后,将证书导入nas中,“控制面板”——“安全性”——“证书”——“新增”——“添加新证书”——“导入证书”同时设置为“默认证书”,将下载下来的证书Apache目录内三项分别上传

确认后点击配置,确保全部成为默认证书。

在完成上述准备工作后,可以正式开始了。

一、穿透配置

(1)公网服务器端配置

1. 防火墙开放相应端口:

防火墙开放自定义访问端口以及客户端与服务端进行通信的7000端口、控制台7500端口。

2. 服务端(frps)配置:

服务端(frps)和客户端(frpc)需要相同版本,因此在部署前,需要慎重决定下载的版本号。这里我们用0.35.1这一版本进行部署。

wget /fatedier/frp/releases/download/v0.35.1/frp_0.35.1_linux_amd64.tar.gztar -zxvf frp_0.35.1_linux_amd64.tar.gz #解压缩:tar xvf 文件名cd frp_0.35.1_linux_amd64#进入解压目录#修改frps.ini文件sudo vim ./frps.ini添加以下内容:

[common] bind_port = 7000 # 客户端与服务端进行通信的端口,即frp服务端口,需与客户端server_port一致dashboard_port = 7500 # 控制台端口 通过 Dashboard 可以方便的查看 FRP 的状态以及代理统计信息展示 通过 http://[server_addr]:7500 访问 Dashboard 界面,用户名密码默认都为 admin。

#后台保持启动 需要在frp_0.35.1_linux_amd64目录下操作nohup ./frps -c ./frps.ini &

返回:nohup: ignoring input and appending output to ‘nohup.out’ 代表执行成功,ctrl+c关闭即可;用ps -ef 会在进程中看见frp工作进程。

查询进程与结束进程命令

ps -ef |grep frpc

kill -9 [进程号]

设置为开机自动启动

sudo vi /lib/systemd/system/frps.service

[Unit]Description=frps daemonAfter=syslog.target network.targetWants=network.target[Service]Type=simpleExecStart=/root/frp_0.35.1_linux_amd64/frps -c /root/frp_0.35.1_linux_amd64/frps.iniRestart= alwaysRestartSec=1min[Install]WantedBy=multi-user.target

ExecStart中要配置成自己的路径#启动frpssystemctl start frps#将frps设置为开机启动systemctl enable frps

sudo vi /lib/systemd/system/frps.service 实际上lib或者etc目录皆可。

(2)Nas客户端配置

创建frpc.ini文件添加以下内容(后文会详细说明):

[common]server_addr = server_port = 7000[ssh]type = tcplocal_ip = 必须填内网地址,不能填127.0.0.1local_port = 22remote_port = 2222[dsm]type = tcplocal_ip = 192.168.1.208(内网地址)local_port = 5001remote_port = 443[ds_file]type = tcplocal_ip = 192.168.1.208(内网地址)local_port = 5001remote_port = 5001[https_webdav]type = tcplocal_ip = 192.168.1.208(内网地址)local_port = 5006remote_port = 5007[http_webdav]type = tcplocal_ip = 192.168.1.208(内网地址)local_port = 5004remote_port = 5005[emby]type = tcplocal_ip = 192.168.1.208(内网地址)local_port = 8097remote_port = 8096

将配置文件上传至nas自定义目录上。

用docker下载与服务端版本一致(0.35.1)的frpc。“docker”——“注册表”——“frpc”——选择合适版本安装

下载完成后——“映像”——双击安装——自定义名称——高级设置——卷——导入frpc.ini,装载路径:/etc/frp/frpc.ini ——应用——“容器”——“frpc”——开启

“容器”——“frpc”——“日志”,查看代理是否开启。

设置容器开机自启动:

1.ssh登陆

2. sudo -i 切换root用户

3.使用docker ps命令,查看容器id

4.使用命令:docker update --restart=always 容器id​​​​

二、ssh远程访问

【终端机和 SNMP】>【启动ssh功能】>勾选

【用户账号】>【开启admin】

通过内网ip+22端口,admin用户身份ssh登陆,sudo -i提权至root

进行穿透后:对应frpc文档中:

[ssh]type = tcplocal_ip = 192.168.1.208local_port = 22remote_port = 2222

通过公网ip+2222端口,admin用户身份ssh登陆,sudo -i提权至root

三、DSM远程访问

【网络】>【DSM设置】>勾选“将HTTP连接自动重新导向到HTTPS”

进行穿透后:对应frpc文档中:

[dsm]type = tcplocal_ip = 192.168.1.208local_port = 5001remote_port = 443

通过https://域名形式直接访问,测试:

如果出现:

检查访问是否未带上https头。

四、手机DS file远程访问

DS file远程访问要求格式为域名+端口的形式,当前nas的5001端口穿透为了服务器的443端口,由于443是https的默认端口,正常登陆将隐藏443的显示,这将导致DS file无法实现远程访问。因此我们可以为nas的5001端口再穿透一个服务器端口,以解决443端口被隐藏的问题。

具体而言,对应frpc文档中:

[ds_file]type = tcplocal_ip = 192.168.1.208local_port = 5001remote_port = 5001

保存后重启【frpc】docker,服务器开放5001端口。

五、WebDAV Server远程访问

远程磁盘映射至本地,能够远程通过磁盘访问的方式访问nas,方便文件的管理。首先前往WebDAV Server套件开启https端口5006

其次修改frpc.ini(对应frpc文档中[https_webdav]),新增穿透;重启docker;服务器放行remote_port端口

[https_webdav]type = tcplocal_ip = 192.168.1.208local_port = 5006remote_port = 5007

开启admin账号,安装NetDrive2,用服务器ip+5007的admin权限连接WebDAV,并将其映射至驱动。

六、http项目的远程访问

Jellyfin、emby等媒体项目强制http协议访问,双重反向代理可以解决这一问题,这里以免费套件emby远程访问为例。

修改frpc.ini(对应frpc文档中[emby]),新增穿透;重启docker;服务器放行remote_port端口

[emby]type = tcplocal_ip = 192.168.1.208local_port = 8097remote_port = 8096

【应用程序门户】>【反向代理服务器】>“如图填写”。

这意味着在通过https协议采用“域名+8096端口”的方式访问https协议下nas的8097端口后,nas中的反向代理规则又将https协议下nas的8097这一端口转为http协议下nas的8096端口,换言之,即通过https协议采用“域名+8096端口”的方式最终访问的是http协议下nas的8096端口内容。

七、关于nas迁移

迁移网络环境后,服务端无需修改,nas端只需在固定内网ip后,修改frpc.ini文件中local_ip为新局域网下内网ip,并重启docker即可。

至此,本文也就进入尾声了。希望本文能够起到抛砖引玉之效,也欢迎大家的批评交流。新年即将到来,在此也祝各位新年快乐,健康如意!

如果您有任何疑问或者好的建议,期待你的留言、评论与关注!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。