前提要求:

  • 任意一台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 文件
写入如下

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 容器
输入如下命令

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

此时就可以正常启动

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

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