参考资料:
零基础学NAS 篇二:QNAP配合阿里云实现域名访问NAS_NAS存储_什么值得买 (smzdm.com)
关键词:
阿里云 DNS IPv6 NAS 内网 摄像头
前言
因为某种不可描述的原因想外网访问摄像头,但没有公网ip
发现阿里云域名只要1元/年,也找到↑反向代理的方案
于是稍微研究了一下如何用反向代理ipv6地址来访问nas
效果还是不错即使是外网访问也比myqnapcloud.cn访问要快很多很多
流程
- 买个阿里云DNS的域名
- nas上安装docker镜像并配置
- 反向代理摄像头地址
具体实施
购买就没必要多提了,需要实名认证1~3天,1块钱折扣是真的香...
然后根据文首的参考资料
去docker创建个sanjusss/aliyun-ddns:linux-arm32v7
的容器
作者还是比较体贴的附上了arm32的镜像,免去很多麻烦
配置到这里再刷新下dns基本就能访问了
然后发现,我自己手机网络或本地网络可以访问
但在别人测试时候遇到无法访问的问题
问题解决
- 首先要明白任何域名是需要各地服务器刷新的,前几天无法访问实属正常,等待即可
- 让被测试者试着访问 IPv6 测试 (test-ipv6.com),以确保他的网络是可以访问v6的
-
关闭阿里云DNS对于IPV4网络的解析
因为我没有v4的公网,即使你解析了也没用,索性关掉
另外容器里面也有对A类地址(即IPV4)的反向代理设置
比较闲的话可以去除(我并没有改)
访问摄像头
先吐槽几句,二十多块买了这玩样
原来只把他当个玩具,结果还真的是个玩具
并不能刷micro python固件(或者说我不知道怎么刷)
而且安信可(AI Think)的文档比乐鑫(Espressif)的差非常多
安信可甚至都没有写在官网而是CSDN你敢信...
根据基于esp32cam制作一个迷你监控,可以通过app远程查看_哔哩哔哩_bilibili
让摄像头正常工作后,分配到内网的地址192.168.1.10
然后思索了一下,如何让有IPV6地址的NAS来访问摄像头呢?
小脑瓜一转,用nginx
啊!
同样是用NAS上的docker找个nginx的容器
我采取的是docker-compose的方式来配置他
(这里偷下懒,如果你不知道docker compose是什么自己查一下)
version: '3.1'
services:
nginx:
#总是在docker启动时启动该容器
restart: always
image: arm32v7/nginx
container_name: nginx
#需要使用nat模式的网络
network_mode: "host"
#nat模式下不能启用ports转发,仔细想想这是多此一举
#ports:
#- 8000:8000
volumes:
#nginx.conf是用于指定nginx的配置文件,需要额外配置,后两个随便写
- ./conf/nginx.conf:/etc/nginx/nginx.conf
- ./log/:/var/log/nginx/
- ./wwwroot/html:/usr/share/nginx/wwwroot/html
然后nginx.conf
的配置内容
user root;
worker_processes 1;
events {
use epoll;
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_header_buffer_size 2k;
server {
#如果你还想监听v4的端口请解除注释
#listen 8001;
#用于监听ipv6的端口,写法和v4不一样
listen [::]:8000;
server_name 你的域名.top;
#用于访问的摄像头的地址
location /myipcamera {
#需要根据摄像头所提供的地址修改,我这里是192.168.1.10
proxy_pass http://192.168.1.10/mjpeg/1;
}
}
}
然后访问你的域名.top:8000/myipcamera
即可
这里用vlc演示一下(当然网页也可以)
-End-