给VPS添加IPv6地址 防止VPS被墙失联
本文最后更新于 117 天前,其中的信息可能已经有所发展或是发生改变。

前排提醒:如果你的VPS提供商提供了IPv6网络,如VULTR,直接在VPS控制面板里面开启VPS提供商提供的原生IPv6即可;有的提供商没有提供原生IPv6,如搬瓦工,就可以按照下面的教程给VPS添加IPv6地址,防止VPS的IPv4地址被墙从而失联。

引子

觉得引子太长可以直接看后面的教程~

场景1:前段时间我把服务器从VULTR搬迁到了搬瓦工,有的工作还没有进行彻底,经常还需要通过SSH连接管理服务器,通过FTP传送文件。SSH协议对于高墙来说是一种高危协议,因为早年有人就利用SSH假设Socks代理翻出来去;为了封锁这种爬墙方式,一旦经过高墙的SSH流量过大,高墙就会阻断这个连接。虽然高墙的阻断机制还不明确,但这个长时间大量使用SSH协议有还是有一定可能导致服务器被墙的。搬瓦工本来就是被墙的重灾区,因此我能不用SSH连接就不用,尽量少用。但总得过一段时间连上去进行操作,也不能因噎废食。


场景2:最近我查资料,查到了谷歌学术的网站上。然而点进去谷歌学术的链接,却无法访问,提示:Your client does not have permission to get URL / from this server.应该是VPS的IP段做爬虫的太多了,需要换个IP才行。


场景3:有的网站只支持IPv6,比如有的BT,PT站,没有IPv6网络是无法访问的。

其中上面两个情景都跟IP地址有关,怕IP地址被墙,IP地址被谷歌封禁。怎么解决呢?换个IP肯定能破。

换IPv4的IP?瓦工换IP得花8刀,其他的服务商应该也不是很好更换IPv4的IP地址。

那能不能给服务器加一个IPv6的IP呢?高危操作用IPv6,防止IP被墙;平常不危险的操作还是用IPv4,线路不绕路,速度快。

下面就开整啦!我们可以利用he.net提供的IPv6免费隧道,给服务器添加IPv6地址。

教程正文

获取IPv6

工具:he.net提供的IPv6隧道,smartDNS,服务器系统为CentOS7 X64

  1. 注册he.net账户:浏览器打开https://tunnelbroker.net/register.php,注册一个he.net的账户。不开代理的情况下,国家选中国;如果想开代理也可以,国家选则IP所在归属地就可以。手机号随便填写一个就可以,没有国内的短信验证等骚操作。经过邮箱验证之后,你的账户就注册成功了。
  2. 用刚刚注册的账户登录。登陆成功之后,点击页面左上部分的Create Regular Tunnel建立一条普通的隧道。
  3. 你可以选择隧道服务器的机房,建议选择离你的VPS地理位置近的机房。选择好之前,你可以从你的VPS上Ping一下机房的IP地址(绿色箭头所指),测试一下你的VPS到隧道服务器的连通性。如果延迟和丢包都能让你满意,就选择这个机房,不满意再选;然后把你服务器的IPv4地址填进上面蓝色箭头所指的输入框里,按回车键,测试隧道服务器到你VPS的连通性。之后滑动到页面最底端,点击Create Tunnel,隧道就创建成功了。每个账户可以创建五条隧道。

创建隧道

  1. 创建隧道完成后,点击左上角的Main Page,下方就会有你刚刚创建好的隧道了。点击隧道名进入获取详细配置信息。
  2. 进入详细信息后,选择第二个Example Confident标签,查看示例配置。之后在下拉框选择Linux-route2,复制其中的内容。之后在服务器中你认为合适的地方,新建一个ipv6.sh,将配置文件粘贴进去后保存文件。之使用chmod +x ipv6.sh,为ipv6.sh授予可执行权限。执行这个脚本就可以启用IPv6隧道。

获取配置

  1. 开机自动启用IPv6隧道:先启用CentOS开启启动脚本:chmod +x /etc/rc.d/rc.local,然后编辑这个脚本,将我们上一步的脚本添加进去,注意路径要填写绝对路径。

reboot之后你的VPS就拥有IPv6地址了,你可以通过这个IPv6地址SSH连接到你的VPS,FTP传输文件,也可以通过这个IPv6地址扶墙,只是IPv6线路环球旅行,没几个想用IPv6扶墙的~

IPv4与IPv6优选

但是因此会产生一个问题:在拥有IPv6地址之后,网络协议规定优先使用IPv6;IPv6国外的线路质量也很难比得上IPv4,VPS到目标站点的延迟会有所上升,这样我们扶墙的速度会下降。比如搬瓦工与谷歌直连,IPv4 ping值在1毫秒之内;IPv6则到了20毫秒。使用怎么既拥有IPv6地址,又不默认使用IPv6呢?可以从DNS解析入手:返回既有A记录,又有AAAA记录的站点ping值最低的记录;而只有AAAA记录的纯IPv6站点则正常解析。为了达成这一目的,我们可以使用SmartDNS。

  1. 下载解压安装smartDNS,新版需要到Github项目地址寻找。

    wget https://github.com/pymumu/smartdns/releases/download/Release30/smartdns.1.2020.02.25-2212.x86_64-linux-all.tar.gz
    tar zxf smartdns.1.2020.02.25-2212.x86_64-linux-all.tar.gz
    cd smartdns
    chmod +x ./install
    ./install -i
  2. 配置SmartDNS,建议备份原文件后清空,编辑smartdns.comfvim /etc/smartdns/smartdns.conf粘贴进下面的内容:

    bind 127.0.0.1:53
    cache-size 0
    dualstack-ip-selection-threshold 10
    dualstack-ip-selection yes
    log-level info
    server-tls 8.8.8.8
    server-tls 8.8.4.4
    server-tls 1.1.1.1
    server-tls 1.0.0.1
    server-https https://dns.google/dns-query
    server-https https://cloudflare-dns.com/dns-query
  3. 配置smartDNS开机启动:systemctl enable smartdns,systemctl start smartdns
  4. 配置CentOS的DNS服务器,将其设为本机的SmartDNS:先修改系统设置,禁止系统修改DNS服务器:vim /etc/NetworkManager/NetworkManager.conf 在[main]下面添加一行dns=none,然后配置DNS服务器vim /etc/resolv.conf,将其他的删掉,改成127.0.0.1
  5. 重启网络配置:systemctl restart NetworkManager.service

Done!现在你的VPS不仅有了IPv6,而且IPv4与IPv6同时启用,并且线路优选。

参考资料

阿里云Centos 7配置HE隧道支持IPv6访问 | 堕落的鱼

Centos7开机启动自己的脚本 – 简书

pymumu/smartdns: A local DNS server to obtain the fastest website IP for the best Internet experience, 一个本地DNS服务器,获取最快的网站IP,获得最佳上网体验。

暂无评论

发送评论 编辑评论


上一篇
下一篇