From c33afabee2c1c9fd592110397f10fcc0ff3d560c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BA=9A=E6=A5=A0?= <1206054578@qq.com> Date: Mon, 26 Feb 2024 13:48:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=87=E7=AB=A0=E5=A4=96?= =?UTF-8?q?=E7=BD=91=E8=AE=BF=E9=97=AENAS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/vcs.xml | 6 + source/_posts/nasbase/img.png | Bin 10941 -> 0 bytes source/_posts/nasbase/外网访问NAS.md | 313 ++++++++++++++++++++++- 3 files changed, 316 insertions(+), 3 deletions(-) create mode 100644 .idea/vcs.xml delete mode 100644 source/_posts/nasbase/img.png diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/source/_posts/nasbase/img.png b/source/_posts/nasbase/img.png deleted file mode 100644 index 0b52ea2bb4f71c1c832353f45692b43a5e3a3ffe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10941 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 diff --git a/source/_posts/nasbase/外网访问NAS.md b/source/_posts/nasbase/外网访问NAS.md index defd23c..971272e 100644 --- a/source/_posts/nasbase/外网访问NAS.md +++ b/source/_posts/nasbase/外网访问NAS.md @@ -1,11 +1,318 @@ --- title: 外网访问NAS tags: - - 网络 - - NAS技术 +- 网络 +- NAS技术 categories: NAS基础 abbrlink: 4218199689 -date: 2023-08-22 11:02:22 +date: 2024-02-22 11:02:22 keywords: description: --- +> 很多朋友买回NAS后很关心的一个问题就是如何在外网访问。这里我把自己认为比较好的方法罗列出来并一一实现,我们可以根据自己的实际情况选择使用。 + +> 注:在此不考虑quickconnect这种nas自带服务的方式。 + +# 外网访问方法汇总 + +如图,汇总了我目前认为在外网访问家中NAS比较好用的方法,首推的方法当然还是开通公网IP。 + +开通公网IP之后启用DDNS,然后我们就可以直接使用路由器端口映射到NAS,或者使用Traefik、npm代理都可以。 + +如果实在无法开通公网IP的话,也可以使用frp进行内网穿透,内网穿透需要有一个拥有公网IP的服务器做一个跳板,有个人服务器的话最好,没有的话,可以使用第三方的免费frp服务。 + +下面我对这些方法逐个进行介绍。 + + + +# 可以开通公网IP + +首先介绍有公网IP的情况,有公网IP的话,需要配置下DDNS,我在之前[NAS使用DDNS](https://www.dreamlyn.cn/28082.html)那篇文章有过相关的介绍,不清楚怎么配置DDNS的可以去参考下。 + +我在这里假设我们的DDNS域名是*.deamlyn.cn,也就是dreamlyn.cn的所有子域名都指向家中的网络。 + +## 路由器端口映射到NAS +配置好DDNS后,外网访问NAS的最简单的办法就是直接使用路由器端口映射到NAS。 + +我以我家的小米路由器为例进行介绍,在路由器界面点击高级设置,然后选择端口转发,在里面添加一条规则,其中名字随便写,这里输入NAS,协议选TCP,端口输入5000,内部IP地址就输入NAS的IP地址,我家的是192.168.31.206,内部端口输入5000,点击添加就可以了。 + + + +之后我们就可以使用home.dreamlyn.cn:5000访问NAS 了。 + +这种方法固然简单,但是如果在NAS上面安装了很多的服务,每个服务都有不同的端口号,那么我们很容易记错不同服务的端口,所以比较好的方式是使用反向代理,我们只用路由器对traefik或者npm等反向代理服务进行端口映射,而对其他服务则使用traefik等进行反向代理即可。 + +这样的话,对于不同的服务,我们可以使用不同的子域名进行访问。比如访问nas,就使用nas.dreamlyn.cn,访问portainer,就使用portainer.dreamlyn.cn. + +## 路由器端口映射Traefik +traefik的安装我在[NAS中安装Traefik](https://www.dreamlyn.cn/2636364671.html)这篇文章进行了详细的介绍,这里就不再赘述,我们接着它直接介绍具体使用方式。在nas中的容器相关目录下,找到traefik/conf.d,在里面添加文件nas.yml文件。 + + + +文件内容如下: + +``` +http: + services: + nas: + loadBalancer: + servers: + - url: "http://192.168.31.206:5000" + routers: + nas: + entrypoints: web + service: nas + rule: Host(`nas.dreamlyn.cn`) +``` + +这段代码中services下面的nas表示这个服务名为nas,下面的url表示反向代理的地址。 + +routers下面的nas表示有个名为nas的路由,入口点为web,也就是80端口,路由对应的服务为nas,规则是nas.dreamlyn.cn,这样我们使用nas.dreamlyn.cn访问时,就可以了。 + +这里我们顺便看一眼,我在路由器中端口映射的时候 ,使用外网的880映射到了,traefik的80端口。 + +然后我们不需要重启traefik,就可以用nas.dreamlyn.cn:880来访问nas了。 + +## 路由器端口映射npm +npm是nginx proxy manager的简称,如果在nas里的服务很少用docker安装的话,也推荐使用。这里我介绍下具体的安装和使用方法。 + +在nas上合适的位置创建目录,并创建如下文件。 + + + +其中docker-compose文件如下: +``` +version: '3' +services: + app: + image: 'jc21/nginx-proxy-manager:latest' + restart: unless-stopped + ports: + - '680:80' + - '681:81' + - '6443:443' + volumes: + - ./data:/data # 把数据存放在在当前文件夹下的 data 文件夹中 + - ./letsencrypt:/etc/letsencrypt +networks: + default: + external: + name: docker_default +``` + +这里介绍下npm的几个端口,80和443分别为npm接收的http和https请求,我们将他们映射到NAS的680和6443端口。 + +81为npm的可视化界面,映射为681端口。 + +然后在npm目录下执行如下命令: +``` +# 创建docker网络,如果已经有docker_default网络,则不需要。 +docker network create -d bridge --attachable=true docker_default +# 启动npm +docker-compose up -d +# 查看启动日志 +docker-compose logs -f +``` +启动没有问题的话,就可以通过192.168.31.206:681来进入npm的管理界面。 + +登陆的初始账号密码是admin@example.com和changeme。 + +我们输入正确的账号密码登录。 + +首次登陆会提示我们修改账号密码,我们根据自己的情况修改下。 + +之后点击proxy hosts –> Add Proxy Host。 + + + + +其中domain names填写访问的域名,这里输入nas.dreamlyn.cn;Scheme 输入http;Forward Hostname / IP 输入192.168.31.206;Forward Port 输入 5000。 + +点击 save就可以了. + + + +下面我们还需要在路由器中为npm开通端口映射。 + +我以我家小米路由器为例进行介绍,打开路由器管理界面,找到端口转发,点击添加规则 + +名称这里我填npm;协议选择TCP;外部端口填680;内部IP地址填192.168.31.206,也就是npm所在NAS主机的IP地址;内部端口填写npm的680端口;点击添加。 + +然后我们就可以通过nas.dreamlyn.cn:680来访问nas了。 + + + +# 无法开通公网IP + +在某些特殊情况下,我们无法开通公网IP,这时我们就需要使用一些折中的办法来访问家中的NAS了,下面分别介绍使用个人CentOS服务器和使用免费frp服务两种方式来实现。 + +## 在Centos上搭建frp服务 +当我们有一台暴漏公网IP的Centos服务器时,可以在服务器端安装frps服务。 + +### 下载frp并解压 + +到GitHub查看最新版本:https://github.com/fatedier/frp/releases + +如果访问不了github,我在这儿也给出0.45.0版[下载地址](https://template-mine.oss-cn-beijing.aliyuncs.com/NAS%E4%B8%8B%E8%BD%BD/%E5%8D%9A%E5%AE%A2/frp_0.45.0_linux_amd64.tar.gz)。 + +操作命令如下: +``` +# 下载frp可执行包 +wget https://github.com/fatedier/frp/releases/download/v0.45.0/frp_0.45.0_linux_amd64.tar.gz +# git无法访问的话,用下面的地址 +wget https://template-mine.oss-cn-beijing.aliyuncs.com/NAS%E4%B8%8B%E8%BD%BD/%E5%8D%9A%E5%AE%A2/frp_0.45.0_linux_amd64.tar.gz +# 解压 +tar zxf frp_0.45.0_linux_amd64.tar.gz +``` +### 配置frps +``` +[common] +# fpr客户端和frp服务器通信的地址 +bind_port = 7000 +# 默认http和https监听端口 +vhost_http_port = 80 +vhost_https_port = 443 +# 针对不同的服务使用[]隔开,服务名自己可以随便定,跟客户端能对应上就行。 +[nas_http] +type = http +custom_domains = nas.dreamlyn.cn +auth_token = 123456 +# 如果没有域名的话,用下面这个可以直接使用ip:5000来访问nas +[nas_tcp] +listen_port = 5000 +auth_token = 123456 +``` +### 启动frps +``` +# 启动frps +./frps -c frps.ini +``` +### 设置开机自启 +使用vim创建并编辑 /lib/systemd/system/frps.service,设置如下 + +``` +[Unit] +Description=Frp Server Service +After=network.target + +[Service] +Type=simple +# 假设fpr存放地址为/usr/local/ +ExecStart=/usr/local/frp_0.45.0_linux_amd64/frps -c /usr/local/frp_0.45.0_linux_amd64/frps.ini +KillSignal=SIGQUIT +TimeoutStopSec=5 +KillMode=process +PrivateTmp=true +StandardOutput=syslog +StandardError=inherit + +[Install] +WantedBy=multi-user.target +``` + +之后就可以使用如下命令控制frp服务 + +``` +启动服务 systemctl start frps +开机自启动 systemctl enable frps +重启服务 systemctl restart frps +停止服务 systemctl stop frps +查看日志与状态 systemctl status frps +``` +## 使用NAS创建frp客户端 +我采用docker-compose的方式安装frp。 +在nas上合适的位置创建目录,并创建如下文件。 + + + +docker-compose.yml文件如下 +``` +--- +version: "3" +services: + natfrp: + image: oldiy/frpc + container_name: natfrp + environment: + - PUID=1000 + - PGID=1000 + - TZ=Asia/Shanghai + volumes: + - ./configs:/frp + restart: unless-stopped +networks: + default: + external: + name: docker_default +``` + +frpc.ini文件如下 + +``` +# 对应Centos搭建的frp服务 +[common] +server_addr = 服务器IP地址 +server_port = 7000 +auth_token = 123456 + +[nas_http] +type = http +local_ip = 192.168.31.206 +local_port = 5000 +custom_domains = nas.dreamlyn.cn +[nas_tcp] +local_ip = 192.168.31.206 +local_port = 5000 +remote_port = 5000 +``` +启动docker容器 +``` +cd natfrp +docker-compose up -d +docker-compose logs -f +``` +OK,可以了,我们可以使用nas.dreamlyn.cn或者服务器IP:5000访问家中的NAS了。 + +## 使用第三方免费frp服务 +当我们没有任何可以暴漏公网IP的服务器时,就需要使用第三方的免费frp服务。 + +先来说下什么是第三方免费frp服务吧,它的存在使我们可以在没有公网IP服务器、并且运营商早已封杀80和443端口的情况下,爆露出我们的服务,笔者这个博客的搭建也是采用的这种形式。 + +在此推荐使用[SAKURA FRP](https://www.natfrp.com/),隧道限速10M足够使用,每月有5G的免费流量,签到的话还送流量,基本用不完。 + +第一步先注册,然后到管理界面点击 服务->隧道列表。 + + + +然后点击创建隧道然后选择节点,这里的隧道可以理解为从公网IP到自己本地服务的一条线路,我们随便选一个,这里我选择成都电信1。 + + + +然后如图设置隧道类型、本地IP,本地端口和绑定域名等,随后点击创建。 + + + +创建成功后,我们把鼠标放在如图所示位置,会出现 cn-cd-dx-1.natfrp.cloud 的域名,我们需要到域名管理后台将 nas.dreamlyn.cn 的cname记录设置为 cn-cd-dx-1.natfrp.cloud。 + + + +如图是我在dnspod的管理端添加cname记录。 + + + +## 第三方frp的客户端配置 +对应frp客户端的安装方式与上文介绍的frp客户端安装方式一模一样,区别在于配置的不同。 + +我们在SakuraFrp管理端点击配置文件。 + + + +在弹出的对话框中点击复制配置。 + + + +然后如图,打开之前的frpc.ini文件,将内容改为,刚才复制的配置,随后启动容器就可以了。 + + + +然后我们既可以通过nas.dreamlyn.cn来对nas进行访问了。