随着“玩机”的不断深入,对我来说NAT VPS在使用上已经没有了难度,但是最近黑五订阅了一台来自Servarica的IPv6 Only的VPS,却着实让我头疼了好一阵子,甚至几乎都要把它转手出让给别人了,不过好在折腾不止,最终依旧做到了为我所用,顺便也把折腾的过程分享出来,或许能帮到同样有困扰的朋友。

1.Servarica IPv6 Only VPS配置参数

首先这台VPS由于原生没有IPv4,因此部分跑分Bench脚本是无法正常使用的,在这里推荐使用以下脚本:

wget -qO- wget.racing/nench.sh | bash

来自LET(LowEndTalk)的alilet分享了一则这台VPS的Bench结果:


nench.sh v2019.07.20 -- https://git.io/nench.sh

benchmark timestamp: 2019-12-02 20:47:51 UTC


Processor: Intel(R) Xeon(R) CPU E5620 @ 2.40GHz CPU
cores: 1 Frequency: 2400.141 MHz RAM: 974M Swap:
190M Kernel: Linux 4.9.0-8-amd64 x86_64

Disks: xvda 500G SSD

CPU: SHA256-hashing 500 MB

4.547 seconds CPU: bzip2-compressing 500 MB
7.627 seconds CPU: AES-encrypting 500 MB
1.946 seconds

ioping: seek rate

min/avg/max/mdev = 95.5 us / 184.6 us / 43.0 ms / 431.7 us ioping: sequential read speed
generated 9.77 k requests in 5.00 s, 2.39 GiB, 1.95 k iops, 488.4 MiB/s

dd: sequential write speed

1st run:    232.70 MiB/s
2nd run:    291.82 MiB/s
3rd run:    356.67 MiB/s
average:    293.73 MiB/s

No IPv4 connectivity detected

IPv6 speedtests

your IPv6:    2602:ffd5:1:xxxx

Leaseweb (NL):        0.12 MiB/s
Softlayer DAL (US):   10.46 MiB/s
Online.net (FR):      9.50 MiB/s
OVH BHS (CA):         11.32 MiB/s

官方Looking Glass:

http://ping.servarica.com

可以看到这台VPS的配置为1核/1G/500G,而价格仅仅为12美元/年,官方在offer中也表明,为了能够做到这样的配置和价格,不得不将IPv4移去,甚至连IPv4 NAT都无法提供;目前随着IPv4资源枯竭,计算资源不断丰富,确实IP费用成了VPS成本中的大头,官方此举也能让人理解。不过官方同时又以高于VPS本身的18美元/年的价格提供IPv4附加选项,如此一来,这台VPS的价格将飙升至30美元/年,这一价格显然并不“香”,因此多数人并未选购IPv4。
说起来此次销售,官方还闹了一个“乌龙”,部分VPS在开通时“免费”增加了IPv4,官方后来也发表声明说这是操作失误导致,并且不会移去IPv4,愿意为自己的操作失误买单,如果你是那少数几个幸运儿,那恭喜了,这确实是一台“传家宝”。


2.第一个难题:如何连接SSH

购买VPS后第一件事,相比就是SSH登录了,但是时至2019年,多数人的家庭宽带依旧没有提供原生的IPv6支持,比如我,于是如何连接上这台IPv6 Only的VPS就成了第一个难题,为此我找到了大致两个方案:

①通过IPv4/IPv6双栈VPS作为跳板进行连接
这个方案就比较好理解了,如果你手上有一台IPv4/IPv6双栈的VPS,那么你可以通过先登录该台VPS,而后在该台VPS上登录IPv6 Only的VPS:

ssh root@ipv6 地址


目前为了打破IPv6在普及度上的僵局,为大家提供便利,许多组织和公司都提供了免费的隧道服务,在这里以微软和HE为例。
不过需要注意的是,由于隧道本质上来说依旧是中转,因此你的连接速度会受到隧道提供者的限制,并不适用于大流量高带宽的使用,不过对于SSH连接等服务而言是绰绰有余的。

②使用微软提供的Teredo隧道

首先微软的Teredo隧道比较适合于部署在你的本地PC机,这使得你本地的PC具备了IPv6地址和访问能力。
在这里引用一下《win10如何开启IPV6及WIN10无法上ipv6的解决方法》

Win+X 打开CMD 或 Windows PowerShell(管理员),输入命令:

// 设置 Teredo 服务器,默认为:win10.ipv6.microsoft.com
netsh interface teredo set state enterpriseclient server=default

// 测试 IPv6 连接
ping -6 ipv6.test-ipv6.com
ping -6 [2001:470:1:18::125]

// 重置 IPv6 配置
netsh interface ipv6 reset

重启系统

通过命令 ipconfig /all 查看当前网络信息,看到 Teredo Tunneling Pseudo-Interface 有以 2001 开头的IPv6地址即可。 启动IE浏览器,访问 http://test-ipv6.comhttp://ipv6.test-ipv6.com,如果选项卡 “测试项目” 下面的 “不使用域名的 IPv6 测试” 显示成功,则隧道建立成功。Chrome浏览器的测试结果可能和IE不一样,请注意。

③使用HE提供的TunnelBroker

