vultr VPS主机安装v2ray代理服务器手记

欢迎您,来自IP地址为:54.144.57.183的朋友

付款前,可以输入宝贝名称查一查有没有优惠券可以用哦!



近期对境外VPS做了些比较,觉得一些主机商提供的服务还是挺不错的。尤其是Linode这种高富帅主机都有了5美元/月的产品。作为Linode的竞争厂商,vultr主机也为用户提供了类似产品,虽然没赶上2.5美元/月的,但是5刀的机器也将就用得,等他们再降价时更换就是了。(PS:近期更新了一篇使用hostigation主机的文章,提供测试SS服务器,主机价格12.5美刀一年,点击了解手把手Hostigation主机开v2ray服务及启用SS代理)。

一、vultr主机的选择

vultr主机有很多机房可选,亚太地区有新加坡和日本东京机房,作为国内用户,会理所当然觉得选这两个机房好些,事实上由于大量用户的涌入,虽然ping值表现不错,但是在使用高峰时段稳定性就得不到保证了。建议选择美国本地的机房,因为这些机房大多有与本国运营商的直连路由。最后,我选择了位于德州Dallas的机房,ping值保持在200ms左右,不分高峰时段,全天都很稳定,对于google等服务器的ping值好到没朋友。如果只做普通web服务器及跑一个代理,则5刀的机器就足够用了,一个月1T的流量也足够折腾的。有兴趣的朋友点击这里直接进行注册。

二、系统的安装

vultr的VPS有个特色功能,就是自定义ISO进行系统安装,也可以选择vultr提供的预装系统。系统都是原生镜像的最小化安装,可以根据需求安装相应软件,既没有多余的功能,也方便根据需要配置相关应用。虽然Linode也可以更换内核,但是他们提供的所谓优化系统和vultr的比起来使用方便性就差很多,这也是我选择vultr的原因之一。

系统安装相对简单,可以选择不同系统进行部署,如果是推荐系统,则只需启动服务器,系统状态变成Running后,点实例名,就可以得到系统预设的root密码,其它什么都不用管。如果选择ISO选项卡,可以安装其它操作系统,比较搞的是需要通过网页控制台从系统引导逐步进行操作,就如同自己在操作虚拟机一样。这样可能比较麻烦,但给了用户更大的自主性。

三、安装v2ay工具及关闭防火墙

系统安装完成后,就可以安装v2ray代理工具了。个人感觉v2ray虽然不像shadowsocks那样出名,但是实际使用效果并不差,并且v2ray内置了shadowsocks协议的支持,有效的解决了v2ray客户端使用不便的问题。可以用v2ray做shadowsocks的服务器,就可以使用影棱客户端连接v2ray服务器了,感觉用起来没什么区别。v2ray的原理就不再多说了,直接讲如何安装和配置

# bash <(curl -L -s https://install.direct/go.sh)    //linux的安装脚本,直接运行就可以了
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 4915 100 4915 0 0 293 0 0:00:16 0:00:16 --:--:-- 791
bash: line 88: /usr/bin/v2ray/v2ray: No such file or directory
Installing V2Ray v2.12.1 on x86_64
Downloading https://github.com/v2ray/v2ray-core/releases/download/v2.12.1/v2ray-linux-64.zip directly.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 595 0 595 0 0 446 0 --:--:-- 0:00:01 --:--:-- 447
100 2358k 100 2358k 0 0 270k 0 0:00:08 0:00:08 --:--:-- 609k
Extracting V2Ray package to /tmp/v2ray.
Archive: /tmp/v2ray/v2ray.zip
inflating: /tmp/v2ray/v2ray-v2.12.1-linux-64/systemd/v2ray.service
inflating: /tmp/v2ray/v2ray-v2.12.1-linux-64/systemv/v2ray
inflating: /tmp/v2ray/v2ray-v2.12.1-linux-64/v2ray
inflating: /tmp/v2ray/v2ray-v2.12.1-linux-64/vpoint_socks_vmess.json
inflating: /tmp/v2ray/v2ray-v2.12.1-linux-64/vpoint_vmess_freedom.json
PORT:36832
UUID:65d5fad7-af42-4ee9-b5df-a2d0998e8cd7
V2Ray v2.12.1 is installed

