NAS中安装npm
安装NPM
npm是nginx proxy manager的简称,如果在nas里的服务很少用docker安装的话,推荐使用它来进行反向代理。这里我介绍下具体的安装和使用方法。
在nas上合适的位置创建目录,并创建如下文件。
其中docker-compose文件如下:
12345678910111213141516version: '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/letsencryptnetworks: default: external ...
NAS中安装docker-compose
使用docker能很方便的搭建一些自建服务,而docker-compose是一个是用于定义和运行多容器 Docker 应用程序的工具。通过docker-compose,我们可以使用 YML 文件来配置应用程序需要的服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
注:群晖安装完docker套件后,默认已经安装了docker-compose
首先使用ssh连接nas这一步请自行百度。
下载docker-compose1curl -L https://oss.dreamlyn.cn/nas/blog/docker-compose > /usr/local/bin/docker-compose
为docker-compose添加可执行权限1chmod +x /usr/local/bin/docker-compose
查看版本(检查可用性)1docker-compose --version
NAS双网口改桥接模式
当我们有两台设备需要上网(其中一台是群晖NAS),但是旁边只有一个网口时,可以采用将NAS双网口改成桥接模式来实现两台设备的网络连接。
我们将群晖的两个网络接口分别命名为接口1和接口2,具体的连接方式为,原有的网口接NAS的网络接口1,NAS的网络接口2连接另外一台设备。
打开Open vSwitch功能进入群晖系统–>控制面板–>网络–>选中“局域网”–>点击“管理”,在下拉菜单中选择“Open vSwitch 设置”
在弹出界面中选中“启用”
删除ovs_eth绑定网口开启群晖的SSH并登录,使用sudo -i获取root权限。通过ifconfig可以看到ovs_eth0和ovs_eth1,这是群晖两个默认的网桥,对应连接的接口是eth0和eth1,要确定一下哪个是连接路由器的,哪个是连接电脑的。 (以下以ovs_eth0连接路由器,ovs_eth1连接电脑为例)
随后输入命令删除ovs_eth1
1ovs-vsctl del-br ovs_eth1
将eth1加入ovs_eth0网桥使用下面的命令添加ETH1
1ovs-vsctl add ...
外网访问NAS
很多朋友买回NAS后很关心的一个问题就是如何在外网访问。这里我把自己认为比较好的方法罗列出来并一一实现,我们可以根据自己的实际情况选择使用。
注:在此不考虑quickconnect这种nas自带服务的方式。
外网访问方法汇总如图,汇总了我目前认为在外网访问家中NAS比较好用的方法,首推的方法当然还是开通公网IP。
开通公网IP之后启用DDNS,然后我们就可以直接使用路由器端口映射到NAS,或者使用Traefik、npm代理都可以。
如果实在无法开通公网IP的话,也可以使用frp进行内网穿透,内网穿透需要有一个拥有公网IP的服务器做一个跳板,有个人服务器的话最好,没有的话,可以使用第三方的免费frp服务。
下面我对这些方法逐个进行介绍。
可以开通公网IP首先介绍有公网IP的情况,有公网IP的话,需要配置下DDNS,我在之前NAS使用DDNS那篇文章有过相关的介绍,不清楚怎么配置DDNS的可以去参考下。
我在这里假设我们的DDNS域名是*.deamlyn.cn,也就是dreamlyn.cn的所有子域名都指向家中的网络。
路由器端口映射到NAS配置好DDNS后,外网访问NAS的最 ...
NAS使用DDNS
群晖自带的DDNS无法使用泛域名,我在NAS使用过程中需要把域名的所有子域名都通过DDNS指向本机,所以在这里采用装第三方DDNS服务的方法来使用DDNS。
DDNS其实就是动态的调整DNS服务器中的A记录,实现的前提就是域名服务商提供API来修改域名的A记录,我们在需要使用DDNS的地方通过脚本来获取可能动态会变动的公网IP,然后通过API告诉域名服务商修改A记录。
因此,实现DDNS需要做两件事:第一,获取DNSPod的API Token;第二,在本地用程序获取公网IP地址并使用DNSPod API更新A记录。
获取DNSPod Token在DNSPOD的控制台中,如下图所示点击API密钥中。
点击DNSPod Token并创建密钥,记录下ID和Token。
动态更新DNS我在威联通上通过docker-compose来实现DDNS。
在nas上合适的位置创建目录,并创建如下文件。
其中docker-compose文件如下:
123456789101112---version: "3"services: ddns-go: image: ...
Traefik将acme.json 分割成证书
我们在使用Let’s Encrypt进行自动证书获取时,是将TLS信息存放到acme.json中的。但是总有那么些原因要用到证书,比如我在同一个域名下,有另外一个服务没有使用traefik代理,这时候就需要将acme.json分割成证书。
在此,使用docker-compose安装certdump来对acme.json进行分割。
在traefik目录下,创建certdump.yml文件。
文件内容如下:
1234567891011121314151617---version: "3"services: certdumper: image: humenius/traefik-certs-dumper:latest container_name: certdumper environment: - PUID=1000 - PGID=1000 - TZ=Asia/Shanghai volumes: - ./configs:/traefik:ro - ./output:/output:rwnet ...
NAS中安装Traefik
我在家里的NAS上使用docker搭建了许多服务,这些服务都使用traefik进行代理,当这些服务需要使用HTTPS时,我们可以使用Traefik的Let’s Encrypt来自动获取证书,本篇文章主要介绍Traefik的安装以及如何使用traefik来自动获取证书。
安装Traefik我在NAS上的服务大部分都是采用docker-compose的方式进行安装,而traefik的反向代理对docker原生支持,所以我采用traefik作为所有服务的入口。当我们使用不同的域名,比如:gitea.dreamlyn.cn或者给blog.dreamlyn.cn来访问网站时,traefik会根据不同的域名,将访问代理到不同的docker容器。有兴趣深入了解traefik的可以参考中文文档或者官方文档。
traefik反向代理对于traefik本身的安装,我也是采用了docker-compose的方式。
在nas上合适的位置创建目录,并创建如下文件。
其中docker-compose文件如下:
1234567891011121314151617181920212223242526272 ...
使用frp进行内网穿透
当我们所搭建的服务并不具备公网IP,无法从外放访问服务时,可以利用frp来进行内网穿透。
什么是frpfrp服务是内网穿透服务中的一种,可以理解为花生壳内网穿透的替代品,但是要比花生壳内网穿透快很多。它的大致原理如下,用户访问安装有frps服务的设备,frps能根据与frpc建立的联系,自动打通隧道,使用户的访问映射到内网的客户端。
开始使用frp接下来我们分两种情况介绍具体如何使用:
当我们有一台暴漏公网IP的Centos服务器时。
当我们没有任何可以暴漏公网IP的服务器时。
在Centos上搭建frp服务当我们有一台暴漏公网IP的Centos服务器时,可以在服务器端安装frps服务。
下载frp并解压到GitHub查看最新版本:https://github.com/fatedier/frp/releases
如果访问不了github,我在这儿也给出0.45.0版下载地址。
操作命令如下:
123456# 下载frp可执行包wget https://github.com/fatedier/frp/releases/download/v0.45.0/frp_0.45.0_l ...
找不到群晖NAS的解决办法
一、无法通过 Web Assistant (find.synology.cn)找到NAS
请先尝试以下每种方法,然后再通过 Web Assistant 搜索Synology NAS :
确保Synology NAS和计算机已正确连接到 Internet。
确保Synology NAS和计算机位于同一局域网和子网中。
使用其他浏览器(如 Chrome 或 Firefox)。
如果 DSM 仍可访问,请进入DSM>控制面板>信息中心>设备分析>共享网络位置,并勾选允许此 DiskStation 在 Web Assistant (find.synology.com) 中显示复选框。
如果您在设置Synology NAS时更改了服务器名称,则可能无法找到Synology NAS。如果 DSM 仍可访问,请进入DSM>控制面板>网络>常规以将服务器名称更改为SynologyNAS,然后再试一次。
如果上述方法无效,请尝试使用 Synology Assistant 搜索Synology NAS 。
二、无法通过 Synology Ass ...
将花生壳域名的服务商改为DNSPod
在服务搭建过程中,需要使用域名服务商的API,并通过API来管理域名记录,而花生壳并不提供相应的功能,因而对域名服务商进行调整,下面给出调整过程。
在花生壳管理端修改域名的DNS将NS管理中的DNS修改为ninety.dnspod.net和baron.dnspod.net注意:修改完之后,花生壳中设定的域名解析将完全失效(包括DDNS)
在DNSPod中管理域名
如图,在面板中点击添加域名,输入域名后一路下一步即可。
为什么要修改域名服务商因为我在搭建服务的过程中,需要使用traefik,traefik有个很好用的东西叫letsencrypt,他可以采用tlsChallenge、httpChallenge和dnsChallenge三种方式来自动申请HTTPS证书。
但是因为我的很多服务是在家中搭建,运营商并不开放80和443端口,导致tlsChallenge和httpChallenge两种方式无法使用 ,只能使用dnsChallenge。
我们知道dnsChallenge的验证方式,需要给域名添加一条txt记录来验证域名所有权,如果想完全自动得去申请tls证书,那么一定要使用域名 ...
