[2022-08-30]
由于V2Ray停止更新,分叉为V2Ray/Xray项目,对部分步骤按Xray-core服务端进行更新
[2020-04-13]
由于Shadowsocks/ShadowsocksR流量特征已可被识别,可以使用V2Ray获取更好的稳定性
出于安全性考虑,本教程只基于官方教程补充细节帮助理解,不是一键安装脚本,需要自行配置。
个人不建议使用一键脚本安装,除非你自己能维护其功能,否则安装时若出了问题很难查,同时避免来历不明的一键脚本内嵌后门程序。
同时,如果有部署Web站点需求,已经安装了LNMP一键包、Oneinstack、宝塔等工具用户,可以方便的与现有站点共存,避免Xray-core接管443端口,造成站点配置麻烦和证书续签不便。
该配置下,只需要通过面板新增一个站点绑定域名,然后修改Web服务器绑定域名的站点配置文件即可(Nginx为例),无需修改其他配置。
V2Ray是Project V的核心工具,其主要负责网络协议和功能的实现。其有更好的流量伪装功能可降低流量特征以获得更好的稳定性(注意不是加速),本篇以伪装效果相对更好和更稳定的WebSocket+TLS+Web伪装的方式,介绍完整配置流程。
具体由来可见其他博主介绍:https://itlanyan.com/xray-tutorial/,本篇不过多赘述。
各平台客户端:
Android:v2rayNG;iOS :Shadowrocket (需要海外AppleID);
Windows:V2RayN;macOS:V2rayU
此处只会涉及一些适合个人使用的服务商(美国服务器推荐选西海岸城市机房),电信用户推荐CN2线路(年付40美元左右起步),如果对线路质量与安全性有更高要求,可考虑使用Azure国际版,当然使用成本就更高了。
Vultr:https://www.vultr.com/
全球均有机房,日本机房曾经很火,但是很多IP都被墙了,IP ping不通时需要删除多换几次,全球都有机房可用,支持信用卡、支付宝、Bitcoin、Paypal(新用户可获得100美元体验金)。
DigitalOcean:https://www.digitalocean.com/
曾经号称Linode的挑战者,全球均有机房,支持信用卡、支付宝、Paypal(新用户可获得100美元体验金)。
Linode:https://www.linode.com/
随着竞争激烈曾经高高在上的Linode价格也被拉下,全球均有机房,服务支持很不错,支持信用卡、Paypal。
[推荐]HostDare:https://hostdare.com/
China optimized KVM为CN2 GIA线路,国内速度挺不错,支持信用卡、支付宝、Paypal付款。
[推荐]bandwagonhost:https://bandwagonhost.com/
俗称搬瓦工官网已被认证,国内访问可使用镜像域名 https://bwh88.net/,现在OVZ已彻底停售价格也不再廉价,但CN2 GIA线路表现挺不错,支持信用卡、支付宝、银联、Paypal付款。
BudgetVM:https://www.budgetvm.com/
以前有便宜的OpenVZ VPS(现已停售),特点是带宽大,时不时还有实惠的优惠券,支持信用卡、支付宝、Paypal。
OneAsiaHost:https://www.oneasiahost.com/
新加坡服务商,仅限OVZ SSD VPS值得购买,PCCW连国内表现不错,支持Paypal。
接下来开始正式开始教程了_(:з」∠)_
以下步骤均以root用户执行,非root用户可su root或在命令前加“sudo ”执行。
一、准备工作
1、从服务商获取服务器IP、SSH端口(默认为22,部分服务商如板瓦工为随机端口)、root密码(部分服务商如Azure不提供root用户登陆)。
2、下载SSH客户端如putty连接所购买VPS,具体操作可自行搜索。
3、更新一下以免出错,执行以下命令(一行一行执行,复制命令后在putty窗口中鼠标右键即可粘贴)。
apt-get update apt-get upgrade -y
4、使用包管理安装一些需要的软件包
apt-get -y install git zsh vim htop screen wget curl
5、安装oh-my-zsh(只是用的更顺手,与代理配置无关,不需要可跳过)
cd ~ sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
个人比较推荐candy主题(配置文件为用户目录下 .zshrc,如果是root用户登陆,就是 /root/.zshrc),修改完成后再执行 zsh 即可成效。
6、导入vim配置文件(可选),一些服务商vim配置文件稀奇古怪的,操作可能会很别扭,提供个人使用的配置文件 Github,下载.vimrc文件后通过FileZilla一类FTP软件上传至用户目录即可。
7、注册一个域名,并将域名解析至你的VPS IP(可使用tk一类免费域名,具体步骤请网上搜索)。
二、开启Google BBR
本部分为可选操作,开启后可一定程度上改善连接速度,推荐启用。
BBR 是出自谷歌员工之手的应用于 Linux 内核中的拥塞控制技术,可有效改善高延迟网络下连接速度,相关技术介绍可查看 也谈TCP拥塞控制技术 与BBR的加速原理。
1、非OpenVZ虚拟技术(即标明Xen/KVM或Vultr、DigitalOcean、Linode、Azure这类服务商)
修改sysctl配置并生效(一行一行执行)
echo 'net.core.default_qdisc=fq' | tee -a /etc/sysctl.conf echo 'net.ipv4.tcp_congestion_control=bbr' | tee -a /etc/sysctl.conf sysctl -p
检查是否开启
lsmod | grep bbr
显示 tcp_bbr 20480 0 这类结果则表示开启成功。
2、OpenVZ虚拟技术(部分服务商简写为OVZ)
需要在服务商控制台开启Tun/TAP,若控制台无相关选项,可沟通服务商是否支持Tun/TAP。
可参考该篇进行修改 https://github.com/tcp-nanqinlang/wiki/wiki/lkl-rinetd
根据本篇教程内容,加速端口需要设置为443
三、安装Nginx
本篇以oneinstack为例,仅安装nginx,可根据自己需求使用包管理安装或lnmp等一键包。
screen -S oneinstack #如果网路出现中断,可以执行命令`screen -R oneinstack`重新连接安装窗口 cd ~ wget -c http://mirrors.linuxeye.com/oneinstack-full.tar.gz && tar xzf oneinstack-full.tar.gz && ./oneinstack/install.sh --nginx_option 1 --reboot
如果需要安装PHP/Database等工具(比方说搭建博客),可访问 https://oneinstack.com/auto/ 生成新的自动安装命令或使用交互安装。Nginx安装路径为 /usr/local/nginx
安装完成后VPS会自动重启,重启完成后可在浏览器地址栏中输入VPS IP访问试试。
四、安装Xray主程序
首先看一下时间是否准确
date -R
如果时间不准的话可以通过 date --set 命令修改系统时间(OpenVZ虚拟化需要沟通服务商校准)
sudo date --set="yyyy-mm-dd hh:mm:ss"
安装Xray主程序,这里用的是官方提供的脚本
cd ~ bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
安装脚本会自动注册服务,可以通过以下命令进行管理
service xray start #启动xray服务 service xray stop #关闭xray服务 service xray restart #重启xray服务
安装完成后先不要启动,不放心的话可以先执行 service xray stop。
五、修改Xray配置
Xray默认配置文件路径为 /usr/local/etc/xray/config.json,使用vim编辑(按“i”进入编辑模式,编辑完成后按“Esc”退出编辑模式,按“Shift”和“:”键进入命令模式,输入“wq”即可保存退出,“q!”为不保存退出)
vim /usr/local/etc/xray/config.json
可参考以下配置文件修改(#及其之后注释内容不要复制)
无特殊需求的话可直接将该配置文件复制替换,更多高级功能可参考 Xray-examples 调整。
{ "log" : { "access": "/var/log/xray/access.log", "error": "/var/log/xray/error.log", "loglevel": "warning" }, "inbound": { "port":8000, #本地端口,需要和Nginx配置文件中保持一致 "listen": "127.0.0.1", "protocol": "vless", "settings": { "clients": [ { "id":"b63bf414-b75f-4d73-9702-be6e895b62d3", #自动生成,也可按该格式自行修改 "flow": "xtls-rprx-direct", "level":0, "email": "email@email.com" } ], "decryption": "none" }, "streamSettings": { "network": "ws", "wsSettings": { "path": "/web" #WS路径,需要与Nginx配置文件中保持一致 } } }, "outbound": { "protocol": "freedom", "settings": {} } }
六、修改Nginx配置
1、新增Nginx站点,使用oneinstack目录下vhost.sh脚本即可
cd ~ ./oneinstack/vhost.sh
出现如下交互
####################################################################### # OneinStack for CentOS/RedHat 6+ Debian 8+ and Ubuntu 14+ # # For more information please visit https://oneinstack.com # ####################################################################### What Are You Doing? 1. Use HTTP Only 2. Use your own SSL Certificate and Key 3. Use Let's Encrypt to Create SSL Certificate and Key q. Exit Please input the correct option: 3 #一般选择3即可,如果想用自己的SSL证书也可以选2 Please input domain(example: www.example.com): www.example.com #输入自己的域名,DNS解析必须已配置并已生效,不然Let's Encrypt无法签发证书 domain=www.example.com Please input the directory for the domain:www.example.com : (Default directory: /data/wwwroot/www.example.com): Virtual Host Directory=/data/wwwroot/www.example.com #剩下的选项如果用我提供的配置文件的话随便选,反正会被替换
提示如下信息时说明站点已经创建成功,并成功签发Let's Encrypt SSL证书
####################################################################### # OneinStack for CentOS/RedHat 6+ Debian 8+ and Ubuntu 14+ # # For more information please visit https://oneinstack.com # ####################################################################### Your domain: www.example.com Virtualhost conf: /usr/local/nginx/conf/vhost/www.example.com.conf Directory of: /data/wwwroot/www.example.com Let's Encrypt SSL Certificate:/usr/local/nginx/conf/ssl/www.example.com.crt SSL Private Key: /usr/local/nginx/conf/ssl/www.example.com.key
2、编辑Nginx配置文件
前面提示显示,配置文件路径为 /usr/local/nginx/conf/vhost/www.example.com.conf,使用vim编辑
vim /usr/local/nginx/conf/vhost/www.example.com.conf
可参考以下配置文件修改,有注释 # 说明的为需要修改的项目
server { listen 80; server_name www.example.com; #你的域名 access_log /data/wwwlogs/www.example.com_nginx.log combined; #你的域名 index index.html index.htm index.php; root /data/wwwroot/www.example.com; #你的域名 #error_page 400 /400.html; #error_page 403 /403.html; #error_page 404 /404.html; #error_page 502 /502.html; } server { listen 443 ssl; ssl on; ssl_certificate /usr/local/nginx/conf/ssl/www.example.com.crt; #Let's Encrypt SSL Certificate ssl_certificate_key /usr/local/nginx/conf/ssl/www.example.com.key; #SSL Private Key ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; server_name www.example.com; #你的域名 access_log /data/wwwlogs/www.example.com_nginx.log combined; #你的域名 index index.html index.htm index.php; root /data/wwwroot/www.example.com; #你的域名 location /webapi { #路径和Xray配置文件一致 proxy_redirect off; proxy_pass http://127.0.0.1:8000; #端口和Xray配置文件一致 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; } }
编辑完成后重启Nginx
service nginx restart
3、上传伪装站点的HTML文件
FTP访问目录 /data/wwwlogs/www.example.com,上传HTML文件伪装站点。
相关文件可从 此处 下载,将包含index.html的目录内全部文件上传至/data/wwwlogs/www.example.com即可。
七、启动V2Ray并配置本地客户端
1、启动Xray
service xray start
2、配置本地客户端,网上教程很多,就不赘述了。
文章评论