只有ipv6的vps怎么玩


纯ipv6机器怎么玩

euserv在前段时间推出了仅有ipv6免费机器,本着免费的机器不玩白不玩的原则,并且以前从没有玩过只有ipv6的机器,所以我也去弄了一台来折腾。总的感觉就是cpu很差,io很一般,但是网络速度(在欧洲区域)很不错。
虽然硬件很一般 但是网络真的很不错
另外他家不同时期开机的机器差别相当的大,有的负载才4,有的负载能到120…
另外他家的免费机器都是LXC的,其实只能算是一个容器,不要再尝试安装bbr了,装不上的。

一种操作系统层虚拟化(Operating system–level virtualization)技术,为Linux内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器(Container),内含应用软件本身的代码,以及所需要的操作系统核心和库。通过统一的名字空间和共用API来分配不同软件容器的可用硬件资源,创造出应用程序的独立沙箱运行环境,使得Linux用户可以容易的创建和管理系统或应用容器。

准备工作

申请到机器之后先去面板重装系统,重装系统耗时不定,有时候很快,但有些时候极其慢,我这次使用的是ubuntu1804.

首先由于这是一台纯ipv6的机器,如果我们家里只有ipv4网络的话,是连不上ssh的,解决方案有挺多

  • 使用具有ipv6的vps作为跳板进行ssh连接 我采用了该种方法
  • 使用he.net的tunnelbroker获取一个ipv6公网地址
  • 使用网上的专门的ipv6面板连接 感觉会有些安全问题?

另外如果你有一台同时具有ipv6与ipv4的服务器的话,可以使用该服务器作为frp服务端,这样就可以直接通过v4地址连接了。

机器到手之后,先apt update && apt upgrade升级系统,领的这台机器可能同一批通过了不少的机器,所以这时io极差,装了很久才更新完毕。

NAT64访问纯ipv4资源

因为vps默认只有ipv6地址,所以默认无法访问纯ipv4的站点,但是我们可以使用公共DNS6to4服务(也可以自己搭建)https://zh.wikipedia.org/wiki/NAT64,正好有个德国的dns64服务器,而且速度相当快,能跑到50~100M左右。

修改/etc/resolv.conf的nameserver 改成下面几个dns之一(选一个就好)

  • nameserver 2a03:7900:2:0:31:3:104:161 (荷兰)
  • nameserver 2001:67c:2b0::4 (芬兰)
  • nameserver 2a09:11c0:f1:bbf0::70
  • 更多的dns64 https://nat64.xyz/

之后再尝试下载ipv4服务器上的文件,发现可以成功。

简单的NAT64设置可能是一个设备的两个接口分别连接到IPv4网络与IPv6网络的网关。IPv6网络的流量经由网关路由,其对两个网络之间传送的分组进行所有必要的翻译。但是,这种翻译并不是对称的,[3]因为IPv6地址空间比IPv4地址空间大得多,因此就不可能进行一对一的地址映射。网关维护IPv6到IPv4的地址映射,而该映射可以在来自IPv6网络的第一个分组到达NAT64网关时手动创建(无状态映射),也可自动创建(有状态映射)。

如果NAT64翻译器是用于使仅有IPv4的服务器能被远端仅有IPv6的客户端访问,则比较适合使用无状态转换。有状态转换适合在客户端或服务提供商部署,使仅有IPv6的客户端主机能联系远端的仅有IPv4的节点。

通常来说,NAT64被设计为在IPv6主机发起通信时使用。但也存在一些机制允许反向场景,例如静态地址映射。[来源请求]

不是每种类型的资源都能用NAT64访问。嵌入IPv4字面地址的协议(例如SIPSDPFTPWebSocketSkype、MSN等)都不能得到支持,但双栈网页代理允许仅IPv6客户端访问使用IPv4字面地址的URL。不过,使用NAT64的464XLAT(描述于RFC 6877)允许此类协议通过仅IPv6连接。对于SIP和FTP来说,使用应用层网关(ALG)技术可以解决问题,或者使用RFC 7225中PREFIX64扩展指定的端口控制协议

通过CDN使得ipv4可以访问网站

这个服务器的配置虽然比较辣鸡…而且随时有删号的风险,但是依旧可以用来挂个小网站玩玩(注意备份),然而服务器只有ipv6,那么该怎么让只有ipv4的用户访问我们的网站呢?CDN在这里就可以起到作用了,以cloudflare为例子,当用户访问套上了cdn的网站时,cloudflare会向源服务器回源,cloudflare可以使用ipv6回源,以ipv4来进行展示。

