飞牛lucky配置ipv6 ddns+ssl+反向代理

环境:

飞牛os物理机

飞牛自带lucky(2.8.0版本)

阿里云解析域名

前置条件:

已有公网ipv6,无公网ipv4;

阿里云已设置好dns解析

在开始之前你最好确保你家的网络已经通的了,即外网通过ipv6地址可以访问到你家的飞牛nas,不通的话可能有几种可能:1)你的光猫/路由器设置了IPV6防火墙;2)你的光猫没改桥接,导致你家中的设备还在光猫的子网中,并未暴露在公网。

总之如果不通先解决网络的问题。

1. 配置ddns:

动态域名选项卡这里点击添加任务

  • 托管服务商:就选你域名拖管的那个,我是阿里云,点击创建accesskey,跟着步骤走 获取到相应的keyID和keySecret。像cloudflare的应该就只有一个token。
  • 类型:当然是选ipv6。
  • 获取公网IP方式:我的情况是这里获取公网IP地址的时候是通过网卡获取,即手动选择地址获取,因为IPV6一般会有两个用于公网的地址,一个长一个短,我一开始是“自动通过接口获取”地址,获取到的都是短的那个,然后反代一直不生效,后来我改成手动获取那个长的ip地址就可以了。(但我看别的up主就是自动获取的那个短的ip地址,就没有我的问题,这里你们自行尝试)。
  • 域名列表,我是写两个,第一个是解析主域名,第二个是泛解析你这个域名下所有的子域名。假如你的域名是123.com,那就写这2个:

        123.com

        *.123.com

保存后等一会,如果显示DNS记录一致那就说明成功了

2. 添加ssl证书

转到安全管理选项卡,并点击“添加证书

添加方式:ACME,

颁发机构:选lets encryp,

验证方式选你自己的托管服务商,key是和配置ddns那一步保持一致的。域名列表还是填两个,保持一致。其他的都不用管了,确定即可。

确定后稍等片刻,等证书生成,一会出现形如下边的样子,有办法时间和到期时间这种信息,就说明证书申请成功了

3. 设置反向代理

转到web服务,点添加web服务规则

web服务规则名称随便填,

操作模式就是简易模式不用动,勾上ipv6,

监听端口就是16666默认的就行,想改的话确保别和你其他端口冲突。这个端口就是你反代走的端口。

此处TLS必须启用, 这样才能使用https访问。

然后点击“添加web服务子规则” 

这里拿给飞牛影视做反代举例

规则名称还是随便写,方便自己区分,这里我写fntv

web服务类型是反向代理

前端域名/地址:就是你从外网访问的地址,如果你的主域名是123.com,那么这里你可以写一个子域名:fntv.123.com 。注意这里不用加http头,直接写网址。

后端地址:就是你这个飞牛影视服务在你本地局域网的地址,假如地址是192.168.1.227:8005(飞牛影视的默认端口是8005),你就填上它,注意此处要加http或https头,取决于你这个是不是强制https访问。比如你飞牛影视app上登陆时如果勾选了https,那你这里就应该写https://192.168.1.227:8005.你要是写http://192.168.1.227:8005, 那肯定是访问不了的。反之亦然。

basicAuth如果勾上,那么你在连接时会额外让你输入一个用户名和密码,相当于多了一层安全保护,这个取决于个人。加不加均可。

相应的,你可以继续点击“添加web服务子规则”来添加别的服务。最后确认保存。

然后在外网试试用 fntv.123.com:16666(此处用你实际的来替换)来访问你的服务,如果反代成功就说明通了。

4. 不手动输入https

假如启用了https,在某些浏览器直接输入网址并不会自动解析成https,如果每次都手动输入https://还是略麻烦。可以进行如下设置:

新添加一个web服务规则(注意不是添加一个子规则)

选定制模式

监听地址不填,监听端口跟你反代的端口一致,注意,监听类型 你反代的那个监听类型比如只勾选了tcp6,你这里也只能勾选tcp6,即必须保持一致。

此处TLS必须关闭。

点击默认子规则,做如下设置,其他不动:

 至此就配置好了。再从外网进行https访问就无需手动加https://了。

结语:至此lucky的基本配置就设置好了,至于外网访问还是要加端口号的问题(如fntv.123.com:16666),是因为大多数家庭宽带封了80/443端口,如果你幸运没封那就可以把16666改成443做反代,这样就不用加端口号了。怎么看封没封可见参考文章2:网络千万条,安全第一条——使用Lucky轻松实现反向代理+Https外网访问家庭NAS__什么值得买

 本文参考:

IPv4和IPv6使用Lucky开启反向代理,申请SSL证书,开启HTTPS访问_哔哩哔哩_bilibili

网络千万条,安全第一条——使用Lucky轻松实现反向代理+Https外网访问家庭NAS__什么值得买

### IPv6 DDNS 实现概述 为了实现基于IPv6的动态域名服务(DDNS),通常需要解决两个主要问题:一是如何获取设备当前分配到的IPv6地址;二是如何通过网络协议更新DNS记录。对于Go语言来说,可以利用其强大的标准库来处理这些需求。 #### 获取本地IPv6地址 在Go程序中可以通过调用`net.InterfaceAddrs()`函数获得本机所有接口上的IP地址列表,并从中筛选出有效的全局唯一IPv6地址[^1]: ```go package main import ( "fmt" "net" ) func getLocalIPv6() string { addrs, err := net.InterfaceAddrs() if err != nil { return "" } for _, a := range addrs { if ipNet, ok := a.(*net.IPNet); ok && !ipNet.IP.IsLoopback() { if ipv6 := ipNet.IP.To16(); ipv6 != nil && ipNet.IP.IsGlobalUnicast() { return ipv6.String() } } } return "" } func main() { fmt.Println(getLocalIPv6()) } ``` 此代码片段展示了如何遍历网卡并找到符合条件的第一个全球唯一的IPv6地址。 #### 更新DNS服务器中的A/AAAA记录 当检测到新的IPv6地址时,则需向指定的DNS服务器发送请求以修改对应的主机名解析条目。这一步骤依赖于所选DNS服务商提供的API接口。下面是一个假设性的例子,展示如何使用HTTP POST方法提交变更请求至某虚拟的服务端点: ```go package main import ( "bytes" "encoding/json" "fmt" "io/ioutil" "log" "net/http" ) type UpdateRequest struct { Domain string `json:"domain"` Token string `json:"token"` IPAddress string `json:"ip_address"` } func updateDnsRecord(domainName, token, ipAddress string) error { reqBody, _ := json.Marshal(UpdateRequest{ Domain: domainName, Token: token, IPAddress: ipAddress, }) resp, err := http.Post( "https://example-dns-service.com/api/v1/update", "application/json; charset=utf-8", bytes.NewBuffer(reqBody), ) if err != nil { return fmt.Errorf("failed to send request: %v", err) } defer resp.Body.Close() bodyText, _ := ioutil.ReadAll(resp.Body) log.Printf("Response from DNS service: %s\n", bodyText) if resp.StatusCode >= 300 || resp.StatusCode < 200 { return fmt.Errorf("bad status code received: %d", resp.StatusCode) } return nil } func main() { ipAddress := "fe80::f66d:2fff:feaa:28ff" // Replace with actual IP address retrieval logic. domainName := "your-domain.example.org." token := "your-auth-token" err := updateDnsRecord(domainName, token, ipAddress) if err != nil { log.Fatal(err) } else { fmt.Println("Successfully updated DNS record.") } } ``` 这段代码说明了怎样构建一个简单的客户端应用程序去通知远程DNS管理平台有关最新发现的IPv6地址的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值