纯终端环境代理配置教程

纯终端环境代理配置教程

前言

我们在很多情况下,可能会在云服务器或是其他纯终端环境(例如树莓派服务器等),或者一些没有屏幕的情况下,只能 ssh 链接到服务器上进行一些操作。

这些时候,如果我们想要克隆一个 Github 的仓库,或者下载一些镜像源中没有的文件,简直是难如登天,100kb/s 的速度都很罕见,因此在这种环境下配一个代理还是十分必要的!

我们常在 Linux 上使用的 GUI 代理软件如 Qv2ray、Clash 这些就没法用了。因此需要考虑如何在纯终端环境中配置代理的问题,这篇教程就是为解决此问题而写的。

教程

此教程搭配的是常用的 v2ray-core + v2rayA ,这里的 v2rayA 是一个网页端的代理管理工具,其中支持 v2ray、Xray、SS、SSR、Trojan 等多种协议。

一、安装 v2ray-core

首先是需要安装 v2ray-core ,这里我们使用开源的项目 v2fly/fhs-install-v2ray 进行安装,它是一个脚本,可以直接运行完成 v2ray 的安装,安装的文件组织结构符合 Filesystem Hierarchy Standard ,十分方便简洁,很赞!

具体步骤如下:

下载 fhs-install-v2ray 源码

首先我们因为 Github 克隆很慢,可以先在自己的主机上克隆或者以 zip 包形式下载源码

将源码上传到远端

键入下列代码,通过 scp 将解压后的代码文件夹目录上传到远端服务器的根目录(如果是树莓派的话可以连接同一局域网进行),注意这里的 path/to/fhs-install-v2ray 指的是本地文件夹的路径

scp -r path/to/fhs-install-v2ray username@hostname:~

下载 v2ray-core 源码

此脚本可以全自动安装,即自动检测本机类型是 Ubuntu 还是其他的版本,然后从远端仓库下载最新的 v2ray 进行安装,不过因为没有代理,这一步还是十分缓慢,因此我们可以进行本地安装。

首先,我们去到 v2ray-core 的官方仓库的发布站 -> Releases · v2fly/v2ray-core ,在这里可以下载最新版本的的 v2ray-core,不过需要注意的是,需要自己辨别版本,如使用的是 arm 还是 x64_86 等,下载后是一个 zip 压缩包,我们直接通过 scp 上传到远端服务器根目录

scp path/to/v2ray-linux-64.zip username@hostname:~

连接远程服务器

接下来我们通过 ssh 连接到远程服务器

ssh username@hostname

完成安装

然后进入根目录后,进入 fhs-install-v2ray 文件夹,会发现里面有两个脚本,一个是 install-dat-release.sh 另一个是 install-release.sh ,前者是带有路由规则的,后者是不带有路由规则的。我试用后发现 install-dat-release.sh 没有办法本地安装,而后者可以,同时因为 v2rayA 中会自带路由规则,因此完全没有必要用前者,我们可以直接使用 install-release.sh 进行安装。

执行 sudo chmod +x install-release.sh ,添加执行权限

执行 sudo ./install-release.sh --local ../v2ray-linux-64.zip

这里的 local 参数代表是本地安装,解析后面的文件,注意这里是直接 zip 包,不需要解压。同时,这里的路径也是需要和你的下载的文件地址对应。

不出意外的话,瞬间就可以安装完成。截止到这里,v2ray-core 已经安装成功。需要注意的是,这里不需要执行 sudo systemctl enable v2ray ,因为后续的 v2rayA 不依赖此服务。

安装的文件路径如下:

installed: /usr/local/bin/v2ray             #v2ray 主程序地址
installed: /usr/local/bin/v2ctl				#v2ray 控制程序
installed: /usr/local/share/v2ray/geoip.dat # 可选,路由信息
installed: /usr/local/share/v2ray/geosite.dat #可选,路由信息
installed: /usr/local/etc/v2ray/config.json #代理配置文件
installed: /var/log/v2ray/					#下面三个都是log文件
installed: /var/log/v2ray/access.log
installed: /var/log/v2ray/error.log
installed: /etc/systemd/system/v2ray.service #v2ray 服务配置信息
installed: /etc/systemd/system/v2ray@.service

如果有报错的话,可以看对应的 error 报错去 v2fly/fhs-install-v2ray 官方仓库 Issue 处查看。

二、安装 v2rayA

首先,同样的是,为了防止 Github 下载太慢,我们也可以去到官方仓库的发布站 -> Releases · v2rayA/v2rayA ,下载对应系统版本的安装包,然后通过 scp 上传到远端。

这里以 x64_86 版本的 Ubuntu 18.04.5 LTS 举例,我们直接下载 installer_debian_x64_v1.5.2.deb 到本地,然后执行

scp path/to/installer_debian_x64_v1.5.2.deb username@hostname:~

将文件上传到远端。

然后 ssh 到服务器执行:

sudo dpkg -i installer_debian_x64_v1.5.2.deb

安装成功后依次执行:

# 启动 v2raya
sudo systemctl start v2raya

# 开机自启 v2raya
sudo systemctl enable v2raya

这样就成功开启了 v2rayA,我们访问 ip:2017 ,前面是你云服务器的公网 ip 或者是自建服务器的局域网 ip ,我们就可以访问到对应的服务,界面大致如下:

v2rayA界面

首次进入时会让你设置账号和密码,用于后续的管理。还会引导你导入链接,在导入链接后,就可以点击上方的第三栏,进行连接、查看或分享对应的代理了!

说一下我现在用的设置,点击右上角设置,透明代理和规则端口的分流模式设置为大陆白名单,然后实现方式我用的是 redirect,每隔 24h 更新依次代理,左下角设置的地址与端口我用的是默认的,如下:

地址与端口设置

这样我们就可以愉快的上网了!!可以 ssh 到服务器试一下 wget google.com,正常结果如下:

❯ wget google.com
--2021-09-13 18:11:04--  http://google.com/
Resolving google.com (google.com)... 93.46.8.90
Connecting to google.com (google.com)|93.46.8.90|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.google.com/ [following]
--2021-09-13 18:11:05--  http://www.google.com/
Resolving www.google.com (www.google.com)... 108.160.165.141, 2001::453f:b213
Connecting to www.google.com (www.google.com)|108.160.165.141|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html’

index.html                        [  <=>                                             ]  13.42K  59.8KB/s    in 0.2s

2021-09-13 18:11:06 (59.8 KB/s) - ‘index.html’ saved [13740]

这代表着,我们下载到了 google.com 页面的源码,即可以连通 Google 服务。

一些存在的小问题

我现在还没有搞清楚透明代理的作用,如果不开的话,我通过 proxychains 配置对应的端口,发现并不能上网,但是如果我直接开了透明代理,不需要 proxychains 也可以直接在终端使用代理,感觉是全局代理,不过不影响使用。

具体的一些细节还没有搞清楚,后续学习了再回来补更。