【2.4.6】Vultr上搭建r2ray

V2ray是继Shadowsocks®后又一个体验很棒、功能非常强大的科学上网工具,近年来受到网友的广泛关注和喜爱。V2Ray官网是 https://v2ray.com ,目前已无法直接打开。

一、V2ray简介

V2Ray是近几年十分流行的网络工具,其功能强大,用途不限于突破防火墙,但因其能有效翻墙而广为人知。V2Ray有如下大放异彩的特点:

  • 开源。V2Ray是Project V的核心工具,源代码开源;
  • 多协议支持。传输层支持TCP、mKCP、WebSocket等,上层协议支持Socks、Shadowsocks、以及自定义的VMess等;
  • 多入口和多出口。V2Ray可同时支持多个入站和出站协议,每个协议独立工作;
  • 多平台支持。原生支持Windows、Linux、MacOS三大常用平台,安卓、iOS两大移动平台有丰富的第三方工具;
  • 隐蔽性。V2Ray流量可伪装成网页流量,更难被检测和干扰。

与另一个知名的翻墙工具Shadowsocks®相比,两者区别在于:

  • V2Ray是一个框架/平台,而Shadowsocks®是一个代理工具;
  • V2Ray功能强大配置复杂,Shadowsocks®简单易用;
  • V2Ray性能更好,协议支持更完善。

一句话总结:V2Ray更好更强大,但更难上手和用好。

二、服务器的安装

首先你需要买一台位于境外的服务器,购买境外服务器可参考:一些VPS商家整理。

2.1 方法一

在CentOS、Ubuntu等常用Linux系统上,直接执行如下命令安装V2Ray(如果已安装则更新程序):

bash <(curl -L -s https://install.direct/go.sh)

安装完成后,配置文件为/etc/v2ray/config.json,cat命令可查看内容:cat /etc/v2ray/config.json。一个安装时自动生成的配置文件示例:

{
  "inbounds": [{
    "port": 23581,
    "protocol": "vmess",
    "settings": {
      "clients": [
        {
          "id": "ceb793e6-49cf-25d8-e4de-ae542e62748e",
          "level": 1,
          "alterId": 64
        }
      ]
    }
  }],
  "outbounds": [{
    "protocol": "freedom",
    "settings": {}
  },{
    "protocol": "blackhole",
    "settings": {},
    "tag": "blocked"
  }],
  "routing": {
    "rules": [
      {
        "type": "field",
        "ip": ["geoip:private"],
        "outboundTag": "blocked"
      }
    ]
  }
}

配置文件中”inbounds”下的这几项信息需要留意:port(端口)、clients中的id(用户id)和alterId(额外id),它们将在配置客户端时用到。

配置文件无需任何改动即可正常使用。接下来防火墙放行监听的端口,设置开机启动并运行V2Ray:

# firewalld放行端口(适用于CentOS7/8)
firewall-cmd --permanent --add-port=23581/tcp # 23581改成你配置文件中的端口号
firewall-cmd --reload
# ufw放行端口(适用于ubuntu)
ufw allow 23581/tcp # 23581改成你的端口号
# iptables 放行端口(适用于CentOS 6/7)
iptables -I INPUT -p tcp --dport 23581 -j ACCEPT
# 设置开机启动
systemctl enable v2ray
# 运行v2ray
systemctl start v2ray

我的vultr服务器防火墙默认是开着的,我给关掉了。。

[root@vultr ~]# firewall-cmd --state
running
[root@vultr ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@vultr ~]# systemctl stop firewalld.service
[root@vultr ~]# firewall-cmd --state
not running

查看v2ray是否正在运行

ss -ntlp | grep v2ray 

如果输出为空,大概率是被selinux限制了,解决办法如下:

  1. 禁用selinux:setenforce 0;
  2. 重启v2ray:systemctl restart v2ray

到此,服务端应该配置好了。如果服务器商层面还有防火墙(阿里云/Google/AWS购买的vps),请登录网页后台,放行v2ray的端口。

方法二:

新手建议使用 V2Ray一键脚本,可自定义端口、一键安装BBR加速模块等。

https://www.hijk.pw/centos-one-click-install-v2ray/

三、客户端安装

v2ray客户端下载请访问:V2ray客户端下载。这个下载界面会有匹配的用户安装介绍,

V2Ray项目不区分客户端和服务端,然而实际使用中客户端经常需要用户界面,因此许多开发者基于V2Ray内核开发了友好易用的客户端。

3.1 windows客户端

参考这个:https://www.hijk.pw/v2rayn-config-tutorial/

下文以Windows平台的V2RayW为例,介绍v2ray客户端的配置和使用方法(更知名和好用的v2rayN的配置请参考:v2rayN配置教程):

  1. 下载客户端,双击V2RayW.exe启动(注意:如果从V2RayW官网下载的客户端,需额外下载v2ray-core,本站提供的客户端无需额外下载);
  2. 右键系统托盘的V2RayW图标,点击“配置”;
  3. 在配置窗口点击“增加”,然后在右侧“服务器信息”中填入服务器的ip、端口、用户id和额外id:v2rayW配置界面
  4. 右键托盘图标,点击“加载v2ray”,同时勾选“自动模式(pac)”。v2rayW选择PAC模式

服务器信息配置无误的话,接下来就可以愉快的访问外网了。

3.2 安卓客户端

https://www.hijk.pw/v2rayng-config-tutorial/

四、讨论

4.1 添加Log文件路径

vim /etc/v2ray/config.json

"log" : {
    "access": "/var/log/v2ray/access.log",
    "error": "/var/log/v2ray/error.log",
    "loglevel": "info" },

4.2 能够Ping通,但是没法正常连接

我的shadowsocks支持IPV4,但是V2RAY支持的IPV6。难道是这个原因导致V2ray没法正常使用?

[root@vultr v2ray]# losf -i |grep 8989
-bash: losf: command not found
[root@vultr v2ray]# lsof -i |grep 8989
sshd      27708   root    3u  IPv4 5378989      0t0  TCP 95**.vultr.com:ssh->222.**3:lm-webwatcher (ESTABLISHED)
sshd      27711   sshd    3u  IPv4 5378989      0t0  TCP 95.**.vultr.com:ssh->222.**:lm-webwatcher (ESTABLISHED


[root@vultr v2ray]# lsof -i |grep 33589
v2ray     27765   root    3u  IPv6 5380296      0t0  TCP *:33589 (LISTEN)

五、其他功能

V2Ray是一个功能强大的网络平台/工具,除本文简要介绍的配置,实践中还有许多方面值得深入了解,例如:

  • 日志配置,出现问题时方便排查;
  • 多协议/出口配置,与Shadowsocks、socks等节点互通;
  • 路由规则,根据需求引导流量;
  • 流量伪装,让防火墙更难检测和干扰。建议继续阅读:v2ray高级技巧:流量伪装
  • 多用户配置,建议参考:v2ray多用户配置

参考资料

个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn

Sam avatar
About Sam
专注生物信息 专注转化医学