搬瓦工 VPS 搭建 V2Ray 服务器
不知不觉已到 2019 年,功夫网也进化得越来越强大了。所谓魔高一尺,道高一丈,梯子界新秀 V2Ray 登场了,以其强大的实力超越 SS/SSR,成为爬墙首选。
关于 V2Ray 的详细介绍可以官方文档,本文主要介绍其安装及使用方法。
一、设定时区
由于 V2Ray 需要客户端与服务端的时间一致(时间差不能超过 2 分钟),因此我们要把服务器的时区改为中国时区:
1 | cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime |
然后通过 ntp 同步一下时间:
1 2 | yum install -y ntp ntpdate us.pool.ntp.org |
设置完成后,检查一下当前时间是否与当地时间一致即可:
1 | date |
二、服务端安装与配置
安装 V2Ray 很简单,只需要一行命令就能搞定:
1 | wget https://install.direct/go.sh && bash go.sh |
因为笔者用的是 CentOS 6,使用的是 Sysvinit 服务管理系统,不被脚本支持,因此需要手工加入服务脚本。将下述代码保存为/etc/init.d/v2ray,并添加执行权限。
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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | #!/bin/sh # # v2ray Startup script for v2ray # # chkconfig: - 24 76 # processname: v2ray # pidfile: /var/run/v2ray.pid # description: V2Ray proxy services # ### BEGIN INIT INFO # Provides: v2ray # Required-Start: $network $local_fs $remote_fs # Required-Stop: $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: V2Ray proxy services # Description: V2Ray proxy services ### END INIT INFO DESC=v2ray NAME=v2ray DAEMON=/usr/bin/v2ray/v2ray PIDFILE=/var/run/$NAME.pid LOCKFILE=/var/lock/subsys/$NAME SCRIPTNAME=/etc/init.d/$NAME RETVAL=0 DAEMON_OPTS="-config /etc/v2ray/config.json" # Exit if the package is not installed [ -x $DAEMON ] || exit 0 # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME # Source function library. . /etc/rc.d/init.d/functions start() { local pids=$(pgrep -f $DAEMON) if [ -n "$pids" ]; then echo "$NAME (pid $pids) is already running" RETVAL=0 return 0 fi echo -n $"Starting $NAME: " mkdir -p /var/log/v2ray $DAEMON $DAEMON_OPTS 1>/dev/null 2>&1 & echo $! > $PIDFILE sleep 2 pgrep -f $DAEMON >/dev/null 2>&1 RETVAL=$? if [ $RETVAL -eq 0 ]; then success; echo touch $LOCKFILE else failure; echo fi return $RETVAL } stop() { local pids=$(pgrep -f $DAEMON) if [ -z "$pids" ]; then echo "$NAME is not running" RETVAL=0 return 0 fi echo -n $"Stopping $NAME: " killproc -p ${PIDFILE} ${NAME} RETVAL=$? echo [ $RETVAL = 0 ] && rm -f ${LOCKFILE} ${PIDFILE} } reload() { echo -n $"Reloading $NAME: " killproc -p ${PIDFILE} ${NAME} -HUP RETVAL=$? echo } rh_status() { status -p ${PIDFILE} ${DAEMON} } # See how we were called. case "$1" in start) rh_status >/dev/null 2>&1 && exit 0 start ;; stop) stop ;; status) rh_status RETVAL=$? ;; restart) stop start ;; reload) reload ;; *) echo "Usage: $SCRIPTNAME {start|stop|status|reload|restart}" >&2 RETVAL=2 ;; esac exit $RETVAL |
加入开机启动,并开启服务:
1 2 3 | chmod a+x /etc/init.d/v2ray chkconfig v2ray on service v2ray start |
配置文件路径 /etc/v2ray/config.json,其中最关键的字段是 “inbound”:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | "inbound": { "port": 23154, "protocol": "vmess", "settings": { "clients": [ { "id": "03ac9b8c-e112-c99d-e723-b77225403286", "level": 1, "alterId": 64, "security": "aes-256-gcm" } ] } }, |
三、客户端安装与配置
V2Ray 官方提供 Linux/MacOS/Windows 平台的客户端,配置方式比较简单,填入服务端的 ip, port 和 id 即可。Android 平台可以使用 v2rayNG 这款客户端,其 UI 与配置文件均与 SS 客户端相似。
四、启用 BBR 加速
BBR 是 Google 于 2016 年推出的一个基于 Linux 内核的拥塞控制算法,通过优化 TCP 底层协议来实现网速加速。BBR 同锐速(ServerSpeeder)有些类似,其他类似的工具及性能对比可以参考这篇文章。
由于搬瓦工家的 Vps 使用的 OpenVZ 虚拟化架构,无法安装原版的 BBR。有人通过内部流量转发的变通方式将其移植到了 OpenVZ 平台,并修改了部分魔性参数,使其加速性能比原版还好。
查看 VPS 虚拟化架构可以使用 virt-what 这个命令行工具:
1 2 | yum install -y virt-what virt-what |
移植到 OpenVZ 的 BBR 可以通过 rinetd 或者 haproxy 进行流量转发,笔者使用其 rinetd 版本,加速效果显著。安装只需要一行命令:
1 2 | wget --no-check-certificate https://github.com/tcp-nanqinlang/lkl-rinetd/releases/download/1.1.0/tcp_nanqinlang-rinetd-centos.sh bash tcp_nanqinlang-rinetd-centos.sh |
安装过程中会让你选择需要加速的端口号,按提示输入即可。BBR 每次开机会随系统自启,无需其他设置。