v2ray 是一个模块化的代理工具,支持 VMess,Socks,HTTP,Shadowsocks 等等协议,并且附带很多高级功能,HTTP,TLS 等等。
前提条件
- 境外 VPS 一台,并已编译安装 Nginx
- 域名一个,解析至该 VPS
- 基本的 Linux 技巧
测试环境
Domain Name
CentOS
1 | LSB Version: :core-4.1-amd64:core-4.1-noarch |
安装
V2Ray
安装 V2Ray
这里使用 GitHub 上的项目:fhs-install-v2ray
以下指令假设已在 su
环境下,如果不是,请先运行 sudo su
1 | bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh) |
此脚本会自动安装以下文件:
/usr/local/bin/v2ray
:V2Ray 程序;/usr/local/bin/v2ctl
:V2Ray 工具;/usr/local/etc/v2ray/config.json
:配置文件;/usr/local/share/v2ray/geoip.dat
:IP 数据文件/usr/local/share/v2ray/geosite.dat
:域名数据文件 此脚本会配置自动运行脚本。自动运行脚本会在系统重启之后,自动运行 V2Ray。目前自动运行脚本只支持带有 Systemd 的系统,以及 Debian / Ubuntu 全系列。
设置开机启动
1 | systemctl enable v2ray |
SSL
安装 EPEL
1 | yum -y install epel-release |
EPEL 的全称叫 Extra Packages for Enterprise Linux 。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL 之后,就相当于添加了一个第三方源。
安装 certbot
1 | yum -y install certbot |
certbot 是一款让你的网站自动部署 Let’s Encrypt 颁发的免费数字证书
申请 SSL 证书
1 | certbot certonly --standalone -d www.test.org |
如果申请成功,证书和私钥路径如下:
1 | /etc/letsencrypt/live/www.test.org/fullchain.pem |
配置
Nginx
打开域名的配置文件
1 | server { |
V2Ray
备份配置文件
1 | cp /usr/local/etc/v2ray/config.json /usr/local/etc/v2ray/config.json_bak |
编辑配置文件
1 | vi /usr/local/etc/v2ray/config.json |
1 | { |
id
为 UUID 可以用这个网站生成:https://www.uuidgenerator.net/
服务端配置来说,主要关心 inbound 中配置,包括端口,协议,和 id 以及 alterId。这些配置需要和客户端一致。
当需要多人使用时,clients
中可以配置多个。
v2ray 支持以下协议,默认的协议为 VMess
- Blackhole
- Dokodemo-door
- Freedom
- HTTP
- Shadowsocks
- Socks
- VMess
Linux 安全设置
防火墙 firewalld
关闭防火墙或者开放端口
关闭防火墙
1 | systemctl stop firewalld.service |
开放端口
添加
1 | firewall-cmd --zone=public --add-port=443/tcp --permanent |
--permanent
永久生效,没有此参数重启后失效。
重新载入
1 | firewall-cmd --reload |
SELinux
关闭 SELinux
1 | vi /etc/selinux/config |
SELinux 是一种基于 域-类型 模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。任何程序对其资源享有完全的控制权。假设某个程序打算把含有潜在重要信息的文件扔到/tmp目录下,那么在DAC情况下没人能阻止他。SELinux提供了比传统的UNIX权限更好的访问控制。
启动
1 | systemctl start v2ray |
查看状态
1 | systemctl status v2ray |
客户端
Windows客户端:
- V2RayW
- V2RayN
- V2RayS
- Clash
Android客户端:
- V2RayNG
- BifrostV
MacOS客户端:
- V2RayX
- V2RayU
- ClashX
iOS(iPhone/iPad)客户端:
- Shadowrocket
- i2Ray
- Kitsunebi
- pepi
- Quantumult
国区 App Store 搜索不到,可使用美区账户,用户名 tangyuan9102@gmail.com ,密码 QWER1234poiu 登录app store再尝试。
关于客户端的配置,这里以 V2RayX 举例:
- Address: 你的服务器IP/地址,后边的是端口,对应服务器配置文件内 inbound 部分的 port
- User ID: 服务器配置文件内 inbound 部分的 ID
- alterId: 服务器配置文件内 inbound 部分的 alterId
备注
- V2Ray 的客户端 Core 和服务端 Core 版本需要一致。
- V2Ray 要求客户端与服务器的时间差不超过1分钟(与时区无关)。
- 本教程仅供学习交流,请勿违反国家法律法规,否则后果自负!