记使用阿里云DNS反向代理IPV6地址访问内网摄像头

2022-06-01  本文已影响0人  Ashin10

参考资料:
零基础学NAS 篇二:QNAP配合阿里云实现域名访问NAS_NAS存储_什么值得买 (smzdm.com)
关键词:
阿里云 DNS IPv6 NAS 内网 摄像头

前言

因为某种不可描述的原因想外网访问摄像头,但没有公网ip
发现阿里云域名只要1元/年,也找到↑反向代理的方案
于是稍微研究了一下如何用反向代理ipv6地址来访问nas

使用域名访问NAS
效果还是不错即使是外网访问也比myqnapcloud.cn访问要快很多很多

流程

  1. 买个阿里云DNS的域名
  2. nas上安装docker镜像并配置
  3. 反向代理摄像头地址

具体实施

购买就没必要多提了,需要实名认证1~3天,1块钱折扣是真的香...


image.png

然后根据文首的参考资料
去docker创建个sanjusss/aliyun-ddns:linux-arm32v7的容器
作者还是比较体贴的附上了arm32的镜像,免去很多麻烦

运行成功
配置到这里再刷新下dns基本就能访问了
然后发现,我自己手机网络或本地网络可以访问
但在别人测试时候遇到无法访问的问题

问题解决

  1. 首先要明白任何域名是需要各地服务器刷新的,前几天无法访问实属正常,等待即可
  2. 让被测试者试着访问 IPv6 测试 (test-ipv6.com),以确保他的网络是可以访问v6的
  3. 关闭阿里云DNS对于IPV4网络的解析
    因为我没有v4的公网,即使你解析了也没用,索性关掉


    image.png

    另外容器里面也有对A类地址(即IPV4)的反向代理设置
    比较闲的话可以去除(我并没有改)


    去掉这里的A

访问摄像头

esp32cam

先吐槽几句,二十多块买了这玩样
原来只把他当个玩具,结果还真的是个玩具
并不能刷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-

上一篇 下一篇

猜你喜欢

热点阅读