前言

对于我们现在很多地区的运营商来说,公网 IPV4 是极其难去申请的,就算可以申请到,也会让你加不少钱改套餐,对于普通用户来说有些划不来。IPV6 是连通公网的一个不错的方法,只需要给当地运营商的运维打个电话,把光猫拨号改为桥接,再从路由器中拨号并打开 IPV6 功能,此时便可以轻松将你的设备开放给公网。

对于开放在公网的设备来说,IPV6 的复杂程度以及动态变更的特点,让公网的设备面对暴露的风险时还是有一定的防御能力,但是我仍然不推荐将所有端口都开放到公网,以免出现安全问题。

一、路由器的设置

不同的路由器的设置内容略有不同,这里我是 TP-LINK 的主路由,所以暂时先给出该型号路由器配置的详细图文教程。

只要记住一点,Unraid 目前可以通过 DHCPv6 或者 SLAAC 获取到 IPV6 地址,但是 Unraid 的 Docker 服务并不可以直接使用 DHCPv6 所分配的 IPV6 地址,而且 Android 设备貌似也不能使用 DHCPv6,所以最好还是使用 SLAAC 进行分配。

1.1 关闭 IPV6 桥接模式

首先需要关闭 IPV6 桥接模式,如果你的 TP-LINK 路由器为二级路由,那就开启桥接模式。

image-20240720223803951

1.2 路由拨号与获取前缀授权

在确定光猫端设置为桥接之后,在路由器进行拨号。

image-20240720224118351

这里复用 IPV4 的拨号链路,因为如果这里仍然拨号就会产生冲突。

前缀授权

前缀授权也就是本地路由向 ISP 运营商的 DHCP 获取一个 IPV6 地址的前缀,然后本地就可以继续根据这一个 IPV6 地址继续分配给其他设备或创建子网

image-20240720224609803

1.3 设置 SLAAC 分配 IPV6 地址给其他设备

设置一下 LAN 口相关设置,首先选择 WAN 口的前缀授权接口,下一步选择 SLAAC 对其他设备授权 IPV6 地址。

image-20240720230312790

image-20240720230455698

二、Unraid 的设置

我这里使用的是 Unraid 6.11.5,Unraid 不同版本在某些设置可能存在差异,如有问题请在评论区提出。

Unraid 网络设置

在修改网络设置前,需要关闭 Docker 服务以及虚拟机服务。

image-20240720231533035

image-20240720232033230

设置 Docker 应用的网络类型

Unraid 提供的 Docker 网络模式主要有以下几种:

  1. bridge

    • 默认的网络模式。容器连接到一个虚拟的桥接网络,可以通过桥接网络相互通信。
    • 容器通过NAT共享主机的IP地址。
  2. host

    • 容器与主机共享网络命名空间,使用主机的IP地址和端口。
    • 容器的端口直接暴露在主机上,没有NAT。
  3. none

    • 容器没有网络连接,仅有回环接口(lo)。
    • 适用于不需要网络的应用或自定义网络配置。
  4. custom

    • 自定义网络模式,允许用户创建和配置自己的桥接或macvlan网络。
    • 可以通过Unraid的网络设置界面进行配置,适用于需要特定网络设置的应用。
custom 模式(推荐)

image-20240720233020909

等待容器启动完成,我们打开控制台,输入命令ifconfig查看容器是否成功获取了 IPV6 地址。如下图所示,eth0 网卡已经成功获取了公网 IPV6 地址。

image-20240720233403634

host 模式

image-20240720234749101

我这里因为 AutoBangumi 没法连接 custom 模式下的 qBittorrent,所以只能使用 host 模式,一般来说不建议使用 host 模式直接暴露 Unraid 的 IPV6 地址,毕竟在 qBittorrent 中是可以直接看到 IPV6 地址的。

等待容器启动完成,我们打开控制台,输入命令ifconfig查看容器是否成功获取了 IPV6 地址。如下图所示,br0 网卡已经成功获取了公网 IPV6 地址。

image-20240720235207300

应用的具体设置

qBittorrent

在 qBittorrent 的设置-高级中修改网络接口为控制台中查询到的 Unraid 的网卡。具体的网络接口可以从 Unraid 的网络设置-路由表中看到。

此外,qBittorrent 绑定到的 IP 地址选择所有地址,只要你的 NAT 类型不是太差,IPV4 还是可以连接到的,只是上传的连通性会变得很差。

image-20240720235539667

image-20240720235340256

后记

目前我个人不太经常使用 IPV6,毕竟在外面的话,除了流量是 IPV6,其他地方的网络很多是没有开启 IPV6 的,所以在外面访问家里的服务我使用的是 Tailscale,感觉还是挺不错的,基本能跑满。

这篇文章算是我自己使用 Unraid 中遇到的问题,然后随手写的解决方案,后续也会继续写一些有趣的文章。


关于我