wqlabs / wqlabs.github.io

0 stars 0 forks source link

如何在纯ipv4的网络环境下使用纯ipv6的梯子 #24

Open wqlabs opened 3 months ago

wqlabs commented 3 months ago

前言

我们都知道随着网络发展,越来越多人接触网络,有限的ipv4地址必然会耗尽,那么为了满足越来越多人的网络需求,ipv6就应运而生了。 当然,这中间并不只是这么简单,比如还存在国家与国家之间的博弈,但是不管如何,拥抱ipv6终归是正确的。

ipv4和ipv6的区别

要说有什么区别,其实两者都是网络上的地址,最最大的区别就是两者的数量了,这是由两者构成的格式决定的。 IPv4:数量 2^32 约43亿。格式为纯数字、4字段:例如bing的其中一个ipv4地址:204.79.197.200 IPv6:数量 2^128 几百万亿 号称能为地球的每一粒沙分配一个地址,可想而知能有多少。格式为字母+数字、8字段:如bing的其中一个ipv6地址:2620:1ec:c11::200 访问方式也有一定的不同: ipv4:http://204.79.197.200/ ipv6:http://[2620:1ec:c11::200/]/ 其他的不是本文的重点,可以再自由探索。

正文

某些情况下,我们可能会有一些纯ipv6环境的vps(简单便宜,或者白嫖的等),而我们本机的网络环境有时候受限于路由器或者运营商以及系统等可能是只有ipv4。但是ipv4和ipv6的环境并不是互通的(连dns服务器都不一样,协议也不通),此时就可以跟着这边教程搭建一个能够访问的梯子了。

准备工作

使用ssh连接vps

假设我们本地环境只有ipv4,那么是无法直接使用ssh工具连接ipv6的vps的,此时有几种方式可以尝试下。

  1. 使用手机连接,手机的网络是自带ipv6的,所以手机可以直接通过ssh工具连接ipv6的vps
  2. 使用web ssh工具,使用搜索工具直接搜索关键词'web ssh',随便找一个地址打开,稍微看一眼应该就知道如何使用了。但是这种最好使用密码的方式连接,如果用私钥的话很可能私钥就泄露了。 ssh连接成功之后就可以继续教程了。

开启warp

因为搭建梯子需要用到一些github上的脚本,而纯ipv6环境无法访问github,另外就是有些其他的网站对ipv6的兼容也比较差,所以咱们得让vps能够访问ipv4。 最简单的就是使用cf提供的warp了,已经有大佬帮我们写好了一键脚本,咱们直接执行即可。

wget -N https://gitlab.com/fscarmen/warp/-/raw/main/menu.sh && bash menu.sh

image

输入2,回车。脚本会自动使用简体中文,并且安装必要的一些软件。 image

问题

  1. 如果你的vps配置较低,又装了其他的很多东西,那么有可能会出现安装软件失败的情况,如上图。 此时可以参考我上一篇教程,开启swap,再重新执行脚本,可以解决此问题。 接着就是一些选择题,只需要按需选择即可完成。 image

搭建梯子

开启warp之后就可以继续搭建梯子了。 搭建梯子非常简单,执行以下脚本

bash <(wget -qO- https://raw.githubusercontent.com/fscarmen/argox/main/argox.sh)

image

同样输入输入2,回车。脚本会自动使用简体中文,并且安装必要的一些软件。

image

安装必要软件成功之后,来到如上图所示的界面。

输入1,回车,再回车。 此时来到了输入域名的步骤,如果你没有准备域名,那么直接回车即可。否则只要输入自己的准备好的域名再回车,然后根据提示操作即可。 接着根据提示输入一个端口,我这里直接试用默认的,所以直接回车。 优选域名随便选择一个。 后面直接全部回车即可。

image

最终选择如上图所示。

执行完成会生成一批软件的导入链接,直接选择自己所用的梯子软件导入即可。 将导入的节点进行测试,此时你会发现,用于直连的两个节点怎么测都没有速度,但是其他几个域名节点可以正常使用。

原理

原理说起来,其实很简单,就是用到了CF的反代,我们的流量先经过CF提供的代理对应的ip,然后再反代到我们的vps上,从我们的vps出口。 而CF的反代域名是接受ipv4的流量的,因此就实现了咱们用ipv4访问自己的ipv6。 当然,搭梯子的方法并不止这一种,但是殊途同归都是需要有个中转服务的,要么使用专门的中转,要么就使用DNS代理,就看各位看官自己选择了。

此时有些聪明的小伙伴或许会想:DNS代理能让我们用ipv4访问ipv6,那我能不能直接使用DNS代理,让我ssh连接ipv6呢?我这里直接给个答案:可以,但是要给钱,免费的DNS代理不支持SSH协议,所以如果想要达到你想要的效果,那么充钱吧。