这个方案简单来说就是:用 openwrt 作为主路由,安装ddns-go
和 caddy
,实现泛域名解析和反向代理。
优点是配置简单,自动配置泛域名证书且自动续期,适合我这样的新手。但是还有些不完善的地方,希望各位能指点下。
由于目前 ipv6 的443
端口已经被封锁,我采用12580
作为 https 端口。
科学上网与 ipv6 总是调试不好,所以我将软件安装在 openwrt 路由器中,并禁止内网 ipv6 域名解析。
1 ,准备好一个域名(例如google.com
),托管到 cloudflare ,同时获取 token 。
2 ,在 openwrt 防火墙打开 ipv6 的12580
端口。
1 ,项目地址https://github.com/jeessy2/ddns-go
2 ,在 openwrt 中安装ddns-go
插件。
3 ,配置 ddns-go 。
1 ,点击这里,选择 cloudflare 插件,选择对应的架构和系统。下载 caddy 后安装到 openwrt 中/usr/bin/
,配置可执行权限。
2 ,Caddyfile
配置文件。
新建/etc/caddy/Caddyfile
。
{
http_port 18000 #这个可以随便写一个,只要不冲突就行。
https_port 12580
email gmail@gmail.com
}
*.google.com:12580 {
tls {
dns cloudflare XXXXXXXXXXXXXXXXXXXX(token)
}
@nas host nas.google.com
handle @nas {
reverse_proxy 192.168.1.100:5000
}
@alist host alist.google.com
handle @alist {
reverse_proxy 192.168.1.100:5244
}
#根据自己的需求,自行添加反代地址
handle {
respond 404
}
}
3 ,caddy 启动文件。这个启动文件我是用 chatGPT 生成的,还有待改进。
新建/etc/init.d/caddy
,配置可执行权限。
#!/bin/sh /etc/rc.common
START=95
STOP=10
start() {
echo "Starting Caddy..."
/usr/bin/caddy run --config /etc/caddy/Caddyfile &
}
stop() {
echo "Stopping Caddy..."
killall caddy
}
restart() {
stop
sleep 1
start
}
4 ,caddy 启动命令。
/etc/init.d/caddy start
/etc/init.d/caddy stop
/etc/init.d/caddy restart
这样就能通过nas.google.com:12580
访问 nas ,通过alist.google.com:12580
访问 alist 。
但是这个方案还有些不完善的地方:
nas.google.com:12580
,会报错Client sent an HTTP request to an HTTPS server.
,需要手动输入https://nas.google.com:12580
。最后,感谢ddns-go
和caddy
项目,提供了如此好用的工具,降低了玩 nas 的门槛,再次感谢!!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.