在 ArukasCloud 搭建 V2Ray

博主已经有 3 台小鸡了(洛杉矶、日本、新加坡),但是还觉得不够爽。曾经注册了 Sakura 的免费容器服务 Arukas Cloud,但是后来由于滥用的人太多,导致所有免费实例分配到的地址都被和谐掉(TCP 阻断),此后便一直吃灰。

今天难得想起 Arukas,于是博主开始了新一轮折腾……

对了,好像很少在博客里面发这类东西呢。(

思路?

要补充的是,Arukas Cloud 会自动反代 80 端口,另外生成一个 Https 的 Endpoint(即,https://example.arukascloud.io),并且可以直接访问。这样的话,可操作性就很强了。

使用 V2Ray Websocket + Caddy,由于 Endpoint 已经自带了 Https,所以现在连证书都可以懒得申请了~也就相当于 Websocket + TLS 了。

开始!

镜像使用 Ubuntu 16.04:rastasheep/ubuntu-sshd:16.04

准备中…

在 Arukas 的实例管理页面中分别开启 80 和 22 两端口,然后部署。

实例配置

使用 SSH,填入分配到的地址,连接到实例,但由于免费版分配的带端口的地址无法正常连接,所以事先还需要挂梯子来连接。

先在 Session 填好服务器的地址和端口,再转至 Connection 的 Proxy 子项配置本地代理服务器,像这样:

代理配置

SSH 用户名,密码都是 root。

SSH 连上后,首先更新一波软件源:

1
[email protected]:~# apt update

由于免费版只提供 0.1v CPU 和 128MB RAM,所以慢得抠脚…… 正因如此,update 完了之后就不要再 upgrade 了,免得被 Kill 掉。

这玩意儿不兹瓷用 systemctl 来控制进程,而 init.d 又太落后,算了算了,用 screen 吧。

除了 screen 之外,一并安装接下来要用到的 unzip:

1
[email protected]:~# apt install screen unzip -y

准备工作完成。

正式折腾~

折腾 V2Ray

1
2
[email protected]:~# arch
x86_64

查看架构,下载对应预编译版本。

1
2
3
4
5
6
[email protected]:~# mkdir v2ray
[email protected]:~# cd v2ray
[email protected]:~/v2ray# wget https://github.com/v2ray/v2ray-core/releases/download/v4.15.0/v2ray-linux-64.zip
[email protected]:~/v2ray# unzip v2ray-linux-64.zip
[email protected]:~/v2ray# rm -f config.json
[email protected]:~/v2ray# chmod +x v2ray v2ctl

反正是容器,随便瞎搞就是了,这里就在 /root/v2ray 里运行。

已经删除了默认的配置文件,接下来重新创建配置文件,由于系统没有 Vim,也懒得再装,所以直接用 echo 命令写入文件:

1
[email protected]:~/v2ray# echo -e '{"inbound":{"port":3050,"listen":"127.0.0.1","protocol":"vmess","settings":{"clients":[{"id":"dd4523c3-fa0a-4aa3-acfe-0a49c7f643ce","alterId":64}]},"streamSettings":{"network":"ws","wsSettings":{"path":"/ws"}}},"outbound":{"protocol":"freedom","settings":{}}}' > config.json

默认监听服务器端 3050 端口,路径为 /ws,UUID 如有需要请自行更改,当然,不改也没事,反正这玩意又不是花钱买来的。

随后用 screen 命令,后台运行 V2Ray。

1
[email protected]:~/v2ray# screen -dmS v2ray /root/v2ray/v2ray -config=/root/v2ray/config.json

V2Ray 部分折腾完毕,现在用 cd /root 回到 /root 目录,开始接下来的操作。

Caddy 轻量级服务器

一直对 Golang 有种莫名的好感,不同于 Python、Ruby 等语言,由 Golang 编译出的程序可以直接运行,全然不用安装各种依赖项。或许这就是她迷人之所在吧?

无论是上文提到的 V2Ray 和这里提到的 Caddy,都是如此。

那么,现在开始吧!

同样的,下载与系统对应的预编译版本。

1
2
3
4
5
[email protected]:~# mkdir caddy caddy/wwwroot
[email protected]:~# cd caddy
[email protected]:~/caddy# wget https://github.com/mholt/caddy/releases/download/v0.11.3/caddy_v0.11.3_linux_amd64.tar.gz
[email protected]:~/caddy# tar -vxf caddy_v0.11.3_linux_amd64.tar.gz
[email protected]:~/caddy# chmod +x caddy

然后,用 echo 命令写入配置文件。

1
[email protected]:~/caddy# echo -e "0.0.0.0:80 {\n    root /root/caddy/wwwroot\n    timeouts 10m\n    proxy /ws 127.0.0.1:3050 {\n        websocket\n        header_upstream -Origin\n    }\n}" > Caddyfile

由于不需要 Caddy 自动签发的 Let’s Encrypt 证书,故,加上 tls off 的配置项,另外,反向代理的路径需要与 V2Ray 配置中的相同。

然后,后台运行 Caddy。

1
[email protected]:~/caddy# screen -dmS caddy /root/caddy/caddy -conf=/root/caddy/Caddyfile

Caddy 折腾完毕~

现在,打开 Endpoint 的网页,如果显示 404 Not Found,则说明 Caddy 已经正常启动了,探测 /ws 路径,出现 400 Bad Request 的错误,则可初步判断 V2Ray 已经在运行。

那么接下来就是在本地的操作了。

客户端配置文件

贴出对应的客户的配置文件,更改 example.arukascloud.io、“id”为自己的设置,将其保存为 config.json,然后在本地设定 Socks 代理 127.0.0.1:1080,即可出墙。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{
"inbounds": [
{
"port": 1080,
"listen": "127.0.0.1",
"protocol": "socks",
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
},
"settings": {
"auth": "noauth",
"udp": false
}
}
],
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": "example.arukascloud.io",
"port": 443,
"users": [
{
"id": "dd4523c3-fa0a-4aa3-acfe-0a49c7f643ce",
"alterId": 64
}
]
}
]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"wsSettings": {
"path": "/ws"
}
}
}
]
}

总结…

Arukas 的网络还是可以,跟博主在 ConoHa 买的 VPS 有的一拼。不过还是不太稳定,算了,毕竟免费的玩意儿可以好到哪里去呢?算是备用吧!

备注:

由于 Arukas 会自动重启,为了避免重启之后再次配置,故博主写了一个 Docker 镜像,以实现容器的持久化。其原理与这篇文章大致相同。

bclswl0827/v2ray-arukascloud

支持原创,欢迎打赏~
(。’▽’。)♡