基于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