r2ray 【2.4.6】Vultr上搭建r2ray
V2ray是继Shadowsocks(R)后又一个体验很棒、功能非常强大的科学上网工具,近年来受到网友的广泛关注和喜爱。V2Ray官网是 https://v2ray.com ,目前已无法直接打开。
一、V2ray简介
V2Ray是近几年十分流行的网络工具,其功能强大,用途不限于突破防火墙,但因其能有效翻墙而广为人知。V2Ray有如下大放异彩的特点:
- 开源。V2Ray是Project V的核心工具,源代码开源;
- 多协议支持。传输层支持TCP、mKCP、WebSocket等,上层协议支持Socks、Shadowsocks、以及自定义的VMess等;
- 多入口和多出口。V2Ray可同时支持多个入站和出站协议,每个协议独立工作;
- 多平台支持。原生支持Windows、Linux、MacOS三大常用平台,安卓、iOS两大移动平台有丰富的第三方工具;
- 隐蔽性。V2Ray流量可伪装成网页流量,更难被检测和干扰。
与另一个知名的翻墙工具Shadowsocks(R)相比,两者区别在于:
- V2Ray是一个框架/平台,而Shadowsocks(R)是一个代理工具;
- V2Ray功能强大配置复杂,Shadowsocks(R)简单易用;
- 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限制了,解决办法如下:
- 禁用selinux:setenforce 0;
- 重启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配置教程):
- 下载客户端,双击V2RayW.exe启动(注意:如果从V2RayW官网下载的客户端,需额外下载v2ray-core,本站提供的客户端无需额外下载);
- 右键系统托盘的V2RayW图标,点击“配置”;
- 在配置窗口点击“增加”,然后在右侧“服务器信息”中填入服务器的ip、端口、用户id和额外id:v2rayW配置界面
- 右键托盘图标,点击“加载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