此脚本会自动安装以下文件:
/usr/bin/v2ray/v2ray:V2Ray程序;
/etc/v2ray/config.json:配置文件;
脚本会配置自动运行,自动运行脚本会在系统重启之后,自动运行 V2Ray。目前自动运行脚本只支持带有 Systemd 的系统,以及Debian/Ubuntu全系列。以下是修改/etc/v2ray/config.json文件进行配置,加入对shadowsocks服务的支持:

//配置v2ray服务 
 "inbound": {
    "port": 65442,
    "protocol": "vmess",
    "settings": {
      "clients": [
        {
          "id": "1cbe5544-b70e-4deb-a7e7-112ad1486714",
          "level": 1,
          "alterId": 64
        }
      ]
    }
  },
//配置shadowsocks服务
  "inboundDetour": [
   {
     "protocol": "shadowsocks",
     "port": 443,
     "settings": {
      "method": "aes-256-cfb",
      "password": "shadowsocks_password",
      "udp": false
     }
    }
  ],

配置文件v2ray项需要配置”port”和”id”项,因为其要求服务端和客户端id值一致。而shadoswsocks项的配置是需要自行加入到配置文件中的,可以根据实际情况修改端口和密码就是了。配置完成后,可以用service v2ray start命令启动程序即可。

由于我采用了CentOS 7系统,其原生系统防火墙默认是开启的,并且只开启了22端口。需要将端口加入到防火墙规则列表中。而CentOS 7使用了全新的Firewall防火墙,其使用也比较方便,大致步骤如下:

# firewall-cmd --zone=public --add-port=65443/tcp --permanent    //永久将65443端口加入开启规则
# firewall-cmd --zone=public --list-ports                                               //显示开放端口列表
65442/tcp 65443/tcp
# firewall-cmd --reload

因为默认所有网络接口都接入到public的,所以如上命令就可以将端口开放了,最后reload一下防火墙就行了。

四、更新系统内核及开启BBR功能

使用代理服务器,如果没有加速功能则一切都是白瞎,刚好万能的Google给大家开发了一个BBR协议,可以有效提升网络传输效率。Linux也将此功能加入到4.09以后的内核中,所以理论上将内核更新到4.09及以后的版本后,就默认具备了BBR功能。CentOS系统更新内核采用elrepo发行版内核,因为CentOS官方还没有提供4.09以后的内核。安装步骤如下:

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org                         //安装elrepo源的签名
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm  //安装RHEL7或CentOS7的elrepo源
# rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm     //安装RHEL6或CentOS6的elrepo源(二选一即可)
# yum yum-plugin-fastestmirror                                                                                    //如果出错则需要安装yum-plugin-fastestmirror
# yum --enablerepo=elrepo-kernel install kernel-ml                                                //安装4.10内核

内核安装完成后,需要修改系统启动选项来启动4.10内核。

# cat /boot/grub2/grub.cfg |grep menuentry                                                                  //显示当前启动项
if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
  menuentry_id_option=""
export menuentry_id_option
menuentry 'CentOS Linux (4.10.12-1.el7.elrepo.x86_64) 7 (Core)' 
menuentry 'CentOS Linux 7 Rescue ab557df70ccc47a287973e82809aca64 (3.10.0-514.16.1.el7.x86_64)'
menuentry 'CentOS Linux (3.10.0-514.16.1.el7.x86_64) 7 (Core)'
menuentry 'CentOS Linux (3.10.0-514.10.2.el7.x86_64) 7 (Core)'
menuentry 'CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)'
menuentry 'CentOS Linux (0-rescue-41bda1dfef7941278145d8fc0d781204) 7 (Core)'
# grub2-set-default "CentOS Linux (4.10.12-1.el7.elrepo.x86_64) 7 (Core)"        //设置新内核为启动内核
# grub2-editenv list                                                                                                            //查看默认启动内核
# saved_entry=CentOS Linux (4.10.12-1.el7.elrepo.x86_64) 7 (Core)

通过以上的修改,就可完成启动内核的设置。重新启动一下系统,用uname -r命令看下启动的内核是否正确。

如果内核更新成功,那么启用BBR算法就相对简单,只要修改/etc/sysctl.conf文件内容即可:

  net.core.default_qdisc=fq
  net.ipv4.tcp_congestion_control=bbr

修改完成后,可以通过以下命令验证BBR是否启用

  # sysctl -p
  # sysctl net.ipv4.tcp_available_congestion_control
  net.ipv4.tcp_available_congestion_control = bbr cubic reno
  # lsmod | grep bbr
  tcp_bbr                16384  3

