1. 简介

1.1. 为什么用国内服务器?

国内连接外网时,本地的营运商和网络服务会极大影响我们连接外网的能力。此时外网服务器的路由配置就及其重要,通常我们会选在路由较好的机房,比如使用了CN2之类线路的机房。但是,这种机房的成本通常是比较高的。利用国内的服务器,可以适当的提高我们连接外网的速度,同时也能规避掉流量审查。

国内服务器在企业网络下,一方面被监控流量的可能性比较小,另一方面延迟也会相对比较低。这样可以有效保护国外服务器ip和端口,免受封锁。此方法不止适用于v2ray,其他协议比如ssr,ss,trojan都适用此方法。

1.2. 如何加速访问v2ray?

通过stunnel软件,在国内服务器上安装stunnel做客户端,安装了v2ray的国外服务器上安装stunnel作为服务端。

原来访问v2ray来实现连接外网,现在是将v2ray的请求先发送给国内服务器,然后国内服务器通过stunnel将请求转发给国外服务器,再连接v2ray服务器访问外网。

1.3. 谁适合阅读此文?

这篇教程适合有linux基础的朋友阅读,对于安装好v2ray等加速器之后,想要进一步优化访问的朋友,可以试试去操作。很多朋友使用一键安装v2ray,因此对linux指令也不是很了解,就不建议阅读了,这不是一篇傻瓜教程,遇到的一些问题需要自行解决。

2. 国内服务器的配置

2.1. 服务器的选择

国内服务器的价格都是比较昂贵的,在这里用到的服务器配置不用太高,主要需要注意的是带宽可以有2M以上的。阿里云的服务器,最便宜的一款新人只要一年100左右,腾讯云也有类似优惠。如果没有优惠了可以去淘宝试试能不能买到低价的。

2.2. 防火墙设置

在购买好服务器之后,需要在服务商后台开启防火墙,只用开启一个就行,我这里开启的是8888

利用国内服务器加速v2ray访问速度和规避检查_001.png

此外,需要在登录linux系统之后通过firewall-cmd命令在linux机器上来开启8888端口。如果没有firewall-cmd可以用apt或者yum指令安装。开启端口步骤如下:

  1. 首先,使用以下命令检查firewalld服务的状态:
1
sudo systemctl status firewalld
  1. 如果状态显示为”active”,则表示firewalld服务正在运行。如果状态显示为”inactive”,则需要启动firewalld服务:
1
sudo systemctl start firewalld
  1. 确认firewall-cmd工具可用。使用以下命令检查firewall-cmd是否可用:
1
firewall-cmd --version
  1. 使用以下命令添加或打开8888端口:
1
sudo firewall-cmd --add-port=8888/tcp --permanent

这将在防火墙规则中永久性地添加8888端口。

  1. 重新加载防火墙以使更改生效:
1
sudo firewall-cmd --reload

现在,8888端口已经通过firewall-cmd成功地打开了。请注意,使用sudo命令来获取管理员权限执行上述命令。

2.3. 安装和配置stunnel

  1. 安装stunnel,对于Debian和Ubuntu:
1
apt install stunnel

对于Centos:

1
yum install stunnel
  1. 生成pem证书

证书用来建立TSL连接,在stunnel服务端和客户端使用相同的证书,生成指令

1
openssl req -new -x509 -days 3650 -nodes -out stunnel.pem -keyout stunnel.pem

将证书移到/etc/stunnel/ 目录下,

1
mv stunnel.pem /etc/stunnel/
  1. 配置stunnel,配置文件需要手动在文件中编辑,配置文件储存在/etc/stunnel/stunnel.conf中,没有的话直接新建一个就行,stunnel会自动读取此文件。

通过vim打开此文件

1
vim /etc/stunnel/stunnel.conf

并编辑内容如下:

1
2
3
4
5
client = yes
[v2ray]
accept = 8888
connect = 123.123.123.123:8888
CAfile = /etc/stunnel/stunnel.pem

accept后跟我们之前开启的端口,用于监听请求,请求将被转发到connect后面的ip和端口,connect的ip为v2ray的ip,端口是stunnel服务端的端口,服务端也开启8888作为接受客户端请求。

依次按ESC,冒号和wq,退出编辑器并保存内容。

  1. 输入指令开启stunnel
1
stunnel

没有输出内容,则启动成功,也可以通过指令

1
lsof -i :8888

查看端口是否与stunnel绑定成功。

tips:可以在另一台linux机器上,通过指令 telnet ip 8888 查看端口是否能建立连接,如果不行,说明防火墙没设置好

3. 国外服务器的配置

在安装了v2ray的机器上,我们需要安装stunenl服务端,v2ray可以在网上找一键安装脚本安装。

3.1. 防火墙配置

根据2.2章节描述,修改防火墙规则,开启8888端口

3.2. 安装和配置stunnel服务端

  1. 按照2.3节指导,安装stunnel
  2. pem证书需要与客户端的一致,因此需要将国内服务器上 /etc/stunnel/stunnel.pem文件拷贝到国外服务器的/etc/stunnel/stunnel.pem文件里,可以通过sftp,或者mac电脑上的scp指令拷贝。

Mac电脑拷贝方法是,先将文件拷贝到本地,再上传另一台服务器。

参考指令:

1
scp root@china_server_ip:/etc/stunnel/stunnel.pem /Users/username/

这里root是远程服务器的用户名,china_server_ip是IP地址,/Users/username是本地路径。运行指令后,根据要求输入密码就行

再将本地保存的文件,上传到国外服务器。

1
scp /Users/username/stunnel.pem root@oversea_server_ip:/etc/stunnel/stunnel.pem
  1. vim打开并修改配置文件
1
2
3
4
5
cert = /etc/stunnel/stunnel.pem
key = /etc/stunnel/stunnel.pem
[v2ray]
accept = 8888
connect = localhost:443

这里的accept=8888承接国内服务器的connect指令中的端口配置。connect的地址是本地的443端口,由于v2ray配置的端口是443,因此这里填写443.

  1. 通过stunnel指令运行stunnel服务端

4. 总结

在配置好stunnel客户端和服务端之后,现在需要修改v2ray客户端中的原有配置,将服务器地址,从原来的国外服务器修改为国内服务器地址,将端口号由原来v2ray配置的443修改为stunnel客户端的accept端口8888。至此,stunnel的配置就完成了。

此教程是基于原来国外服务器已经安装好了v2ray, ssr等加速器的前提,并且IP在国内是可以ping通的。否则国内服务器也无法连接。

评论