这里使用了CNAME接入的方式来使用CDN

首先注册DNSPOD的账号,并添加域名,一开始会显示域名服务器异常,提示需要修改域名服务器,我们需要前往购买域名的地方,将Name Server修改成DNSPOD提示的那两个域名服务器(如 f1g1ns1.dnspod.net、f1g1ns2.dnspod.net),等待一段时间后刷新,生效。

在DNSPOD里面添加AAAA记录指向vps的ipv6地址 该记录称为 v6.example.com

然后前往cloudflare partner的面板(网上有很多 如挖站否,笨牛,萌精灵等等搜索一下就找得到了)可能需要你先创建一个cloudflare账号,部分面板会自动帮你创建。

在cfp面板里面添加根域名 example.com。

然后添加一条CNAME记录,指向我们刚才添加的那个AAAA记录 如 www.example.com -> v6.example.com 同时选择CDN开启,注意,这里只是在cloudflare里面添加了此CNAME记录,要让其生效我们还需要修改DNSPOD中的内容,先前往cfp的管理面板,查看我们刚才添加的CNAME记录,在CNAME接入标题下能看见一个表格,里面有形如 www.example.com www.example.com.cdn.cloudflare.net这样的记录,于是我们需要复制后者,在DNSPOD里面添加一条CNAME记录 www 指向 www.example.com.cdn.cloudflare.net。此时我们已经成功使用CNAME接入了cloudflare。

https的配置

虽说使用CDN后源站是不是https都影响不大了,但是为了之后的代理服务器搭建做准备,我们也需要一个tls证书,所以还是使用certbot来一键申请https并配置证书。

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update

sudo apt-get install certbot python3-certbot-nginx
#最后输入
sudo certbot --nginx
#按照要求输入邮箱 以及域名 域名就输入 www.example.com

最后如图显示的时候就成功了

尝试着访问 www.example.com

代理服务器的搭建

代理我们使用 V2ray + ws + tls 的方式来使用,当然如果想让仅有ipv4的机器也能使用该代理我们就得用上刚才的CDN。

由于手动配置v2ray较为麻烦,所以我是用v2-ui来进行搭建。

bash <(curl -Ls https://blog.sprov.xyz/v2-ui.sh)

安装成功后的显示

另外注意一点,如果你没有ipv6的话你访问不了这个端口,要么使用nginx反代这个端口并通过cdn访问(我没试过),或者frp到既有ipv4也有ipv6的机器上,来访问(我使用的是后者)。

使用面板默认密码进入面板后建议先去面板设置修改密码(需要重启才能生效)

然后前往账号列表,点击加号添加一个账号。

注意几点:

  • 由于我们需要nginx反代,所以监听ip写127.0.0.1就够了

  • tls打开,域名写之前certbot申请证书所用的域名

  • 证书文件路径

    证书路径 /etc/letsencrypt/www.example.com/cert.pem ( 自己到这里看)

  • 密钥文件路径

    /etc/letsencrypt/www.example.com/privkey.pem

点击添加即可。

设置nginx反向代理

由于需要使用CDN,所以我们需要使用nginx进行反向代理,让该服务能通过443端口来访问。

编辑站点配置文件(如果你是使用certbot配置的https,那么站点配置文件就是/etc/nginx/sites-available/default)

在包含 listen [::]:443 ssl*的那个server{}内添加如下内容 *注意location和你之前添加的时候写的路径要对应

    location /v2ray {
        proxy_redirect off;
        proxy_pass https://127.0.0.1:10000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
    }

然后systemctl restart nginx重启nginx。

此时再访问 https://www.example.com/v2ray 如果显示bad request则表示设置成功。

最后在v2-ui里面点击分享,获取vmess的url,然后在v2rayn之类的软件中使用从剪贴板导入的功能,别忘了把端口修改成443(默认是反代前的端口)

大功告成。

奇技淫巧

  • 设置好了nat64之后 纯ipv6机器也可以直接frp到纯ipv4的服务器上..不过对网络质量要求有些高。

附tunnelbroker获取公网ipv6

参考

https://miaotony.xyz/2020/03/03/Server_ObtainIPv6ViaTunnelBroker/#toc-heading-5

https://loukky.com/archives/951


感兴趣的话点点广告支持一下~


文章作者: HavocW
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 HavocW !
评论
  目录