专注4K家庭影音, 服务千万家庭影音发烧友!

IPv6+DDNS+宝塔HTTPS,以二级域名远程访问NAS所有服务

JiDia 发表于 2020-8-19 15:30:48 | 显示全部楼层
前言:7 f) t) K+ T0 {% R) k
        前段时间摸索了一下IPv6远程访问nas的方案,现在基本宽带和手机都有IPv6了,特意分享一下流程。
* J9 `& @$ T2 A  _6 j7 ~9 u        在群聊上经常见到很多老哥用xx.com或者www.xx.com后面加个端口的形式访问内网服务,一个服务一个端口。我这个分享主要是把不同端口对应不同的二级域名,比如:
: c& c6 ^  f9 t9 v        访问 file.xx.com 就可以访问NAS的文件服务,访问 video.xx.com 就可以访问NAS的视频服务,不需要后面加端口(前提是80或者433没有被封,被封了可以改其他默认端口,一样可以用二级域名访问,但是域名后面需要加一个固定的端口)。
2 e9 T) n1 c9 e; e  |        由于路由IPv6防火墙的配置还不熟悉,因为安全问题(个人比较敏感),内网机器也比较多不想一台台配置排查防火墙,暂时没有分配内网机器的IPv6地址(等有空摸熟ip6tables再改回来),只在路由开IPv6,转发内网NAS的端口到路由做域名解析,架构如下:  ?  E* i5 g1 q% w& L! O- F
+ }. Q3 p! j5 G! @

. c" l* E/ Q5 {$ C+ F网络架构0 A8 [  G$ f: ]7 a* g- R
        对安全问题不敏感,可以把IPv6分配到NAS上,NAS直接做域名解析,不需要像我这么复杂。
: v" Q7 n9 ^" O# s2 K. [( X- {+ q+ u

$ @: a' z7 G) M2 T! g) i4 ?9 n* U6 [部署流程如下(以阿里为例):+ @- M- |4 n5 ?7 g- V
一、确认能获取分配到IPv6地址;
* _8 {9 m* n0 X二、购买阿里域名,取得AccessKey,部署域名解析;
- O5 b  J% ^$ C  J7 `三、NAS上部署Docker的宝塔面板,并优化;2 P% L+ A8 T% d& Q. K" d
四、宝塔面板部署站点并自动申请SSL;
* a3 m+ E3 Y( i9 C* k7 k4 M9 a! S) j五、宝塔站点反向代理NAS或内网服务;3 a  q7 C  b" o! d* y! w, T
一、路由获取、内网分配IPv6
0 U8 }2 i& ?4 a5 S- ?1 y由于各人使用的路由和联网方式花式比较多,而且网上资料也比较多,大家自行百度。5 Z' E* B  g( T# F
貌似国内各大运营商的地址开头都是固定的:
' @1 \( j  m1 g+ H2 q; ~电信IPv6 地址开头是:240e
0 y9 C: U& z! i' U$ J9 G教育IPv6 地址开头是:2001 2 ]3 r. S/ _# V( G/ e" O  _6 _
联通IPv6 地址开头是:2404
& D7 u6 T6 x! [- ]" A- P8 g) l+ U移动IPv6 地址开头是:2409
+ S9 Z5 V1 Z! G/ b这里要确认的是,DDNS你要解析到哪个设备的IP地址上(IPv6):
) Q# G. C- I! [; h' z, G4 K1、不担心安全问题的,直接给NAS分配IPv6地址,在NAS上做域名解析即可;
, b/ C+ o1 B* {& ]/ q! e4 n2、对安全问题比较敏感的,不想分配内网IPv6地址的,在路由上做域名解析也可;(等我有空摸熟ip6tables,也改回方案1)
4 ?, e! k/ b3 S( N+ @如果选用方案2的话,你需要在路由上安装socat软件:
+ M% l+ m( F+ b8 ~2 c- xopkg update && opkg install socat) `5 p; F" y+ S# }
socat可以把内网IPv4端口转发到路由的IPv6端口上,如:, s" D! `* y/ k/ [( k" K6 C) D
socat TCP6-LISTEN:80,reuseaddr,fork TCP4:192.168.7.7:8080/ P' o8 m1 F8 @7 \- m6 e
这样内网192.168.7.7的8080就转发到路由IPv6的80端口上了,我这里IPv6的80和433端口,外网可以正常访问。
( U- D5 t! p# a2 o; i% GPS:记得在路由防火墙放行哦!- o4 r3 g0 T0 i3 T6 m! ?: o
二、DDNS自动解析IPv6% ^$ Y4 h/ \2 E7 v6 Y9 z7 I
NAS用docker或者脚本,路由用插件或者脚本,网上教程也很多,不再赘述。  v0 D4 P0 {" s& P" E2 S
! e! [/ e0 p% g2 j
大家要做 * 记录哦,* 是二级域名通配。
1 q' N  @# }& T# S* 记录的意思是:无论二级域名是什么,都会指向主机IP,由主机去解析你访问的服务内容,这样我们就可以利用宝塔的nginx分开站点去反向代理不同的服务了。# I2 B- A! a# R) a
我新三的老毛子插件,ipv6只能做一条记录,自己改了脚本再加了@记录,顶级域名也可以指向主机了,纯粹也想用上顶级域名。。。
) I. t( i* T4 _8 N& h. \三、Docker部署宝塔面板
# P+ t9 n7 A% @$ a, S4 X5 [可以参考人生观大佬的这篇文章:nRAID docker 安装宝塔,并持久化配置/ c% a8 u2 ^5 S- |1 A
1、我自己使用bridge模式,把http端口映射为主机8080端口,https端口映射为主机4433端口;根据docker hub的说明建议用host模式,不需要端口映射,这样的话你可能需要查一下主机有没有服务占用80.443.8888这几个端口。1 c- I& v( L8 J+ a' v. U
2、不打算建站的话,用pch18/baota:lnp这个吧,没有数据库。
, n8 A9 ~; G: B: X四、宝塔面板部署站点并开启SSL
2 f2 K) a& e- ]4 I% c1、进入宝塔面板后,新建一个站点,域名填自己的域名,二级域名前一段jellyfin可以自定义,PHP选纯静态;
2 L, M! g+ |( q1 R" m0 D7 ^# k. B; d# Y
2、自动申请Let's Encrypt证书(这个证书支持二级域名通配,就是说一个证书就可以通配所有顶级、二级域名,而且宝塔定时任务可以自动续签,个人比较喜欢用),在域名解析这一步申请的阿里AccessKey可以填到这里面去,没有意外点击申请就可以拿到证书了,点击一下强制HTTPS,以后访问HTTP都会自动跳转到HTTPS的
+ t/ C* `) r# |% A% }
; J0 D! a, j3 Y  v$ Y: k! E+ E. t4 u. L, W8 a0 ?& c# f

$ _2 z5 ~! j2 C2 I3 }
; \+ o6 H  P4 G+ h4 W6 p8 g: V
ps:如果想使用其他已经申请到的证书(比如阿里、腾讯一年期的单域名证书),用记事本直接打开下载下来的文件复制粘贴保存就可以的了
: w+ `! N3 R# D3 z# S! Y$ j9 `5 W/ U, B
3、后续新增更多的站点的话,点开证书夹,点击部署就可以了!  r# r1 s: m# D$ |+ C7 j. Q# t
3 ~5 I) K% o: i7 C9 v1 s( @
$ M1 Y" ^$ J/ ^, w! n1 ~' ^% W
4、大家可以先试试 jellyfin.xx.com 这个域名是不是可以使用了,可以访问的话:% i$ @8 F. k  a: X! ]0 r2 L1 u

7 F) L0 i, E" ?' ?五、反向代理NAS或内网服务3 L/ F& E$ _" ~  z
1、在宝塔的网站管理里面点进去刚刚新建的站点,选反向代理,添加反向代理,代理名称随意,目标URL就是你平时内网访问这个服务的地址,点击提交即可:
- Z4 Q3 g, J& s  I/ k& w0 ?3 m9 n5 w  g: R

3 m4 ?; Z! i+ z8 k3 A; R  U: V2、修改反向代理配置,因为默认的反向代理配置传递的header可能不适合我们的服务,把大括号里的修改一下并且把缓存关掉:
; Q2 ]. W0 Y3 u$ v4 P
; ~/ }! M% ]# b/ Y5 j! x( A这里是一个通用的配置,替换上面标示{  }内的的内容即可,注意IP地址端口不需要改,要对应:, E% h7 L4 l6 m3 |
proxy_pass http://192.168.7.7:8096;
* k4 i% E1 S. [3 [5 ^proxy_http_version 1.1;& q* {, G; d7 h( p$ b& E
proxy_read_timeout 300;
) j- x3 o- o2 ~9 P9 [5 p! }9 xproxy_set_header Upgrade $http_upgrade;
# d8 @2 l, Y% V' D- T4 fproxy_cache_valid any 0s;
& d  m" ~. T5 L* D- j% e+ }) Vproxy_cache off;
" x  f) N2 @+ i- H  U4 N6 d
9 Q% x6 j  x, a3、没有下一步,这样就完了哦!如果想给站点另外加用户密码可以用basic认证:; X3 l: T0 I; h% O

( l+ Y* R. E' C9 x3 w; a1 H5 d7 |9 uIPv6+DDNS+宝塔HTTPS,以二级域名远程访问NAS所有服务文章分享完毕!- m% g6 w3 C' x7 N: b( h' }, i

4 N  B$ \( [0 m+ q" ]" F1 P% e
回复

使用道具 举报

发烧友评论2

倒序浏览
xingyun 发表于 2020-8-21 11:26:01 | 显示全部楼层
看了半天有点糊涂了
回复 支持 反对

使用道具 举报

heartzc 发表于 2020-8-20 00:02:46 Hao4K手机版 | 显示全部楼层
谢谢你的教程分享。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


0关注

0粉丝

1帖子

在线客服

在线客服

服务时间 9:00—18:00

返回顶部

关注微信公众号第一时间推送精彩

官方微信

手机访问

Hao4K影音

专注4k家庭影音,提供家庭影音社区,家庭影音器材库,影音问答平台,影音商城,服务千万家庭影音用户。

本站内容部分由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理!

举报反馈邮箱:admin@hao4k.cn

Copyright  2019-2020  Hao4K影音粤公网安备 44030302001429号    ( 粤ICP备18155646号-1 )|网站地图