科学上网V2Ray4.x Nginx+TLS+ws + MTProto 详细配置教程
前言
当前V2Ray应该算是比较好用的翻墙软件,和ss、ssr相比还是很稳定的,不容易被检测,尤其是加上Nginx和TLS,再做个简单的网站顶在前面,完全伪造成了一个正常的网页访问行为,非常安全可靠,并且具有很强的抗检测能力。
必须会简单使用Linux命令行,即Shell以下示例中的域名均为www.example.cc,域名、UUID以及MTProto的密钥请记得替换成自己的有耐心、喜欢折腾或者想自己学点东西的就往下看没耐心的可以去用机场或者一键脚本这是针对学生和工薪阶层且有科学上网需求的同志,土豪请直接用机场去吧(比如外号richCloud的rixCloud)参考文档
V2Ray官方文档V2Ray白话文教程MTProxy官方文档
涉及的内容:graph LR subgraph V2Ray v2rayws[V2Ray WebSocket] v2raytg[V2Ray MTProto] end free((WAN)) rep(外部请求) –> in[Nginx] in — / –> web[腾讯公益404] in — /wss –> v2rayws v2rayws –> free tgc(Telegram Client) –> v2raytg v2raytg –> free域名申请;Let’s Encrypt申请SSL证书;Nginx作为前置服务配置web主页;通过配置Nginx反向代理访问后面的v2ray服务;v2ray同时提供mtproto服务;使用腾讯公益404作为web主页;大致的步骤准备服务器;申请域名;创建网站根目录;安装Nginx;获得SSL证书;修改Nginx配置支持Https;安装启动V2Ray;安装部署端口规划PortListen IPUse800.0.0.0Nginx Http4430.0.0.0Nginx Https10443127.0.0.1V2Ray WebSocket80800.0.0.0V2Ray MTProto服务器准备
拿来翻墙用的服务器,肯定是本着便宜好用性价比高的原则来选择。搬瓦工毕竟有cn2和cn2 gia线路,价格也算是最便宜的,重点可以支付宝支付,还是选择搬瓦工吧。
逢年过节,搬瓦工都会推出特别款优惠主机,比如双十一、黑五,性价比极高!可以关注下。
BandwagonHost套餐选择
搬瓦工套餐很多,相同配置不同价格排序如下:普通线路 < CN2线路 < CN2 GIA线路一般情况下个人使用或者家用的话,最便宜的套餐足以,不常看视频,一个月流量在100-200GB。
注册购买什么的就不赘述了,现在上过学都看得懂英文。
根据自己的需求选择相应的配置即可,避免浪费。
访问谷歌,简单的网页访问需求12345610G VZ – PROMOSSD: 10 GB RAID-10RAM: 512 MBCPU: 1x Intel XeonTransfer: 500 GB/moLink speed: 1 Gigabit
19.99美刀一年,只能年付。OpenVZ架构,唯一的优势就是便宜。高峰期对主机性能和网络都有影响。
偶尔看看视频,比如油管123456SPECIAL 10G KVM PROMO V3 – LOS ANGELES – CN2SSD: 10 GB RAID-10RAM: 512 MBCPU: 1x Intel XeonTransfer: 500 GB/moLink speed: 1 Gigabit
29.99美刀一年,只能年付。**一般人建议买这个**。KVM架构,延迟勉强,170ms左右,油管4K撑得住。高峰期对网络有一定影响。
强烈视频需求,打游戏,需要低延迟网络1234567SPECIAL 10G KVM PROMO V3 – LOS ANGELES – CN2 GIA – LIMITED EDITION**Limited stock available**SSD: 10 GB RAID-10RAM: 512 MBCPU: 1x Intel XeonTransfer: 300 GB/moLink speed: 1 Gigabit
39.99美刀一年,只能年付。此套餐经常缺货,想买的需要关注,有钱可以买上一级套餐(可季付、半年付、年付)。
同样KVM架构,延迟比cn2略低,油管4K撑得住。高峰期对网络影响较小。
准备软件
1、 MobaXterm: SSH客户端工具,集成了SFTP,安装免费版即可2、 Visual Studio Code: 编辑器,主要拿来编辑Nginx的配置文件和V2ray的配置文件,支持JSON代码高亮,避免配置文件编写错误
配置服务器
这里以搬瓦工为例。
更换操作系统
建议选择CentOS7吧,方便好用。如果是KVM架构的机器,还能选择支持bbr的操作CentOS。这里以CN2 GIA的服务器为例。
以下命令均以CentOS7下的命令为例
登录搬瓦工Client Area,点Services -> My Services查看自己的所有服务点击对应Product/Service后面的KiwiVM Control Panel按钮进入控制台首先将虚拟机关机,关机后才能重装系统选择Install new OS,然后选择”centos-7-x86_64-bbr”,勾选”I agree …”,点Reload重新安装记下root密码和端口号备用更改服务器密码
使用MobaXterm(或者其他SSH工具),使用刚刚的密码和端口号登录服务器,注意下端口号,搬瓦工的SSH不是默认22端口。登录后执行passwd,然后输入两遍新密码即可
12345$ passwdChanging password for user root.New password:Retype new password:passwd: all authentication tokens updated successfully.更新系统
搬瓦工自带的epel总觉得缺包,所以卸载重新安装下。同时需要安装下vim、git、zip和unzip。
1234yum remove -y epel-releaseyum install -y epel-releaseyum update -yyum install -y vim git zip unzip申请域名
由于要使用TLS,所以需要一个域名。建议注册.cc结尾的域名,便宜并且不需要实名认证。传送门:https://wanwang.aliyun.com/
假设我们申请的域名的是:example.cc,编写配置文件时记得替换成自己的。
配置域名解析
域名解析这里配置两条,把example.cc和www.example.cc都指向服务器的地址。
配置好之后,可以在本地ping一下,看看通没通。
1ping example.cc准备web根目录
新建目录
1mkdir -p /www/root
增加index.html
1vim /www/root/index.html
按下i键到插入模式后,将以下所有内容贴进去。
12345678 404 安装配置Nginx
Nginx安装后,会用到两份配置:
第一份是给第一次申请Let’s Encrypt的SSL证书用的(由于此时还没有证书,配置成Https)第二份是增加了V2Ray反代和Http重定向Https的配置,这个就是一直要用的配置安装Nginx
很简单,一行命令搞定。
1yum install -y nginx编辑nginx.conf
文件/etc/nginx/nginx.conf。害怕出错的或者新手请将文件SFTP下载到本地,使用VSCode修改后再SFTP传回服务器。熟悉vim的就直接在命令行修改吧。
配置文件如下:
12345678910111213141516171819202122232425262728293031323334353637383940user nginx;worker_processes auto;error_log /dev/null;pid /run/nginx.pid;include /usr/share/nginx/modules/*.conf;events { worker_connections 1024;}http { log_format main ‘$remote_addr – $remote_user [$time_local] “$request” ‘ ‘$status $body_bytes_sent “$http_referer” ‘ ‘”$http_user_agent” “$http_x_forwarded_for”‘; access_log off; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; include /etc/nginx/conf.d/*.conf; server { listen 80 default_server; listen [::]:80 default_server; server_name example.cc www.example.cc; root /www/root; index index.html index.htm; location / { } }}启动Nginx服务12systemctl enable nginxsystemctl start nginx
然后查看下运行状态是否已经正常启动,看到running即是正常。
1234$ systemctl status nginx● nginx.service – The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2018-11-14 11:22:53 CST; 4 days ago
然后打开浏览器访问www.example.cc和example.cc看是否能打开腾讯公益404页面。能打开说明Nginx已经正确配置,然后就可以开始申请SSL证书了。
安装V2Ray
具体参考V2Ray官方文档:
1bash 原文地址
其它
其它客户端请参考:WindowsAndroidMac OS X
最后提供两份客户端配置文件
无需求的以下就可以不看了。
PC用的支持国内外分流123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160{ “inbounds”: [ { “port”: 1087, “listen”: “127.0.0.1”, “protocol”: “http”, “settings”: { “allowTransparent”: true } }, { “port”: 1086, “listen”: “127.0.0.1”, “protocol”: “socks”, “domainOverride”: [ “tls”, “http” ], “settings”: { “auth”: “noauth”, “udp”: true } } ], “outbounds”: [ { “protocol”: “vmess”, “settings”: { “vnext”: [ { “address”: “www.example.cc”, “port”: 443, “users”: [ { “id”: “27e0efcc-8e13-fef1-9e82-febebc469b2b”, “alterId”: 64, “security”: “auto” } ] } ] }, “streamSettings”: { “network”: “ws”, “wsSettings”: { “path”: “/wss” }, “security”: “tls” }, “mux”: { “enabled”: false, “concurrency”: 8 }, “tag”: “proxy” }, { “protocol”: “freedom”, “settings”: {}, “tag”: “direct” }, { “protocol”: “blackhole”, “settings”: {}, “tag”: “block” } ], “log”: { “loglevel”: “none”, “access”: “D:/v2ray_access.log”, “error”: “D:/v2ray_error.log” }, “dns”: { “hosts”: { “example.com”: “127.0.0.1” }, “servers”: [ “223.5.5.5”, “8.8.8.8”, “localhost” ] }, “routing”: { “strategy”: “rules”, “settings”: { “domainStrategy”: “IPIfNonMatch”, “rules”: [ { “type”: “field”, “domain”: [ “dropbox”, “github”, “google”, “instagram”, “netflix”, “pinterest”, “pixiv”, “tumblr”, “twitter”, “domain:facebook.com”, “domain:fbcdn.net”, “domain:fivecdm.com”, “domain:ggpht.com”, “domain:gstatic.com”, “domain:line-scdn.net”, “domain:line.me”, “domain:medium.com”, “domain:naver.jp”, “domain:pximg.net”, “domain:t.co”, “domain:twimg.com”, “domain:youtube.com”, “domain:ytimg.com” ], “outboundTag”: “proxy” }, { “type”: “field”, “ip”: [ “125.209.222.0/24”, “149.154.167.0/24”, “149.154.175.0/24”, “91.108.56.0/24” ], “outboundTag”: “proxy” }, { “type”: “field”, “domain”: [ “cctv”, “geosite:cn”, “umeng”, “domain:apple.com”, “domain:crashlytics.com”, “domain:icloud.com”, “domain:ixigua.com”, “domain:pstatp.com”, “domain:snssdk.com”, “domain:toutiao.com” ], “outboundTag”: “direct” }, { “type”: “field”, “ip”: [ “geoip:cn”, “geoip:private” ], “outboundTag”: “direct” }, { “type”: “field”, “domain”: [ “domain:doubleclick.net” ], “outboundTag”: “block” } ] } }}路由器用的,透明代理12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758{ “inbounds”: [ { “port”: 7070, “protocol”: “dokodemo-door”, “domainOverride”: [ “tls”, “http” ], “address”: “”, “settings”: { “network”: “tcp,udp”, “timeout”: 30, “followRedirect”: true } } ], “outbounds”: [ { “protocol”: “vmess”, “settings”: { “vnext”: [ { “address”: “www.example.cc”, “port”: 443, “users”: [ { “id”: “27e0efcc-8e13-fef1-9e82-febebc469b2b”, “alterId”: 64, “security”: “auto” } ] } ] }, “streamSettings”: { “network”: “ws”, “wsSettings”: { “path”: “/wss” }, “security”: “tls” }, “mux”: { “enabled”: false } } ], “log”: { “loglevel”: “none”, “access”: “”, “error”: “” }, “dns”: { “servers”: [ “localhost” ] }}