当看到出现tcp_bbr后,就表示该算法已经启用成功。BBR算法的好处是可以有效的利用带宽,对于视频流效果更加明显。vultr的VPS主机测试油管1080P问题不大,4K的话有点勉强,毕竟是共享带宽的么。

至此,vultr主机配置代理服务器及开启BBR功能全部完成,以前断断续续写过不同的内容,这次整体详细写一个完整的步骤,希望对于有兴趣境外VPS的玩家有所帮助。我没有用shadowsocks服务器,因为总觉得v2ray要好些,没什么理由,全是个人感觉。

13 thoughts on “vultr VPS主机安装v2ray代理服务器手记

  1. 【勘误】
    第四部分的 “saved_entry=CentOS Linux (4.10.12-1.el7.elrepo.x86_64) 7 (Core)“ 是输出内容,开头部分不应该有 “#”。

    1. root说道:

      恩,是的,这个是系统输出内容,的确没有#号,谢谢指正。

  2. 曹雷说道:

    客户端的配置文件inbound部分要修改吗?怎么修改呢?

    1. root说道:

      v2ray被设计成服务器和客户端共生的,v2ray软件既可以是服务器,也可以客户端。由于v2ray的客户端不是很友好,于是建议使用ss的纸飞机客户端,所以才需要按文章中讲的在VPS主机的v2ray配置文件中加入对于ss协议的支持,把v2ray当ss服务器来用。v2ray软件通讯是采用的vmess私有协议,用这个的时候才需要配置服务器和客户端。

      1. 曹雷说道:

        嗯 如果协议是用ss的话跟直接搭建ss是一样的吗?我因为听说ss最近不安全 所以才想用v2ray的 但我的一个朋友用v2ray 他租的服务器ip也被墙了 有什么好办法可以提高安全性吗?

        1. root说道:

          我看了比较实在的办法就是把自己服务器的ICMP响应关闭,令其不能探测服务器IP,然后就是更改SSH端口。如果被墙了的话,办法不是很多,我自己都是把被墙的服务器关了,换个IP,再绑定个域名,这样客户端就不用总是跟着修改。其实SS协议传输的数据是加密的,服务器能用的话,其安全性还是比较高的。

          1. Kyle说道:

            最近有传闻 墙 升级后可以侦测到SS的流量特征(类似于之前侦测ssh 隧道的流量特征),从而能定位具体的人。从技术上讲,确实有这个可能性吧?有提高安全性的办法吗?

          2. root说道:

            我能想到的办法就是不翻墙,或者把服务器分给大家用,法不责众。反正GFW那么厉害,有什么办法它也可能定位,并且又有运营商配合,定位到人应该很容易。技术上没什么好办法对付GFW,那自己就低调点,独善其身就好。想像一下,如果大家都可以翻墙,那它定位也没意义了,对吧。

  3. Kyle说道:

    你好,
    我今天试着按照你的配置了一下,但是在PC端的SS客户端添加服务器(配置ip,端口和密码)后,只有Outbound没有Inbound,可能是哪里的配置问题呢?

    1. root说道:

      如果你确定服务端都配置正确的话,没有Inbound,比较大的可能性是VPS防火墙端口没打开。其实SS客户端是有日志可以看的,如果没有提示shadowsocks start,那多半要从网络方面找问题了。“由于目标主机积极的拒绝”信息就是服务器端口没打开,“time out”可能是由于网络状态不好,也有可能是长时间没有数据传输。我建议还是先把v2ray调通可用,然后再更换内核开BBR,因为这个毕竟是提升效果的,如果用都不能用,那效果也无从谈起了。

      1. Kyle说道:

        多谢,按照你的方法昨天试了下。找到了问题所在,看了下日志,提示“由于目标主机积极的拒绝”。应该是端口配置错误了,更改后就可以了。

  4. bubualex说道:

    對不起,本人是linux白痴,看了你的教程之後,大概原理是明白的,但是操作細節不清晰,想請教一下:
    1.Vultr界面有變化,與你介紹的有出入,我是否應該在Servers中選擇“Vultr Cloud Compute(VC2)”?系統是否選擇CentOS 7 X64?然後“Enable IPv6″與”Enable Privat Network“是否有需要勾選?

    2.假如以上我的選擇是正確,請問在頁面控制台逐步操作輸入命令的過程中,是否完全按照你在文中介紹的那樣中英文都粘貼,還是僅僅粘貼英文忽略中文?對不起,我真的是一個linux白痴,萬分抱歉。

    3.鑑於本人之前是購買SS服務,撥入設備數是三個到五個設備,不知道假如在V2ray運行成功之後,自己能否增加SS用戶端口數?如果可以,端口數為三個的話,應該如何配置?
    我在家中的路由是使用Merlin自帶SS撥號,離家的話則用移動設備的SS App撥號使用;
    或者能否是一個SS端口留作家中路由撥號,而離家的話移動設備用V2ray撥號?
    不知道這樣是否可行,還請博主抽空解答,萬分感謝!

    1. root说道:

      对不住,我这些日子没有更新自己的文章,vultr主机的选择可能写的不是很清楚。这里仔细说明一下:
      vultr新建主机的时候,也就是所谓的新建实例“Deploy New Instance”,其中会有一些选择内容,解释如下:
      这里面有三个选择页,第一个是Vultr Cloud Compute(VC2)就是普通的VPS,自己用的话,选这个就行了,第二个storage Instance是新建一个存储实例,相当于网络存储,我用不到也没有仔细研究,第三个Dedicated Instance其实是一种高性能主机,和VC2差不多,不过贵的多,也用不到,所以就像你所说的那样,选VC2就可以了。选完VC2后会有如下选项:
      1、Server Location这个是主机地址,也就是服务器机房的位置,建议不选择日本和新加坡,因为人太多,现在美国的Miami和New York (NJ)机房还有2.5刀一个月的主机,可以选在这两个机房
      2、Server Type其实是选择VPS的操作系统,我是根据使用习惯和熟悉程度选择的CentOS 7 x64版,因为这个比较常见,用起来也不是很难,如果用不来的话,就像我一样选这个系统就可以了
      3、Server Size是选定服务器硬盘、内存以及每月的流量规格,其实就是选择一个每个月的花费,根据自己实际情况选择就行了,一般2.5-5刀的机器就足够用了,我都是一台服务器跑v2ray服务器加Web服务器的,完全没压力
      4、Additional Features是一些附加功能,
      Enable IPv6是看是不是启用IPv6,如果自己网络不支持,建议不启用
      Enable Private Network 这个是看是不是需要一个内部网络,建议不使用
      Enable Auto Backups $0.50/mo这个收钱的东东是启用自动备份,用处不大
      Enable DDOS Protection $10/mo这个每月10刀的东西是DDos防护,如果网站规模不大或者只当SS服务器,那根据用不到
      Block Storage Compatibl这个看字面意思是阻止存储兼容性的,根本就不知道干什么用的
      5、Startup Script自定义启动脚本,对于系统不熟悉的话,不用管它,不设置一样用的尚好
      以上选好后,就可以点那个Deploy Now,新建了一台主机。
      主机新建好后,系统会自己生成root用户密码,用这个密码登录进系统后,就可按文章的内容复制命令执行就是了,不用管中文,那是对命令的解释。如果不太会用VI编辑器修改v2ray的配置文件,那就网上找一下相关说明,vi是Linux系统的神器,它用不熟,很多事都做不了。

      第三个问题我回答的可能不是很准确,据我使用v2ray当SS服务器的经验来看,v2ray并没有像SS那样严格限制每端口只可以一个用户访问。只要是端口对密码正确就可以使用,好像不限制每端口的用户数。当然你也可以通过在配置文件增加端口的方式来区分不同的用户,可以采用在v2ray的配置文件中的”inboundDetour”内容中增加protocol项就可以了,相当于增加对于不同端口的支持,我把我服务器的配置文件贴出来供参考:
      “inboundDetour”: [
      {
      “protocol”: “shadowsocks”,
      “port”: 65443,
      “settings”: {
      “method”: “aes-256-cfb”,
      “password”: “password1”,
      “udp”: false
      }
      },
      {
      “protocol”: “shadowsocks”,
      “port”: 65444,
      “settings”: {
      “method”: “aes-256-cfb”,
      “password”: “www.daehub.com”,
      “udp”: false
      }
      }
      ],
      理论上把以上的内容添加到v2ray的配置文件中,再启动v2ray,用netstat -tnlp命令检查就会发现v2ray会侦听以上的两个SS端口。所以建议你可用路由器连一个端口,移动设备连另一个端口就是了。
      具体情况我也没有仔细试,反正我都是所有应用连同一个端口,都可以用,所以我猜想可能是v2ray并不是向SS那样按端口区分用户的,因为我SS服务器用的少,可能说的也不正确,但是v2ray应该是这样的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注