教程
偶然发现实验室的电脑都分配了很多ipv6地址,且有很多是公网地址。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.108.11.94 netmask 255.255.254.0 broadcast 10.108.11.255 inet6 2001:da8:204:1086:ad28:ff67:94a7:1997 prefixlen 64 scopeid 0x0<global> inet6 2001:da8:204:1086:b9b8:9136:3ef3:6be6 prefixlen 64 scopeid 0x0<global> inet6 2001:da8:204:1086:f455:5fa0:b6ca:63c prefixlen 64 scopeid 0x0<global> inet6 fd00:f484:8d1f:b661::1066 prefixlen 128 scopeid 0x0<global> inet6 fe80::7258:dd48:9547:6be3 prefixlen 64 scopeid 0x20<link> inet6 fd00:f484:8d1f:b661:41f7:aed6:af12:5f13 prefixlen 64 scopeid 0x0<global> inet6 2001:da8:204:1086:a1e4:69cb:2d82:3f54 prefixlen 64 scopeid 0x0<global> inet6 fd00:f484:8d1f:b661:b2b0:dbde:63f4:d9e0 prefixlen 64 scopeid 0x0<global> inet6 2001:da8:204:1086:fc1b:66d8:b2b5:8904 prefixlen 64 scopeid 0x0<global> ether e4:54:e8:77:f5:f3 txqueuelen 1000 (以太网) RX packets 52881182 bytes 10069311241 (10.0 GB) RX errors 0 dropped 26069 overruns 0 frame 0 TX packets 2549468 bytes 249593912 (249.5 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 16 memory 0xe5400000-e5420000
|
那么就不需要ipv4公网ip了。据说现在ipv6普及,家里的宽带也都有ipv6地址。
但是ipv6地址都是被分配的,且没法固定,这个时候可以用dns解析托管商的ddns服务。很简单,其实就是获取托管商那里的一些key,然后在本地写脚本获取ipv6地址并PUSH到托管商那里更新ip。
具体见:基于 Cloudflare DNS API 部署 IPv6 DDNS
困难
但我遇到一个问题,就是直接采用上述链接里的脚本时,会尝试将所有带标记的ip地址加到域名上。而域名解析只能一对一!
其实用这种方法无法将输出列表里的fd00开头的地址剔除出去:
1 2 3 4 5 6 7
| jxl@vostro-5090-china-hdd-protection:~$ ip -6 addr show dev eno1 | grep 'global temporary' | awk '{print $2}' | awk -F "/" '{print $1}' fd00:f484:8d1f:b661:b2b0:dbde:63f4:d9e0 2001:da8:204:1086:f455:5fa0:b6ca:63c 2001:da8:204:1086:fc1b:66d8:b2b5:8904 2001:da8:204:1086:a1e4:69cb:2d82:3f54 2001:da8:204:1086:ad28:ff67:94a7:1997
|
但是不知道为什么,fd00这种总在列表头部,实际想要获取的2001开头地址在尾部。那么可以在命令管道后面在再加上一个tail -1,输出结果如下:
1 2 3
| jxl@vostro-5090-china-hdd-protection:~$ ip -6 addr show dev eno1 | grep 'global temporary' | awk '{print $2}' | awk -F "/" '{print $1}'|tail -1 2001:da8:204:1086:ad28:ff67:94a7:1997
|
获得了想要的ipv6公网地址!
用途
ipv6公网地址通过ddns绑定到域名上,任何闲置主机就都能变成云服务器了。
- ipv6支持ssh,以后在任何地方都能轻松登陆自家电脑
- 必须要一个公网云服务器做中转的frp类内网穿透方法将被取代
- mc服务器等可以开在自己的电脑上
- 可以在自己的服务器上自建云盘、博客
- 旧电脑将可以被利用,收费昂贵性能也有限的阿里云、腾讯云不再成为小服务器玩家的首选。
缺点也有,就是ipv6开起来的服务不能被只支持ipv4的网络用户访问。当然随着ipv6大力普及,这个缺点越来越小。
彩蛋
本来搞ipv6 ddns是想在主机上建一个饥荒服务器的…
结果照着饥荒面板服的教程走完,发现饥荒开服根本就不需要服务器有固定公网ip。它实际上是把个人的服务器统一登记在科雷服务器上,然后让玩家去访问科雷。
不过因为实验室电脑会自行断网,安装过程总是报网络原因的错误,我还以为是需要挂梯子,挂了也没用。最后重新用脚本连接下校园网,就非常顺滑地安装完了。
唉,安装环境总担心是资源在国外需要挂梯子的,也就中国程序员和伊朗程序员了…………
补充:ipv4
只需要把教程里的6改成4,把AAAA改为A就可以了。不需要公网ipv4,内网依旧有效。