NAS折腾之旅(二)

搞定外网访问,使用域名DDNS和路由器端口转发

省流:最简单的方案是威联通提供的myqanpcloud-link服务,不需要公网ip也不需要什么配置,轻度使用可以直接用它

对于我而言,是否能外网访问是很重要的环节。如果只是本地访问,nas就更像一个硬盘柜,存储和访问都在本地。一旦能够公网访问,它就更像一个云盘。所以搞定稳定快速的外网访问势在必行。

上一篇也提到了外网访问的方式比较多,有ipv4公网、ipv6、内网穿透等方案,鉴于我有ipv4公网ip和自己的域名,选择了域名+端口+DDNS+路由器转发的方式访问nas,让我们一步一步来。

获取公网ip

这一步非常简单,联通、电信宽带用户直接打对应的电话(例如10010)说你的宽带需要一个公网ip,对方验证你的信息后基本上很快就会拥有一个公网ip,注意这个公网ip并非永远固定,每次重新拨号都会更换。

域名+DDNS

为什么需要域名,因为家庭宽带的公网ip并非固定的,若使用ip连接则需要不停地修改ip,体验很差。好在威联通提供了属于自己的域名,而且也帮你配置好了ddns,这些都在初始安装的引导中,打开myqnapcloud即可查看My-DDNS设置,此时通过这个域名(xxx.myqnapcloud.cn)已经可以指向你的公网ip。 qnapcloud
至于拥有域名的同学,可以通过安装ddns-go配置ddns,只需要填写你的域名和对应的token,安装方式也很简单,打开自带的容器工作站就能安装。 container

路由器端口转发

虽然通过域名已经能访问到你的ip,但还需要最后一步,转发消息到你的nas。这一步我有在上一篇提到过,最好将光猫设置成桥接模式,这一步本身就比较难,建议可以寻求对应的宽带商帮助解决,然后由路由器进行拨号,这样还可以有效提高家庭网络稳定性,前提是你的路由器性能较好。

假设你的ip已经可以访问到路由器了,这时候还需要找到nas,一般有三种方式:upnp、端口转发、dmz主机。dmz最好理解,直接将nas的ip暴露到公网,最方便但是不安全,不建议使用。upnp同理,此处不做介绍。我们使用的方案是路由器端口转发,比较好理解,就是可以将指定端口转发到nas所在的ip。这种访问可以只暴露部分端口到公网,有一定的安全性,同时缺点是只能通过域名+端口号的方式访问。

比如你的公网ip是8.8.8.8,你的nas本地ip是192.168.0.2
设置路由器端口转发8000端口到192.168.0.62的8000端口
外网访问8.8.8.8:8000即可访问到192.168.0.62:8000

注意: 80/443等端口无法访问到路由器

SSL证书和安全(可选)

为了安全,使用https访问是不可缺少的,威联通自带的免费ssl证书服务无法在国内使用,可以通过acme.sh自动申请ssl证书,或者可以通过域名商提供的ssl证书服务自行安装。

Nginx(可选)

其实到了上一步已经可以完整的实现外网访问了,可以通过qfile等手机app远程上传下载。但是由于我的路由器端口转发有些问题,设置多个端口会有问题,就把一些服务整合到一个端口上,所以需要nginx做代理,通过docker安装非常简单。

    # nginx配置文件
    listen 80 ssl http2;
    listen [::]:80 ssl http2;
    server_name localhost;
    # ssl证书配置
    ssl_certificate   /etc/nginx/conf.d/cert.pem;
    ssl_certificate_key  /etc/nginx/conf.d/key.pem;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    # 最大上传大小
    client_max_body_size 1024m;
    # 上传缓冲大小
    client_body_buffer_size 100m;
    location / {
        # 关闭缓冲
        proxy_buffering off;
        proxy_pass_request_headers on;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        # 代理到威联通http端口
        proxy_pass  http://192.168.0.2:8000;
    }
     

到此为止,已经实现了一个稳定快速的外网连接,在外网环境下无论是上传文件、查看图片、甚至是看4k电影都快的飞起,当然也要提醒一下,外网访问本地仅限于个人使用不得用于其他用途。

Licensed under CC BY-NC-SA 4.0
加载中...
感谢Jimmy 隐私政策