HE提供的TunnelBroker服务则比较适用于为IPv4 Only的VPS添加IPv6地址和访问能力。
Hurricane Electric Tunnel Broker:https://www.tunnelbroker.net
我们首先免费注册一个账户,登录后进入隧道创建页面:https://www.tunnelbroker.net/new_tunnel.php
在页面中输入你的VPS的IPv4地址,并选择离你的VPS地理位置最为接近的隧道服务器,这样能带来更低的延迟:
he-1.png
点击下一步,隧道就创建完毕了:
he-2.png
HE还为我们提供了比较简单的设置方式,可以按照系统自动生成参数:
he-3.png
在这里推荐一篇OVH提供的设置IPv6教程,大家可以参考,还是比较容易的:
https://docs.ovh.com/gb/en/vps/configuring-ipv6/

④使用其他隧道
除此以外市面上还有其他的隧道可供选择:https://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers


3.让IPv6 Only VPS能正常访问Github

在这里不赘述DNS64/NAT64等技术,各位可以自行百度,其实这一技术在我这里体验后效果比较差,而且对我来说,也只需要让IPv6 Only VPS能正常访问Github即可,其他不需要。通过Google我找到了一篇贴文:IPv6 support for Github Page
我们可以通过hosts文件,指定IPv6地址,实现github的正常访问:

2a04:4e42::133 assets-cdn.github.com 2a04:4e42::133
camo.githubusercontent.com 2a04:4e42::133 cloud.githubusercontent.com
2a04:4e42::133 gist.githubusercontent.com 2a04:4e42::133
avatars.githubusercontent.com 2a04:4e42::133
avatars0.githubusercontent.com 2a04:4e42::133
avatars1.githubusercontent.com 2a04:4e42::133
avatars2.githubusercontent.com 2a04:4e42::133
avatars3.githubusercontent.com 2a04:4e42::133
marketplace-images.githubusercontent.com 2a04:4e42::133
user-images.githubusercontent.com 2a04:4e42::133
raw.githubusercontent.com

以上的IPv6地址应该是Github的CDN提供商的,并且采用了AnyCast技术,可以放心使用。


4.NFS挂载500G大硬盘

前文我之所以说对于访问其他IPv4网络需求不大,是因为我对于这块500G的大硬盘另有打算:挂载到IPv4/IPv6双栈VPS用作存储/下载。正好2019年黑五我购买了OVH的17.88美元100M不限流量美东VPS,测试两台VPS之间ping值尚可,可以一用。挂载方式我选择了比较简单的NFS,这边引用一篇教程:《Linux下挂载远程磁盘 | nfs》

场景:
服务端( 硬盘本地宿主主机 ):
IP :2602:xxxx:xxxx:xxx:0000:0000:0000:0001
共享目录:/share
客户端( 将远程挂载磁盘主机 ):
IP:2604:xxxx:xxx:xxx::/64
挂载路径:/data/servarica

安装NFS(两台都需要):

apt-get install -y  nfs-kernel-server

服务端配置:

vim /etc/exports

下面的语句可以根据你的实际情况修改:

/share/ 2604:xxxx:xxx:xxx::/64(insecure,rw,no_root_squash,sync)

重启nfs服务:

systemctl restart nfs-server.service

客户端配置:
先创建挂载的目录:

mkdir /data/servarica

挂载远程磁盘:

mount -t nfs [2602:xxxx:xxxx:xxx:0000:0000:0000:0001]:/share /data/servarica

开机自动挂载:

vim /etc/fstab

添加如下内容即可:

[2602:xxxx:xxxx:xxx:0000:0000:0000:0001]:/share /data/servarica nfs defaults,_rnetdev  1  1

至此,NFS挂载就完成了,你可以在客户端上把它当做一个普通正常的文件夹使用了。


5.搭配CloudFlare进行做站

硬盘是利用上了,计算资源也不能浪费,况且由于VPS位于加拿大,如果做站,哪怕本地有IPv6,访问起来效果也是不佳的。这时候就可以利用CloudFlare的免费CDN功能了。
在环境上,我选择了轻便的Caddy,避免麻烦,我直接将Caddy的安装.sh文件通过上文的IPv4/IPv6双栈OVH,下载到了VPS上,实测可以正常安装。对于LNMP等环境,只要支持IPv6,大家也可以正常进行安装并且添加网站。
网站添加完成后,来到CloudFlare中,修改DNS并开启CDN后,就可以利用CloudFlare实现中转,达到和普通IPv4 VPS一样的做站用途。
cloudflare-1.png
我们还可以利用CloudFlare实现https加密:
cloudflare-2.png


6.ServerStatus IPv6版

这实际上算是我个人的一个小癖好:把手上的所有VPS/独服装上ServerStatus然后就这么看着它们正常运行。我之前使用的是Doubi的ServerStatus,他修改自另一个中文化的版本,但是那个版本认为IPv6无用,去除了这一部分,而且程序本身对于IPv6的支持也并不好。通过搜索我找到了一位博主对ServerStatus程序进行了修改,实现了IPv6的支持。
作者博客:https://blog.rhilip.info
《IPv6 化改造部分应用》:https://blog.rhilip.info/archives/660/
Github项目主页:https://github.com/Rhilip/ServerStatus
值得注意的是,服务端也需要重新用这个版本部署,客户端则可以按需选择,我的其他客户端仍旧使用了Doubi的版本,仅服务端及Servarica这一台使用了这一版本。


至此,这一台IPv6 Only的VPS我基本就算是折腾完了,又实现了远程挂载,又做到了建站,基本实现了物尽其用,一年12美元,物超所值。

Last modification:November 1, 2022
If you think my article is useful to you, please feel free to appreciate