前提要求:

  • 任意一台 Linux 主机
  • 具有 Ipv6 访问权限
  • 光猫 / 路由器支持关闭或者设置 ipv6 防火墙
  • 域名 (可选)

目的成果:

  • 可以局域网 / 公网访问该主机的任何服务,例如 ssh/http

IPv6 设置

主机

条件 1 不必多说,需要一台主机,任意架构都行.
本文使用的是中国移动 CM311 机顶盒,架构为 arm64

Ipv6 访问权限

检查是否可以访问 ipv6, 可以打开 https://ipw.cn/ 这个网站来测试
如果不可以,还可以试试下面的方法看是否可以打开

  • 进入路由器设置 (设置地址通常在路由器背面), 找到网络设置的 ipv6 相关字段,打开即可 (一般较新的路由器都支持)
  • 以超级权限进入光猫设置 (地址一般在背面), , 账号密码可以百度搜默认的 (比如中国移动光猫默认账密 CMCCAdmin:aDm8H% MdA), 或者打电话问相关人员
  • 在光猫设置里找到 Ipv6 字段,或者在网络管理的 PPPoE 这里找到 ipv4/ipv6 字段并打开,中国移动光猫的示例如下

如图,选择 2 号网络接口,点击下面的修改,将 IP 版本改为 v4 和 v6 都支持

img

光猫和路由器设置

如上,光猫和路由器设置了可以连通 ipv6 之后,代表我们可以通过局域网访问 ipv6 主机了,但是默认的防火墙会阻止外部连接请求.
所以我们还要关闭 (或者设置) 防火墙 (有风险,请三思)

如下,中国移动光猫只能关闭防火墙。据说华硕的光猫可以设置 ipv6 的规则,就安全很多.

img

搭建服务器

确认自己的 ipv6 设置没问题之后,开始搭建

基础访问

首先安装好 Linux 服务器,请根据自己型号善用搜索引擎。移动的机顶盒安装 armbian 可以参考我的这篇文章

启动自己的服务器,然后下载 ssh /nginx 此类的服务并启动

此处要注意的是,一般运营商都屏蔽了 80 和 443 端口,因此我们得把这些服务启动在其他端口

然后在服务器命令行输入 ifconfig, 查看自己的 ipv6 地址

用局域网主机访问对应地址和端口,看看是否可以正常访问

DDNS 设置

确认局域网访问无误之后,如果有自己的域名可以继续设置 DDNS

此处可以使用 GitHub 的这个 DDNS 开源项目

根据 README 的提示,我使用 docker 的方式部署
先在某个路径创建自己的 config.json 文件
写入如下

json
1
2
3
4
5
6
7
8
9
10
11
12
13
{
"$schema": "https://ddns.newfuture.cc/schema/v2.8.json",
"debug": false,
"dns": "dnspod",
"id": "YOUR ID",
"index6": "default",
"ipv6": [
"YOUR Domain"
],
"proxy": null,
"token": "YOUR Token",
"ttl": null
}

如上,id 和 token 是在对应的域名管理台获取的,获取方式自行善用搜索引擎

然后启动 docker 容器
输入如下命令

sh
1
2
3
4
docker run -d \
-v /path/to/config.json:/config.json \
--network host \
newfuture/ddns

此时就可以正常启动

然后输入 docker logs <容器id>
可以看到如下显示

text
1
2
3
4
user@armbian:~/workdir/devs$ sudo docker logs 3d
WARNING:root:Cache file is out of dated.

Mon Sep 25 13:05:01 2023 ***.***.***(AAAA) ==> 2409:8a62:xxxxx:xxxx [via DIRECT]

代表我们已经成功解析

这时在任意网络的浏览器输入域名 + 端口即可访问

img

参考资源

https://github.com/NewFuture/DDNS
https://blog.csdn.net/lggirls/article/details/121794648