EUserv纯IPV6 VPS使用cloudflare隧道在网页内直接连接SSH

in 云服务器 with 0 comment

早先给大家推荐了一款德国的免费VPS,纯IPV6,IPV4要付费,且一个月需要续约一次。有兴趣可以看下以前的文章

据说是永久免费的德国VPS,只支持IPV6(每月需要延长一次)
使用腾讯云函数自动续期EUserv免费IPv6 VPS脚本

网上有很多介绍怎么玩这种VPS的技巧,不过我最近换公司,公司里没有IPV6的本地环境,无法访问那只德鸡。
在网上找了好久,终于找到一个比较靠谱的办法,另外还有一个在德鸡上安装IPV4环境,可以访问IPV4资源的办法。在此记录下来,有需要的拿去。

给EUserv IPV6添加WARP,白嫖WARP高速通道!

支持kvm/xen/microsoft等架构VPS的WARP一键综合脚本
OpenVZ、LXC架构VPS脚本:EUserv 纯ipv6(OpenVZ、LXC架构VPS)WARP项目

我有两个合同的免费纯IPV6 VPS,一个是free的那个,还有一个项目是之前做测试的时候申请的,使用下面那个脚本,都顺利的安装上了。
不过需要注意:
1、这种连接只是让VPS能有两种IP的访问和链接,并不能做为域名解析的工具,所以域名解析的时候还是要使用原本机的IPV6地址。使用cloudflare是可以白嫖让网站能适应不同的终端访问,但需要在cloudflare里做配置。这里不详细展开。
2、我脚本安装后并没有安装那些所谓的协议软件,有需要的可以自行安装

使用cloudflare隧道在网页内直接连接SSH

https://dash.cloudflare.com/里添加域名并配置好DNS(自行找一下资料,很多网站都是用的这个)

在Cloudflare for Teams 仪表板里新增应用

2021-08-12T08:17:31.png
选择左边的自托管
2021-08-12T08:18:47.png
先选择已添加好的域名,然后起一个前缀名,比如ssh,这个二级域名就是为了后续可以网页访问SSH的地址。
2021-08-12T08:20:09.png
选择一种访问的权限,可以让团队的成员访问,也可以定义哪些国家哪些邮箱后续等,我是选的任何人。
2021-08-12T08:20:37.png
设置好浏览器登录,在cloudflared设置卡中,从浏览器渲染下拉菜单中选择SSH。
2021-08-12T08:32:23.png

安装 cloudflared

登录你的IPV6 VPS,建议使用ubuntu 20版本,我之前使用centos7和8,总是有问题。

sudo wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i ./cloudflared-linux-amd64.deb

其它系统和版本的查阅这里

登录

cloudflared tunnel login

这时会让你复制链接,在网页里打开登录cloudflare ,对你前面的应用的那个域名进行授权。
授权之后里面会提示自动下载了证书。

创建隧道

接下来,使用以下命令创建隧道。

cloudflared tunnel create <NAME>

替换为隧道的名称。此名称可以是任何值。单个隧道还可以将多个主机名的流量提供给您环境中的多个服务,包括混合连接类型,如 SSH 和 HTTP。

该命令将输出隧道的 ID 并生成关联的凭据文件。您可以随时使用以下命令列出您帐户中的隧道。

cloudflared tunnel list

创建配置文件

vim ~/.cloudflared/config.yml

文件内容:

tunnel: 6ff42ae2-765d-4adf-8112-31c55c1551ef
credentials-file: /root/.cloudflared/6ff42ae2-765d-4adf-8112-31c55c1551ef.json

ingress:
  - hostname: azure.widgetcorp.tech
    service: ssh://localhost:22
  - service: http_status:404
  # Catch-all rule, which responds with 404 if traffic doesn't match any of
  # the earlier rules

注意替换一下tunnel ID,还有那个证书文件的路径,还有Hostname,然后就保存。

对域名进行解析

打开dash.cloudflare.com,添加CNAME,内容为前面设置好的应用名,如ssh。
对于目标,输入隧道的 ID,然后输入cfargotunnel.com。在这个例子中,目标是:
6ff42ae2-765d-4adf-8112-31c55c1551ef.cfargotunnel.com
2021-08-12T08:31:36.png

运行

cloudflared tunnel run <NAME>

RUN后面可以是之前的ID,也可以是你起的隧道名。
我在使用的时候因为配置过多次,前面有过提示错误,说已经连接了。这种问题使用

cloudflared tunnel --ha-connections 1 run <NAME>

运行没有问题了,就先退出,准备将cloudflare安装成服务使用。

安装成服务

cloudflared service install

然后使用命令来管理

systemctl start cloudflared //应用开启
systemctl enable cloudflared  //开启启动

然后,在浏览器里访问你的应用链接,根据你设置的访问凭据,再填写你的VPS用户名和密码,就可以在线SSH啦。
本地有没有IPV6都可以访问了。

Responses