基于 ipv6 搭建具有公网服务的家庭服务器及 DDNS 过程记录
前提要求:
- 任意一台 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 都支持
光猫和路由器设置
如上,光猫和路由器设置了可以连通 ipv6 之后,代表我们可以通过局域网访问 ipv6 主机了,但是默认的防火墙会阻止外部连接请求.
所以我们还要关闭 (或者设置) 防火墙 (有风险,请三思)
如下,中国移动光猫只能关闭防火墙。据说华硕的光猫可以设置 ipv6 的规则,就安全很多.
搭建服务器
确认自己的 ipv6 设置没问题之后,开始搭建
基础访问
首先安装好 Linux 服务器,请根据自己型号善用搜索引擎。移动的机顶盒安装 armbian 可以参考我的这篇文章
启动自己的服务器,然后下载 ssh /nginx 此类的服务并启动
此处要注意的是,一般运营商都屏蔽了 80 和 443 端口,因此我们得把这些服务启动在其他端口
然后在服务器命令行输入 ifconfig, 查看自己的 ipv6 地址
用局域网主机访问对应地址和端口,看看是否可以正常访问
DDNS 设置
确认局域网访问无误之后,如果有自己的域名可以继续设置 DDNS
此处可以使用 GitHub 的这个 DDNS 开源项目
根据 README 的提示,我使用 docker 的方式部署
先在某个路径创建自己的 config.json
文件
写入如下
1 | { |
如上,id 和 token 是在对应的域名管理台获取的,获取方式自行善用搜索引擎
然后启动 docker 容器
输入如下命令
1 | docker run -d \ |
此时就可以正常启动
然后输入 docker logs <容器id>
可以看到如下显示
1 | user@armbian:~/workdir/devs$ sudo docker logs 3d |
代表我们已经成功解析
这时在任意网络的浏览器输入域名 + 端口即可访问
参考资源
https://github.com/NewFuture/DDNS
https://blog.csdn.net/lggirls/article/details/121794648