V2Ray翻墙完全教程(WS+TLS+Web)【请更新V2Ray客户端至4.23.2以上】

前言

本文是搭建V2Ray服务器(ws+tls+web)的完整教程。除了搭建V2Ray+ws+tls+web的过程,还包括配置CDN隐藏IP,打开BBR加速,以及简单配置防火墙防探测。最近(2020年初开始)防火墙加大了封杀VPN的力度,很多SS,SSR,纯VMess都开始间歇掉线,有些代理甚至直接被封IP。如果你打算自己搭建翻墙服务,强烈推荐V2Ray+ws+tls+web(CDN可选)一步到位。

本文面向小白,你只要会购买虚拟主机,会使用SSH连接服务器,那么看懂本教程就毫无压力。当然如果有搭建SS/SSR的经验,就更容易看懂了。建议能看懂本教程的,尽量购买VPS自建翻墙服务。按照本文搭建实在有困难的用户,可以考虑迷雾通或其它外资VPN。

不推荐使用一键脚本,很多一键脚本都存在安全隐患,轻则屏蔽掉几个网站,重则把你的服务器变成“肉鸡”(即黑客攻击别人电脑的跳板)。另外,就算用脚本搭建服务器,本文中的大部分操作,比如购买域名,配置域名解析等等,脚本无法自动完成。你恐怕还要亲自购买域名,亲自配置域名解析,亲自登录VPS执行脚本。本文中的方法只比一键脚本多出几步,但是可以大大降低安全风险。

自建V2Ray服务器首先要购买VPS(虚拟主机),为避免广告嫌疑,正文中不推荐VPS,我会在评论中补充一些常见的外资VPS。一般而言,自建服务的成本远远低于机场,大多数VPS每个月花费20-30元左右,流量1TB/月,有些外资VPS价格低到10-20元,甚至每月不到10元。如果愿意折腾,还可以用免费的谷歌云。此外,自建服务没有客户端数量限制,如果多人分摊成本,价格就更便宜了。

V2Ray+ws+tls+web是目前最稳定的翻墙技术之一,即使在六四、十一也稳如泰山。和SSR的流量混淆不同,V2Ray+ws+tls用真正的https流量翻墙,没有必要做任何混淆。在防火长城看来,你的流量和不计其数的https流量没有任何区别。但是,如果有好事者主动访问你的代理服务器,就会发现一些不对劲:
https://i.imgur.com/avZQgib.png
【fig0.1】

尽管流量没有任何明显的特征,但是如果墙主动访问代理服务器,会发现流量的目的地没有真正的网站,从而识破https流量的目的。使用https流量不做掩护,反而增大了IP被墙的概率。因此你需要在V2Ray服务外面加一层真网站做掩护。
https://i.imgur.com/raSjDmM.png
【fig0.2】

这就是V2Ray+ws+tls再加上web的原理。在配置了真实网站之后,只有你自己知道是个代理,在别人看来是个网站(包括墙)。反过来说,V2Ray+ws+tls+web也可以看作是自建了一个网站,然后利用这个网站来翻墙。因此,如果你读完本文,不仅能学会V2Ray翻墙,还能学到一点建网站的流程。

上面“https流量”的正确叫法是“tls流量”,这东西就是你平时浏览网页发出的流量。这里为了方便新手理解,叫做“https流量”。

安全提示:
如果服务器之前运行过SS,SSR,V2Ray(非TLS)等服务,请确保先停止原来的代理服务,再安装V2Ray。如果不知道怎么停止,请重装VPS(在网页控制面板上点reinstall,不到一分钟就搞定)。翻墙的隐蔽性取决于最薄弱的一环,如果服务器上同时运行其它代理软件,这些代理软件依然会被墙探测到,这种情况下V2Ray+ws+tls+web并不能保证隐蔽性。


自建网站看上去很复杂,其实很简单,只要按照以下步骤:

  • 购买域名&配置域名解析:V2Ray需要域名伪装成真正的网站,因此你需要购买一个域名,并把域名绑定到服务器的IP地址上。
  • 一键填写配置文件:本文已经写好了配置文件,只要把域名,UUID等信息填进去就行了。
  • 一键安装v2ray+nginx
  • 上传配置文件&一键运行
  • 配置客户端


成功翻墙以后,还可以做以下事情进一步强化:
  • 可选1. 加固服务器
  • 可选2. 配置CDN隐藏IP
  • 可选3. 使用BBR加速
  • 可选4. 自行编译Nginx


下面按照以上顺序讲解配置。


1. 购买域名&配置域名解析

这里从域名注册商GoDaddy购买域名,用Cloudflare提供域名解析。GoDaddy本身也提供域名解析服务,这里用Cloudflare是为了配置CDN方便。如果遇到墙加高,或者IP被墙等极端情况,只要简单的配置就可以切换成v2ray+ws+tls+web+cdn。CDN翻墙速度较慢,但是稳定性极高。

可能不少新手没听说过GoDaddy和Cloudflare,这里介绍一下,GoDaddy是世界上最大的域名提供商,占据市场30%的份额。Cloudflare是世界上最大的CDN提供商,全球半数的网站都在使用Cloudflare。注册不用担心隐私泄露或钓鱼风险。

注册GoDaddy和CloudFlare需要邮箱。特别注意,购买域名之后,域名服务商会公开邮箱地址。建议至少使用gmail注册,如果对隐私有较高要求,可以用Protonmail等匿名邮箱注册。

1.1 注册GoDaddy

点击这里进入GoDaddy的新加坡官网,全过程都有中文界面。出于安全考虑,选择邮箱注册。
https://i.imgur.com/bu3N2ZK.png
【fig1.1.1】


1.2 选择一个域名

GoDaddy和淘宝的用法完全一样。注册完成以后,回到GoDaddy首页。点击搜索框,输入一个你想要的域名,查询价格。GoDaddy会根据域名包含的词汇定价,为了降低成本,域名尽量选得随机一些,其中不要包含任何单词,我这里头滚键盘输入hrw1rdzqa7c5a8u3ibkn。
https://i.imgur.com/IxWvPW8.png
【fig1.2.1】

可以看到不同后缀的域名价格差别很大,通常.com .net这类域名比较昂贵.website,.site,.rocks,.xyz价格较低,选一个最便宜的。这里我们选www.hrw1rdzqa7c5a8u3ibkn.website,这个域名一年不到7块钱。如果你购买时发现价格贵一些也是正常的,域名首年的价格通常不到10块钱。
https://i.imgur.com/ywKsYoB.png
【fig1.2.2】

接下来进入购物车,隐私保护不用选。
https://i.imgur.com/8fM0rJP.png
【fig1.2.3】

点进入购物车,进入结算页面。GoDaddy默认选购买2年,我们的域名只用来翻墙,选1年就可以了,到时候再换。
GoDaddy支持支付宝或信用卡付款。第一次购买域名,GoDaddy会要求你填写个人信息,这里姓名和手机号随便填一个假的就行。
https://i.imgur.com/NACRyMf.png
【fig1.2.4】

购买完成,刚买到的域名不会马上在域名列表里出现,一般会有一两分钟的延迟。
接下来注册Cloudflare。GoDaddy的页面暂时不要关,一会还要回来配置域名服务器。

1.3 注册CloudFlare。

打开Cloudflare官网,用邮箱注册,如图。注册页面入口https://dash.cloudflare.com/sign-up
https://i.imgur.com/S2epVPg.png
【fig1.3.1】

接下来输入刚才购买的域名,注意这里输入的是【二级域名】。所谓二级域名,可以理解为网址去掉www。
比如我的网站的网址是www.hrw1rdzqa7c5a8u3ibkn.website,那么这里应该输入hrw1rdzqa7c5a8u3ibkn.website,如图:
https://i.imgur.com/Q8Q5TA9.png
【fig1.3.2】

点【Add Site】,把域名交给Cloudflare托管。

接下来选择套餐,这里选择FREE套餐。
https://i.imgur.com/brAXbxG.png
【fig1.3.3】

点【Confirm Plan】,进入管理页面,不要关掉页面,接下来配置域名解析。

1.4 配置域名解析

配置域名解析分两步:
  • 配置域名服务器记录(也叫name server,NS记录)
  • 配置地址解析记录(也叫address,A记录)


NS记录用来表明由哪台服务器对域名进行解析。从GoDaddy买到域名后,域名是由Godaddy的服务器进行解析的。我们这里把Godaddy的服务器换成Cloudflare的服务器。

如图是Cloudflare的管理界面,如果你的域名之前有配置域名解析,管理界面会显示之前的记录。暂时不用管这些。
点Continue,修改域名服务器。

【fig1.4.1】

点【Continue with default】
https://i.imgur.com/YiZuOAP.png
【fig1.4.2】

接下来Cloudflare会提示你变更域名服务器,并给出了方法。
https://i.imgur.com/HTUNjSb.png
【fig1.4.3】

画红框的部分就是Cloudflare提供的两个域名服务器,我这里是ns90.domaincontrol.com和ns91.domaincontrol.com,
你看到的的可能和我不一样。

回到GoDaddy,点击屏幕右上角的用户名,选择【我的产品】。
https://i.imgur.com/H7iSxUX.png
【fig1.4.4】

这里可以看到你拥有的域名,点击域名旁边的【DNS】,进入DNS管理页面。
https://i.imgur.com/he6OqIE.png
【fig1.4.5】

在DNS管理界面向下拉,找到域名服务器。如图所示,这里可以看到GoDaddy提供的两个域名服务器,点击【更改】。
https://i.imgur.com/LBZ5vNd.png
【fig1.4.6】

选择【输入我自己的域名服务器】
https://i.imgur.com/93ic5KS.png
【fig1.4.7】

输入刚才Cloudflare提供的两个域名服务器,我这里是fccp.ns.cloudflare.com和xjp.ns.cloudflare.com,
点击【保存】。
https://i.imgur.com/LUl7HAd.png
【fig1.4.8】

注意不要有多余的域名服务器,不是CloudFlare提供的就要删除,否则可能会出问题。

接下来转移域名服务器可能需要几分钟,转移完成后会收到Cloudflare的邮件,可以先等一阵子。

配置地址解析(A记录)
转移域名服务器完成后,进入cloudflare的首页,点击右上角的【log in】,进入你的账户,如图:
https://i.imgur.com/rdFD2Ke.png
【fig1.4.9】

点击买来的域名,进入下一步,如图:
https://i.imgur.com/dMSA0xq.png
【fig1.4.10】

点击【DNS】按钮,进入Cloudflare的DNS管理页面,如下图:
https://i.imgur.com/BCeOWfm.png
【fig1.4.11】

点击【Add record】,一次可以添加一条解析记录.

这里简单讲解一下,如果不想了解原理,可以跳过这一部分。

每条域名解析有四个部分:Type,Name,Address,TTL

Type是域名解析的类型,常见的几种有
  • A记录:即地址(Address)记录,用来指定域名的IPv4地址。如果需要将域名指向一个IP地址,就需要添加A记录。举个例子,我们要把域名www.hrw1rdzqa7c5a8u3ibkn.website指向VPS的IP地址218.30.118.6,就要添加A记录。
  • AAAA记录,指定域名的IPv6地址。
  • CNAME:即规范名字(Canonical Name)记录,俗称“别名”。如果需要把域名指向另一个域名,就要添加CNAME记录。
  • NS:域名服务器记录,如果要把域名交给其他DNS服务器解析,就需要添加NS记录。我们刚才修改的就是NS记录。


接下来说明每个选项应该填什么,以及为什么这么填:

Name
对于A记录,这里介绍三种填法
  • www:表示解析带www的域名,即www.hrw1rdzqa7c5a8u3ibkn.website
  • @:直接解析裸域名,即hrw1rdzqa7c5a8u3ibkn.website
  • *:表示泛解析,即匹配其他所有域名 *.hrw1rdzqa7c5a8u3ibkn.website


Address
这里填VPS的IP地址,我这里是218.30.118.6

TTL
即 Time To Live,缓存的生存时间。指本地dns缓存解析记录的时间,缓存失效后会再次获取记录。在Cloudflare里,如果配置了CDN,则这里填Auto即可;如果没有配置CDN,可以选择Auto,也可以选择一个大于1小时的值。

理解了上面的内容以后,接下来添加两条A记录(如果VPS只有IPv6地址则添加AAAA记录)

点一下云朵,确保云是灰色的(DNS only)。橘色云朵表示此解析记录使用CDN,灰色云朵表示不使用 CDN,点击云朵可以切换。这里不要使用CDN,否则接下来的配置会出问题。
  • 第一条A记录,name填www,address填服务器IP地址,TTL选择1小时。(表示解析带www的地址)
  • 第二条A记录,name填@,address填服务器IP地址,TTL选择1小时。(表示解析不带www的裸域名)


填好之后的正确结果如图:
https://i.imgur.com/qDKfuRy.png
【fig1.4.12】

注意云一定是灰色的。


检查是否配置成功:
配置完成后点【save】就大功告成了,可以打开windows的powershell,输入
ping www.hrw1rdzqa7c5a8u3ibkn.website

(替换成你的域名)

Ping一下你的域名,如果能Ping通,就说明域名解析没问题。


2. 配置文件

V2Ray和Nginx的配置文件这里已经写好。你需要做的就是填表格,把配置中标出的地方换成自己的内容。
编辑配置文件可以用Windows记事本,不过推荐使用Notepad++。
下载地址:
网页链接直接下载链接(7.8.4)

2.1 V2Ray配置文件

V2Ray配置文件如下:
{
"inbound": {
    "protocol": "vmess",
    "listen": "127.0.0.1",
"port": 8964,
"settings": {"clients": [
        {"id": "◆◆◆◆◆◆◆◆◆◆◆◆"}
    ]},
"streamSettings": {
"network": "ws",
"wsSettings": {"path": "/★★★★★★★★★★★★"}
    }
},

"outbound": {"protocol": "freedom"}
}

是不是很短?接下来把标了符号的地方换成你自己的信息。

(1)
◆◆◆◆◆◆◆◆◆◆◆◆:标“◆”的地方填写UUID。

UUID可以从这个网站生成:https://www.uuidgenerator.net/。只要打开或者刷新这个网页就可以得到一个UUID。
举个例子,我生成的UUID是:

63c0042a-4a85-4d03-a488-3ba3aa002461


(2)
★★★★★★★★★★★★:标“★”的地方填写一个随机字符串。注意不要删掉前面的斜杠。

“随机字符串”就是你在键盘上胡乱敲打出来的东西,比如dsfhsdjfhref。推荐用这个网站生成一个,只要打开或刷新网页就可以得到一个随机字符串。

我用这个网站随机生成的字符串是mL7Gg8K

这个随机字符串就是WebSocket路径,不要抄我这里的例子,去自己生成一个!否则会被墙探测出来。建议WebSocket路径取得长一些(5个字符以上),过于简单,过于常见的路径(比如/ray,/v2,/v2ray之类的名称),很容易被墙探测出来。

填好之后的配置如下图:
https://i.imgur.com/K1FEnrw.png
【fig2.1.1】

最后,把V2Ray的配置文件另存为config.json

2.2 Nginx配置文件

Nginx配置文件如下:

server {
    ### 1:
    server_name ●●●●●●●●●●●●;

    listen 80 reuseport fastopen=10;
    rewrite ^(.*) https://$server_name$1 permanent;
    if ($request_method  !~ ^(POST|GET)$) { return  501; }
    autoindex off;
    server_tokens off;
}

server {
    ### 2:
    ssl_certificate /etc/letsencrypt/live/●●●●●●●●●●●●/fullchain.pem;

    ### 3:
    ssl_certificate_key /etc/letsencrypt/live/●●●●●●●●●●●●/privkey.pem;

    ### 4:
    location /★★★★★★★★★★★★
    {
        proxy_pass http://127.0.0.1:8964;
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;

        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_requests 10000;
        keepalive_timeout 2h;
        proxy_buffering off;
    }

    listen 443 ssl reuseport fastopen=10;
    server_name $server_name;
    charset utf-8;

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_requests 10000;
    keepalive_timeout 2h;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve secp384r1;
    ssl_prefer_server_ciphers off;

    ssl_session_cache shared:SSL:60m;
    ssl_session_timeout 1d;
    ssl_session_tickets off;
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 10s;

    if ($request_method  !~ ^(POST|GET)$) { return 501; }
    add_header X-Frame-Options DENY;
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options nosniff;
    add_header Strict-Transport-Security max-age=31536000 always;
    autoindex off;
    server_tokens off;

    index index.html index.htm  index.php;
    location ~ .*\.(js|jpg|JPG|jpeg|JPEG|css|bmp|gif|GIF|png)$ { access_log off; }
    location / { index index.html; }
}

看上去很长,实际上只有四处需要填写,配置文件里用#1,#2,#3,#4标出了位置,把标符号的地方换成你自己的信息。

●●●●●●●●●●●●:标注“●”的地方填写域名,注意这里的域名带www

这个域名就是前面购买的域名,本文中是www.hrw1rdzqa7c5a8u3ibkn.website,一共有三处需要填,都以“●”标出:

(1) server_name ●●●●●●●●●●●●; 注意域名和前面的server_name保持一个空格,后面的分号“;”不要删掉。
填好之后:(注意带www,以下皆相同)
server_name www.hrw1rdzqa7c5a8u3ibkn.website;

(2) ssl_certificate /etc/letsencrypt/live/●●●●●●●●●●●●/fullchain.pem; 两边的斜杠“/”不要删掉。
填好之后:
ssl_certificate /etc/letsencrypt/live/www.hrw1rdzqa7c5a8u3ibkn.website/fullchain.pem;

(3) ssl_certificate /etc/letsencrypt/live/●●●●●●●●●●●●/fullchain.pem; 一样,两边的斜杠“/”不要删掉
填好之后:
ssl_certificate /etc/letsencrypt/live/www.hrw1rdzqa7c5a8u3ibkn.website/fullchain.pem;

(4) ★★★★★★★★★★★★:标注“★”的地方填写一个随机字符串,这个随机字符串必须和V2Ray配置中的一样,不然无法工作。注意不要删掉前面的斜杠。
这个例子里,此处填mL7Gg8K。

填好之后的配置如下图:
https://i.imgur.com/Vc5LhXw.png
【fig2.1.2】

最后,把Nginx的配置文件另存为default.conf(注意扩展名就是.conf)


3. 上传配置 & 运行

3.1 连接到服务器,安装v2ray+Nginx

很多新手在买到VPS之后不知所措,其实VPS和游戏账号是一样的,买游戏账号付款之后,店家会私信告诉你两件东西:
用户名,密码


买VPS付款之后,VPS提供商会给你发邮件,告诉你四件东西:
IP地址,密码,登录账号,端口


IP地址和密码一定会有,登录账号如果没说,默认是root。端口如果没说,默认填22.

拿到登录信息之后,就可以登录服务器了。这里推荐Bitvise SSH,轻量级,但是功能强大。
下载链接:https://www.bitvise.com/ssh-client-download
直接下载链接:https://dl.bitvise.com/BvSshClient-Inst.exe
安装好之后的界面如下图,点红框圈起的下拉菜单,【Initial method】下拉菜单里面选【password】,在【Store encrypted password in profile】选项上打勾。
https://i.imgur.com/FliqoSK.png
【fig3.1.1】

这里假定我们的IP地址是218.30.118.6,密码是12345,登录账号和密码分别是root和22. 如图:
  • 【Host】:这里填IP地址
  • 【Port】:这里填端口,如果没说就是22
  • 【Username】:这里填用户名,如果没说就是root
  • 【Password】:登录密码。

填好之后如下图,点【Log in】就可以登录了。
https://i.imgur.com/mWm5Oxq.png
【fig3.1.2】

第一次登录服务器会弹出窗口,问是否要保存密钥,点【Accept and save】继续。

成功登录之后会弹出两个窗口。
https://i.imgur.com/DvucZdx.png
【fig3.1.3】

https://i.imgur.com/UNzAKOO.png
【fig3.1.4】

一个是文件浏览窗口,使用方法和Windows资源管理器一样,这里可以浏览服务器上的文件。把电脑中的文件拖拽到这里,就可以把文件上传到服务器。
另一个黑色的窗口是命令窗口。在电脑上复制一段文字,在这个窗口上右键,就可以把文字粘贴到命令窗口。

3.2 配置SSL证书

为了用真正的https流量翻墙,我们的网站必须有合法的SSL证书。可以用自动化工具Certbot申请证书,只要把以下命令复制到命令窗口,依次执行即可。

这里说的“证书”,实际指的是“数字证书”。当然申请完全是免费的,申请时需要邮箱地址。如有必要,可以使用匿名邮箱。

(1) 安装Certbot:
yum install -y python36 && pip3 install certbot


运行这条命令后,如果显示:
Successfully installed xxxx, xxxx, xxxx (各种软件包名字)

就表示成功。

(2) 停止防火墙
systemctl stop firewalld && systemctl disable firewalld

注意,在CentOS7版本以上,默认开启防火墙,不关闭防火墙将无法申请证书。某些系统上没有安装firewalld防火墙,执行这一步命令会报错,但是不影响后面的操作。

运行这条命令后,如果显示:
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

就表示成功

(3) 申请SSL证书
这一步做个填空题,把这条命令里的域名和邮箱,换成你自己的信息。
certbot certonly --standalone --agree-tos -n -d www.●●●●●● -d ●●●●●● -m ▲▲▲@▲▲▲.▲▲▲

第一个-d加一个带www的域名,第二个-d加一个不带www的域名,-m后面加你的电子邮箱。
注意前后要带空格。

例子:(域名:www.hrw1rdzqa7c5a8u3ibkn.website,邮箱:xijinping@protonmail.com)
certbot certonly --standalone --agree-tos -n -d www.hrw1rdzqa7c5a8u3ibkn.website -d hrw1rdzqa7c5a8u3ibkn.website -m xijinping@protonmail.com

运行这条命令后,如果显示:
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
  /etc/letsencrypt/live/www.hrw1rdzqa7c5a8u3ibkn.website/fullchain.pem
  Your key file has been saved at:
  /etc/letsencrypt/live/www.hrw1rdzqa7c5a8u3ibkn.website/privkey.pem
  Your cert will expire on 2020-06-04. To obtain a new or tweaked
  version of this certificate in the future, simply run certbot
  again. To non-interactively renew *all* of your certificates, run
  "certbot renew"
- Your account credentials have been saved in your Certbot
  configuration directory at /etc/letsencrypt. You should make a
  secure backup of this folder now. This configuration directory will
  also contain certificates and private keys obtained by Certbot so
  making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:

  Donating to ISRG / Let's Encrypt:  https://letsencrypt.org/donate
  Donating to EFF:                    https://eff.org


就表示成功。

注意:这一步比较容易出错,常见的问题有:
  • 其它代理占用了80,443端口。解决方法:停止其它代理软件,或重装VPS。
  • 没有正确配置域名解析。解决方法:ping一下域名,看看能不能正确解析到IP。注意不要打开CDN(云朵点灰)。
  • 没有关闭防火墙。解决方法:回到(2),关闭防火墙。


(4) 配置证书自动更新
echo "0 0 1 */2 * service nginx stop; certbot renew; service nginx start;" | crontab

运行这条命令后,如果没有任何信息输出,就表示成功。

我们申请的证书只有三个月期限,上面的命令表示每隔两个月,证书就自动续命一次,从而保证可以一直用下去。

3.3 安装V2Ray和Nginx
(1) 一键安装
V2Ray和Nginx可以一键安装,把下列命令复制粘贴到控制台,运行即可。

yum install -y nginx && yum install -y curl && bash -c "$(curl -L -s https://install.direct/go.sh)"

运行这条命令后,如果最后一行显示:
V2Ray v4.x.x is installed.
就表示成功。(如果V2Ray安装成功,那么Nginx也一定安装成功)

(2) 关闭SELinux
在某些系统上,需要关闭SELinux,否则Nginx无法正常将流量转发给V2Ray,输入
setsebool -P httpd_can_network_connect 1 && setenforce 0

关闭SELinux,没有提示就表示成功。

4. 上传配置文件&运行

安装好V2Ray和Nginx后,我们终于来到了最后一步。在启动V2Ray之前,需要把之前的配置文件上传

4.1 上传配置文件

这一步把第(2)步编辑好的配置文件上传就可以了。
首先上传V2Ray的配置文件,V2Ray的配置文件存储在
/etc/v2ray

目录下,把上面这个路径,复制到文件管理器的路径栏,回车,即可跳转到该目录下。如图:
https://i.imgur.com/Cj92ghh.png
【fig4.1.1】

可以看到这里已经有一个config.json文件了,这是V2Ray安装时自动生成的。接下来的操作和Windows一样,把你编辑好的config.json拖拽到这里,就可以上传了。

文件管理器会提示你存在同名文件,选择【Overwrite】覆盖原来的文件即可。
https://i.imgur.com/n0Uqnj7.png
【fig4.1.2】

上传完成好以后,最好再验证一下,输入
/usr/bin/v2ray/v2ray -test -config=/etc/v2ray/config.json

如果显示:
V2Ray 4.x.x (V2Fly, a community-driven edition of V2Ray.)
A unified platform for anti-censorship.
Configuration OK.


说明配置没有问题。

然后按同样的步骤上传nginx配置文件,Nginx的配置文件存储在
/etc/nginx/conf.d

目录下,转到这个目录,拖拽上传你编辑的default.conf文件即可。

再验证一下Nginx配置是否正确,输入:
nginx -t

如果显示:
nginx: the configuration file /etc/nginx/ngin短网址nf syntax is ok
nginx: configuration file /etc/nginx/ngin短网址nf test is successful


说明配置没有问题。

4.2 启动

V2Ray和Nginx都是守护进程,可以认为是Windows上的“后台服务”。把V2Ray和Nginx配置成守护进程以后,这两个程序就可以在服务器上持续运行了。Linux服务器的稳定性非常高,可以连续不重启运行一年,甚至更长。我们接下来就让V2Ray和Nginx在服务器上运行一年。

在Linux上启动一个守护进程很简单,输入以下两条命令就可以启动V2Ray和Nginx:

service v2ray start
service nginx start

有启动,也有其它操作,这里列出所有有用的命令,方便管理后台:

启动V2Ray:
service v2ray start

重启V2Ray:
service v2ray restart

注:这一条是常用命令,每次修改配置文件后,都要重启一下V2Ray。

查看V2Ray状态:
service v2ray status

停止V2Ray:
service v2ray stop

查看V2Ray版本:
/usr/bin/v2ray/v2ray -version

测试V2Ray配置文件:
/usr/bin/v2ray/v2ray -test -config=/etc/v2ray/config.json

注:常用命令,每次修改配置文件后,最好检查一下配置文件是否正确。
配置文件位置:
/etc/v2ray/config.json 

Nginx:
启动Nginx:
service nginx start

重启Nginx:
service nginx restart

查看Nginx状态:
service nginx status

停止Nginx:
service nginx stop

测试Nginx配置文件:
nginx -t

配置文件位置:
/etc/nginx/conf.d/default.conf

配置完成后,可以在浏览器里输入网址,如果显示Nginx的红色欢迎页面,就说明网址配置成功了!
接下来要做的是上传一个网页模板,这样别人访问你的服务器就会看到一个真的网站。
https://i.imgur.com/Npk1rOW.png
【fig4.2.1】


4.3 上传网页模板

去Google上搜“website template”可以找到很多提供网页模板的网站,这里随便找一家,例如https://colorlib.com/wp/templates/

网页模板强烈建议用纯英文模板,其中不要包含任何中文内容,否则(可能)会增加网站被墙的概率。

下载好以后,解压压缩文件,一路点开,如图,可以看到里面有一个index.html文件(有些是index.htm或index.php)
https://i.imgur.com/8UXO1Ul.png
【fig4.3.1】

把这个文件夹里的所有东西,包括index.html,blog.html,以及css,fonts,img,js几个文件夹,全部上传到
/usr/share/nginx/html/
目录下面。上传方法前面已有介绍,打开Bitvise SSH,拖动到文件管理窗口即可上传。

接下来打开网址,这时候可以看到一个真正的网站。(提示:不同系统的Nginx欢迎页面可能不同,只要这里可以显示网页,就说明Nginx工作正常)

5. 客户端配置

5.1 Windows客户端

Windows客户端推荐V2RayN,V2RayN是开源软件,下载地址:
https://github.com/2dust/v2rayN/releases

可以看到有一个v2rayN-Core.zip和一个v2rayN.zip,这里下载v2rayN-Core.zip(GUI界面+V2Ray内核)。

安装好V2RayN之后,如图
https://i.imgur.com/UP27H1F.png
【fig5.1.1】

点【服务器】按钮,选择【添加VMess】服务器。
  • 地址:你的VPS的IP地址,这里我的IP是218.30.118.6。
  • 端口:443
  • 用户ID:就是2.1节中,V2Ray配置文件里的UUID,本文中是63c0042a-4a85-4d03-a488-3ba3aa002461
  • 额外ID:0(保持默认值)
  • 加密方式:随便选。
  • 传输协议:选ws,即WebSocket
  • 别名:随便填。
  • 伪装类型:none(保持默认值)
  • 伪装域名:绑定到服务器的域名,我的是www.hrw1rdzqa7c5a8u3ibkn.website
  • 路径:即前面的随机字符串,注意前面必须要加上斜杠“/”,这里的例子是/mL7Gg8K
  • 底层传输安全:选tls

配置完成后如下图:
https://i.imgur.com/rYmRD6S.png
【fig5.1.2】


5.2 Android客户端

安卓客户端推荐V2RayNG,配置和V2RayN可以互通。下载地址:
https://github.com/2dust/v2rayNG/releases

分享配置很简单,在Windows的V2RayN客户端里,点击服务器列表,勾选右边的“显示分享内容”,可以显示配置的二维码。安卓端选择“扫描二维码”导入配置即可。

5.3 iOS客户端

iOS客户端全部要收费,常用有Shadowrocket(小火箭)等。配置方法略。

其它平台客户端(Mac OS,Linux)可以查看V2Ray官网的客户端列表:神一样的工具们

到这一步结束,整个V2Ray翻墙的搭建就结束了。接下来是一些可选配置,可以加强你的服务器的隐蔽性和安全性。


可选配置1:使用CDN隐藏IP

CDN相当于在服务器前又加了一层代理,墙只知道你的域名和CDN的IP,无法得知代理服务器的真实IP。如果伪装网站开启了DoH+ESNI,甚至连域名都可以隐藏。因此v2ray+ws+tls+web+CDN相当于事实上的双重代理,它的隐蔽性和安全性非常高。缺点是Cloudflare 会让访问延迟变高一些。除非遇到IP被墙,或者六四前后等墙加高等极端情况,如果平时翻墙很稳定,就没有必要打开CDN。

因为前面已经注册了Cloudflare解析,所以使用CDN非常简单,只要两步即可。

(1) 登录Cloudflare账号,点击【DNS】按钮,进入Cloudflare的管理页面,如图:
https://i.imgur.com/ihzyMBe.png
【figb.1】

点一下灰色的云,让颜色变成橙色即可。

点击切换后,域名不会马上解析到CDN的地址,一般会有几分钟的延迟。可以ping一下你的服务器的域名,如果返回地址是CDN的IP,就说明切换完成。

(2.1) 使用自动选择的CDN IP地址
接下来配置客户端。客户端切换成CDN很简单,配置的其它地方不用改动,只要把地址一栏换成域名即可,如图
https://i.imgur.com/1MsBKA0.png
【figb.2】

手机端配置方法类似,把IP换成网址即可。

(2.2) 手动指定CDN IP地址
(2.1)节介绍的方法可以满足大多数人的需要,事实上要连接的CDN节点也可以手动指定。手动指定CDN节点地址,可以免费使用不同运行商的线路和不同国家的入口节点。如果自动分配的CDN节点速度不理想,可以尝试手动指定入口节点。

配置方法也非常简单:在第(1)节把云朵点成橙色之后,在V2RayN的【地址】一栏里,不填入网址,而是填入CDN的IP地址。
举例如下:
  • 电信线路+美国旧金山节点:172.64.0.8
  • 联通线路+日本节点:104.20.157.84
  • 移动线路+新加坡节点:104.28.14.8

上述IP是属于Cloudflare的公共地址,所以不会被封。Cloudflare提供了非常多的地区+线路组合,具体可参加网友@marxist 的贴子:
关于国产输入法的隐私问题以及如何选择合适的cloudflare IP地址?
原贴见:https://ofvps.com/201907510

可选配置2:加固服务器,配置防火墙

如果VPS上没有其它服务,建议打开防火墙。服务器对外只暴露80,443,SSH端口,可以降低代理服务器被探测的风险。

前面的步骤中禁用了防火墙firewalld,不是所有的机器都安装了firewalld,我们这里使用ufw防火墙作为替代。

安装ufw:
yum install -y epel-release && yum install -y ufw

打开SSH,HTTP,HTTPS端口,运行:
ufw disable && ufw allow ssh && ufw allow http && ufw allow https && ufw enable

如果ssh端口不是22,那么需要将ssh改为端口号。例如ssh端口为14320,则:
ufw disable && ufw allow 14320 && ufw allow http && ufw allow https && ufw enable

ufw和firewalld的底层实现都是一样的,都调用了linux iptables,本质并无太大区别。

可选配置3:使用BBR加速

BBR是谷歌开发的拥塞控制算法,可以降低延迟,加快访问速度。启用BBR需要4.10以上版本Linux内核,现在大多数VPS都满足这一条件,输入uname(空格)-a可以查看内核版本.
如果内核版本大于4.10就可以用BBR了,把以下三条命令复制到命令窗口执行:
bash -c 'echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf'
bash -c 'echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf'
sysctl -p

然后运行以下命令,查看BBR是否启动成功:
sysctl net.ipv4.tcp_congestion_control

如果提示
net.ipv4.tcp_congestion_control = bbr

就表示成功启动了BBR加速。

可选配置4:编译Nginx

**本节内容需要有一定Linux基础**

某些系统上,通过yum安装的Nginx不支持TLS1.3,需要自行编译。启用TLS1.3可以明显降低VMess+WS+TLS的延迟(握手1-RTT,恢复会话0-RTT)。此外,TLS1.3第一个RTT之后的握手包均被加密,(可能)会降低TLS协议的指纹特征。

Caddy(另一个HTTP反向代理软件)也支持TLS1.3,但自行配置和编译的Nginx可以通过调整多种参数,达到更高的性能。自行编译Nginx也可以启用一些其它反向代理中的特征,例如HTTP/2等。

Nginx编译安装步骤:

更新所有软件及系统内核(用时较长,可选):

yum -y update

安装依赖软件和库:

yum -y install wget gcc make perl pcre pcre-devel zlib zlib-devel

下载OpenSSL 1.1.1g(截至2020年4月21日的最新版)

wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_1g.zip
unzip OpenSSL_1_1_1g.zip
rm OpenSSL_1_1_1g.zip && mv openssl-OpenSSL_1_1_1g openssl

下载Nginx 1.18.0(截至2020年4月21日的最新版)

wget https://nginx.org/download/nginx-1.18.0.tar.gz
tar -xzvf nginx-1.18.0.tar.gz
cd nginx-1.18.0

配置编译选项

./configure --with-openssl=../openssl --with-openssl-opt='enable-tls1_3' --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module

这一步是Nginx启用TLS1.3的关键,--with-openssl-opt='enable-tls1_3'表示启用TLS1.3,--with-http_v2_module表示启用HTTP/2

编译&安装

make && make install

编译完成的Nginx二进制文件位置在/usr/local/nginx/sbin/nginx,可用以下命令进行测试:

/usr/local/nginx/sbin/nginx -V

与此对应的,Nginx配置文件目录和网页文件目录分别在:

/usr/local/nginx/conf
/usr/local/nginx/html

为了把Nginx配置成系统服务,还需要配置systemd文件:

[Unit]
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

最后把上述文件命名为nginx.service,放在/etc/systemd/system下,就完成了Nginx的编译安装。

--
到这里,整个V2Ray翻墙教程就结束了,过程总结:
  1. 购买域名 & 配置域名解析
  2. 安装Nginx和V2Ray
  3. 上传配置文件


可选步骤:
  • CDN隐藏IP
  • 打开防火墙
  • BBR加速
  • 编译Nginx
203
分享 2020-03-02

436 个评论

v2rayzhuce 新注册用户
下载v2ray  尝试了楼主发的两个方法,都出现了error summary,
[root@WanRevolving-VM ~]# yum install -y curl && yum install -y nginx && bash <(curl -L -s https://install.direct/go.sh)
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

* base: centos.mirrors.hoobly.com
* epel: fedora-epel.mirrors.tds.net
* extras: mirror.atlanticmetro.net
* updates: bay.uchicago.edu
Package curl-7.29.0-54.el7_7.2.x86_64 already installed and latest version
Nothing to do
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.mirrors.hoobly.com
* epel: ftp.cse.buffalo.edu
* extras: mirror.atlanticmetro.net
* updates: bay.uchicago.edu
Resolving Dependencies
--> Running transaction check
---> Package nginx.x86_64 1:1.16.1-1.el7 will be installed
--> Processing Dependency: nginx-all-modules = 1:1.16.1-1.el7 for package: 1:nginx-1.16.1-1.el7.x86_64
--> Processing Dependency: nginx-filesystem = 1:1.16.1-1.el7 for package: 1:nginx-1.16.1-1.el7.x86_64
--> Processing Dependency: nginx-filesystem for package: 1:nginx-1.16.1-1.el7.x86_64
--> Processing Dependency: redhat-indexhtml for package: 1:nginx-1.16.1-1.el7.x86_64
--> Processing Dependency: libprofiler.so.0()(64bit) for package: 1:nginx-1.16.1-1.el7.x86_64
--> Running transaction check
---> Package centos-indexhtml.noarch 0:7-9.el7.centos will be installed
---> Package gperftools-libs.x86_64 0:2.6.1-1.el7 will be installed
---> Package nginx-all-modules.noarch 1:1.16.1-1.el7 will be installed
--> Processing Dependency: nginx-mod-http-image-filter = 1:1.16.1-1.el7 for package: 1:nginx-all-modules-1.16.1-1.el7.noarch
--> Processing Dependency: nginx-mod-http-perl = 1:1.16.1-1.el7 for package: 1:nginx-all-modules-1.16.1-1.el7.noarch
--> Processing Dependency: nginx-mod-http-xslt-filter = 1:1.16.1-1.el7 for package: 1:nginx-all-modules-1.16.1-1.el7.noarch
--> Processing Dependency: nginx-mod-mail = 1:1.16.1-1.el7 for package: 1:nginx-all-modules-1.16.1-1.el7.noarch
--> Processing Dependency: nginx-mod-stream = 1:1.16.1-1.el7 for package: 1:nginx-all-modules-1.16.1-1.el7.noarch
---> Package nginx-filesystem.noarch 1:1.16.1-1.el7 will be installed
--> Running transaction check
---> Package nginx-mod-http-image-filter.x86_64 1:1.16.1-1.el7 will be installed
--> Processing Dependency: gd for package: 1:nginx-mod-http-image-filter-1.16.1-1.el7.x86_64
--> Processing Dependency: libgd.so.2()(64bit) for package: 1:nginx-mod-http-image-filter-1.16.1-1.el7.x86_64
---> Package nginx-mod-http-perl.x86_64 1:1.16.1-1.el7 will be installed
---> Package nginx-mod-http-xslt-filter.x86_64 1:1.16.1-1.el7 will be installed
---> Package nginx-mod-mail.x86_64 1:1.16.1-1.el7 will be installed
---> Package nginx-mod-stream.x86_64 1:1.16.1-1.el7 will be installed
--> Running transaction check
---> Package gd.x86_64 0:2.0.35-26.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===========================================================================================================
Package                                Arch              Version                    Repository      Size
===========================================================================================================
Installing:
nginx                                  x86_64            1:1.16.1-1.el7            epel            562 k
Installing for dependencies:
centos-indexhtml                      noarch            7-9.el7.centos            base            92 k
gd                                    x86_64            2.0.35-26.el7              base            146 k
gperftools-libs                        x86_64            2.6.1-1.el7                base            272 k
nginx-all-modules                      noarch            1:1.16.1-1.el7            epel            19 k
nginx-filesystem                      noarch            1:1.16.1-1.el7            epel            21 k
nginx-mod-http-image-filter            x86_64            1:1.16.1-1.el7            epel            30 k
nginx-mod-http-perl                    x86_64            1:1.16.1-1.el7            epel            39 k
nginx-mod-http-xslt-filter            x86_64            1:1.16.1-1.el7            epel            29 k
nginx-mod-mail                        x86_64            1:1.16.1-1.el7            epel            57 k
nginx-mod-stream                      x86_64            1:1.16.1-1.el7            epel            84 k

Transaction Summary
===========================================================================================================
Install  1 Package (+10 Dependent packages)

Total size: 1.3 M
Installed size: 3.9 M
Downloading packages:
Running transaction check
Running transaction test


Transaction check error:
  file /usr/share/nginx/html/index.html from install of nginx-1:1.16.1-1.el7.x86_64 conflicts with file from package appnode-nginx-stable-1:1.16.1-1.el7.x86_64
  file /etc/logrotate.d/nginx from install of nginx-1:1.16.1-1.el7.x86_64 conflicts with file from package appnode-nginx-stable-1:1.16.1-1.el7.x86_64
  file /usr/sbin/nginx from install of nginx-1:1.16.1-1.el7.x86_64 conflicts with file from package appnode-nginx-stable-1:1.16.1-1.el7.x86_64
  file /var/log/nginx from install of nginx-1:1.16.1-1.el7.x86_64 conflicts with file from package appnode-nginx-stable-1:1.16.1-1.el7.x86_64
  file /etc/nginx/ngin短网址nf from install of nginx-1:1.16.1-1.el7.x86_64 conflicts with file from package appnode-nginx-stable-1:1.16.1-1.el7.x86_64
  file /usr/lib/systemd/system/nginx.service from install of nginx-1:1.16.1-1.el7.x86_64 conflicts with file from package appnode-nginx-stable-1:1.16.1-1.el7.x86_64
  file /usr/share/man/man8/nginx.8.gz from install of nginx-1:1.16.1-1.el7.x86_64 conflicts with file from package appnode-nginx-stable-1:1.16.1-1.el7.x86_64
  file /usr/share/nginx/html/50x.html from install of nginx-1:1.16.1-1.el7.x86_64 conflicts with file from package appnode-nginx-stable-1:1.16.1-1.el7.x86_64

Error Summary
-------------
wearepeople 新注册用户
楼主,我又出现新的问题了,昨天所有步骤弄完后,我已经可以翻墙了,结果晚上Bitvise SSH就连不上服务器了,然后v2rayN也翻不了墙了。
用Bitvise SSH连接服务器,显示:
Connection failed. FlowSocketConnector: Failed to connect to target address. Windows error 10060: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。.

然后我就在搬瓦工上把服务器的VPS系统重装了,但是现在Bitvise SSH还是连不上服务器,所有步骤都无法进行了。
这种情况怎么办?
Tengzhou94 新注册用户
感谢教程,感谢楼主码字辛苦。疑问:网速似乎有问题(连打开网页的超卡)
配置成功后,PAC模式,实测网速结果:上传速度:407.32 KB/秒;下载速度:15 KB/秒
——
VPS:INVS 磁盘5 GB 内存:512MB
SSL证书确定有效;firewalld关闭,ufw打开;BBR启动成功 
windown客户端配置校验多次,确定没有问题;
CDN状态 关闭;
CentOS Linux release 7.7.1908 (Core)
Linux 5.6.1-1.el7.elrepo.x86_64
——
不知道问题可能出在哪些地方?
wearepeople 新注册用户 回复 沉默的广场
域名不能用了,GoDaddy的账户直接登录不上去了,登录就说要上传身份证件和购买证明,我后来又换了namecheap的域名,整个系统重做了...
Tengzhou94 新注册用户 回复 沉默的广场
yum clean all && rpm --rebuilddbyum update (慎用)

感谢,已经成功安装UFW。V2Ray客户端配置成功,再次表示感谢。待会,我测试一下网速。
沉默的广场 休假中 回复 Tengzhou94 新注册用户
刚试了一下:输入 yum install -y epel-release——Loaded plugi...

yum clean all && rpm --rebuilddb
yum update (慎用)
沉默的广场 休假中 回复 wearepeople 新注册用户
我按照教程的操作下来,结果发现GoDaddy把我的账户锁定了,并且让我上传真实的身份凭证和付款证明,...

没见过你这种情况。。。如果域名能用可以不用管。
免费域名可以用freenom,转移NS服务等等方法和godaddy一样:
https://www.freenom.com/zh/index.html?lang=zh
Tengzhou94 新注册用户 回复 沉默的广场
刚试了一下:
输入 yum install -y epel-release
——
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
* base: mirror.docker.ru
* epel: mirror.datacenter.by
* extras: centos-mirror.rbc.ru
* updates: centos-mirror.rbc.ru
nginx | 2.9 kB 00:00:00
Package epel-release-7-11.noarch already installed and latest version
Nothing to do
——
输入:yum install -y ufw
——
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
* base: mirror.docker.ru
* epel: fedora-mirror02.rbc.ru
* extras: centos-mirror.rbc.ru
* updates: centos-mirror.rbc.ru
Resolving Dependencies
--> Running transaction check
---> Package ufw.noarch 0:0.35-9.el6 will be installed
--> Processing Dependency: python(abi) = 2.6 for package: ufw-0.35-9.el6.noarch
--> Processing Dependency: /usr/bin/python2.6 for package: ufw-0.35-9.el6.noarch
--> Processing Dependency: iptables-ipv6 for package: ufw-0.35-9.el6.noarch
--> Running transaction check
---> Package iptables-services.x86_64 0:1.4.21-33.el7 will be installed
---> Package ufw.noarch 0:0.35-9.el6 will be installed
--> Processing Dependency: python(abi) = 2.6 for package: ufw-0.35-9.el6.noarch
--> Processing Dependency: /usr/bin/python2.6 for package: ufw-0.35-9.el6.noarch
--> Processing Dependency: /usr/bin/python2.6 for package: ufw-0.35-9.el6.noarch
--> Finished Dependency Resolution
Error: Package: ufw-0.35-9.el6.noarch (epel)
Requires: /usr/bin/python2.6
Error: Package: ufw-0.35-9.el6.noarch (epel)
Requires: python(abi) = 2.6
Installed: python-2.7.5-86.el7.x86_64 (@anaconda)
python(abi) = 2.7
python(abi) = 2.7
Installed: python3-3.6.8-10.el7.x86_64 (@base)
python(abi) = 3.6
python(abi) = 3.6
Available: python34-3.4.10-4.el6.i686 (epel)
python(abi) = 3.4
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
——
好像继续报错噢~
沉默的广场 休假中 回复 vucexbyshu 新注册用户
大神,求助。本人纯小白。步骤4.2无法显示nginx的画面。网页可访问,但访问后是CentOS的“W...

这个说明安装没问题,继续上传网页模板就可以。
有些Linux版本会自带一个index.html,nginx会把/usr/share/nginx/html指向系统自带的页面。
沉默的广场 休假中 回复 Tengzhou94 新注册用户
Tengzhou94 新注册用户
大佬,感谢分享教程。我这边有1个问题:
——
安装UFW时,报错:
Error: Package: ufw-0.35-9.el6.noarch (epel)
          Requires: /usr/bin/python2.6
Error: Package: ufw-0.35-9.el6.noarch (epel)
          Requires: python(abi) = 2.6
          Installed: python-2.7.5-86.el7.x86_64 (@anaconda)
              python(abi) = 2.7
              python(abi) = 2.7
          Installed: python3-3.6.8-10.el7.x86_64 (@base)
              python(abi) = 3.6
              python(abi) = 3.6
          Available: python34-3.4.10-4.el6.i686 (epel)
              python(abi) = 3.4
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
——
我这边,是否需要安装其他东西,才能按照UFW?如何操作?
vucexbyshu 新注册用户
大神,求助。本人纯小白。步骤4.2无法显示nginx的画面。网页可访问,但访问后是CentOS的“Welcome to CentOS”。
在控制台输入调试代码后反馈如下:
[root@name ~]# nginx -t
nginx: the configuration file /etc/nginx/ngin短网址nf syntax is ok
nginx: configuration file /etc/nginx/ngin短网址nf test is successful
[root@name ~]# /etc/nginx/conf.d/default.conf
-bash: /etc/nginx/conf.d/default.conf: Permission denied
[root@name ~]# service nginx status
Redirecting to /bin/systemctl status nginx.service
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-04-02 03:41:58 EDT; 35min ago
  Process: 2046 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 2043 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 2041 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 2048 (nginx)
   CGroup: /system.slice/nginx.service
           ├─2048 nginx: master process /usr/sbin/nginx
           ├─2049 nginx: worker process
           └─2050 nginx: worker process

Apr 0(钓鱼网站已屏蔽) systemd[1]: Starting The nginx HTTP and reverse proxy server...
Apr 02 03:41:58 name nginx[2043]: nginx: the configuration file /etc/nginx/ngin短网址n... ok
Apr 02 03:41:58 name nginx[2043]: nginx: configuration file /etc/nginx/ngin短网址nf te...ful
Apr 02 03:41:58 name systemd[1]: Started The nginx HTTP and reverse proxy server.
Hint: Some lines were ellipsized, use -l to show in full.
wearepeople 新注册用户
我按照教程的操作下来,结果发现GoDaddy把我的账户锁定了,并且让我上传真实的身份凭证和付款证明,还给我发了一封这样的邮件:

您最新的订单已被取消。
感谢您成为我们尊贵的客户。为防止您可能误用您的付款方式或产品,我们的验证办公室已审核您的账户。因此,购物者账户 268168736 中的最新订单已取消,并将进行退款处理。

请注意,正常情况下,我们将在 5 到 10 个工作日之内处理退款。不过,一些付款提供商和/或发卡行可能会将资金冻结一个完整的结算周期或更长时间。如需退款时间或查询退款进展方面的帮助,请联系您的金融机构。

如果您认为此操作属于误操作,想请求恢复您的订单,请登录您的账户。对于选择的付款方式,您需要上传账户持有人的驾照或护照的副本,副本必须清晰可见。我们也会要求您提供您计划如何使用所购产品的简要说明。

我们收到此文件后,我们将重新评估您的账户状态。谨此先感谢您的配合,并对此可能带来的任何不便表示歉意。



这怎么办啊?我用GoDaddy注册域名时,就是按照教程的操作,用的是假的姓名,现在怎么可能给它上传真实的身份凭证啊?
v2ray都已经设置好了,翻墙也成功了,现在居然还封了我的域名?这是不是意味着我这个域名已经凉了?有什么别的补救办法吗?或者有没有别的可以注册域名的网站?
hahaha32123 新注册用户
asdjfoiasj 新注册用户
本人常駐PTT、天涯、巴哈youtube,最近剛來的品蔥


以前總認為中國很強大,經常在PTT上幫中國說好話

看見中國的負面新聞會有恨鐵不成鋼的想法

最讓我驚訝的是一則中國新聞,寫黃書的一位作者被判刑關11年

本人也算是寫作的創作者,這則新聞讓我對中國極度不爽

算是第一次改變我想法的開端

某天上了天涯台灣版,從此走上反共反中的道路

誠心推薦所有擁有兩岸認知錯誤,對中國抱有錯誤期待想法的台灣人

去看看天涯台灣版,保證讓你永遠都不想替中國說好話
LC2020 新注册用户
大神,我按照你这个步骤执行完了,但v2ray还是连不上。
自己检查过,发现自己申请的网站,无法用https方式打开。http是没有问题的。
请问要怎么修复啊~ 谢谢!!
qunzhong 新注册用户 回复 沉默的广场
1. V2RayN常用有两种模式:全局模式和PAC模式,需要开启这两个之一才能翻墙。全局模式是墙内墙...

大神,那个网页模板压缩包解压以后,里面有好多文件,我也不知道哪个是网页模板文件。我找到那个index.html文件然后上传到VPS的指定位置了。VPS指定位置有3个扩展名是html的文件。index.html所在文件夹里头的其他文件我也都上传了。我那个模板文件里有好多扩展名是php,css,txt,js的文件。是不是格式不对呀?
沉默的广场 休假中 回复 qunzhong 新注册用户
大佬,我还想问一下,就是这个域名只能用1年,如果超过一年以后是不是可以换个便宜点儿的域名再按照您教程...

Godaddy域名的话续费会很贵,所以1年后必须换。也可以用freenom之类免费域名代替。

V2RayN更新通常只更新界面,大多数情况下V2Ray内核不会更新。即使客户端和服务端的V2Ray内核版本不一样也没关系,V2Ray有兼容性保证,可以保证至少12个版本内的兼容性:

https://www.v2ray.com/chapter_00/faq.html#backward-compatibility

运行安装命令可以更新服务器端的V2Ray:
bash -c "$(curl -L -s https://install.direct/go.sh)"

然后重启V2Ray:
service v2ray restart
qunzhong 新注册用户 回复 沉默的广场
1. V2RayN常用有两种模式:全局模式和PAC模式,需要开启这两个之一才能翻墙。全局模式是墙内墙...

大佬,我还想问一下,就是这个域名只能用1年,如果超过一年以后是不是可以换个便宜点儿的域名再按照您教程里说的在配置一下呀?我打算长期使用。
还有就是V2RayN这个软件用不用一直保持更新呢?如果要更新的话是不是连服务器里的V2Ray也要更新呀?
麻烦大神了
沉默的广场 休假中 回复 qunzhong 新注册用户
大佬,我看了你3月初发的那篇V2Ray的帖子。我出现了点儿问题,想请教您一下。首先,V2Ray连接上...

1. V2RayN常用有两种模式:全局模式和PAC模式,需要开启这两个之一才能翻墙。全局模式是墙内墙外网站都走代理,PAC模式是墙外网站走代理,访问墙内网站不走代理。

2. 看一下有没有上传网页模板。
qunzhong 新注册用户
大佬,我看了你3月初发的那篇V2Ray的帖子。我出现了点儿问题,想请教您一下。

首先,V2Ray连接上以后,电脑版youtube还有facebook根本打不开,就跟没翻出墙一样。然后我开启了Http代理,开的是全局模式。然后电脑访问youtube正常了。请问这样操作可以吗?(Http有好几个模式)

第二,我那个申请域名建的那个网站,打开页面完全是白的,也没有任何提示。DNS没有开,BBN打开成功了。请问,有什么办法吗?
劳驾大佬赐教。
JamieJJ 新注册用户
怎么难?我只用一款免费的VPN(现在蓝灯)就可以
gdgdgd 回复 kkke_sugar 新注册用户
w321321 新注册用户 回复 沉默的广场
这个说明安装成功了

不用出现您教程里写的红色欢迎页面也可以吗?那就继续往下操作网页模板就可以了是吗?
先收藏一下
w321321 新注册用户
严格按照步骤来,最后输入网址出来的是:
Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at ngintwitter.com.

Thank you for using nginx.


好崩溃啊不知道哪里出错,大佬求救
谢谢大佬,但是设置好了PC上不了外网,但是分享到手机端就可以,请问是什么问题吗?
另外记得给V2RayN的可执行文件设置管理员权限,不然它改不了系统代理设置
AzlieW 新注册用户
github上那些开源的一键脚本安全性应该尚可吧。
谢谢大佬,但是设置好了PC上不了外网,但是分享到手机端就可以,请问是什么问题吗?

看一下是不是浏览器/客户端的设置问题,V2RayN默认是关闭代理的。
谢谢大佬,但是设置好了PC上不了外网,但是分享到手机端就可以,请问是什么问题吗?
自行翻页
这个错误是因为nginx无法把流量转发v2ray,可能是端口被占用或者是系统安全策略。看一下有没有...

非常感谢!已经解决。但是我用的您推荐的那几个便宜的vps其中的一个 速度好像很慢...是因为便宜的vps原本就很慢吗
谢谢回复, 我现在碰到一个问题,win客户端使用pac模式报错failed to handler m...

@kking159632
这个错误是因为nginx无法把流量转发v2ray,可能是端口被占用或者是系统安全策略。
看一下有没有关掉SELinux:
setsebool -P httpd_can_network_connect 1 && setenforce 0
外资VPN/VPS支付宝走的是国际收汇通道,中间不会透露个人购买信息。缺点是会多一点手续费,不过这已...

谢谢回复,但是我在关闭SELunix 的时候 命令setsebool -P httpd_can_network_connect 1 && setenforce 0 会报错,因此我采用了零时的关闭命令才可以翻墙。
libsepol.context_from_record: type rhsmcertd_config_t is not defined
libsepol.context_from_record: could not create context structure
libsepol.context_from_string: could not create context structure
libsepol.sepol_context_to_sid: could not convert system_u:object_r:rhsmcertd_config_t:s0 to sid
invalid context system_u:object_r:rhsmcertd_config_t:s0
擇路 回复 kking159632 新注册用户
连接后出现这个是什么问题呀?2020/03/05 12:31:32 [Warning] failed...

我碰到了同样的问题,请问您解决了吗
沉默的广场 休假中 回复 gbrwy ?
请教一个小白问题:按照楼主的帖子布置好网络连接,已经可以上网。请问如何生产部署文件的二维码?

在左侧服务器列表选中服务器,点右边的【显示分享内容】就会显示二维码。
https://i.imgur.com/RhXmuU6.png
有个小小的问题,国外这些网站用支付宝购买域名,购买vps会有安全隐患吗。

外资VPN/VPS支付宝走的是国际收汇通道,中间不会透露个人购买信息。缺点是会多一点手续费,不过这已经在你支付的价格里了。

如果想要编程随想那种安全程度,就需要匿名VPN/VPS,或者免费翻墙软件。
有个小小的问题,国外这些网站用支付宝购买域名,购买vps会有安全隐患吗。

**该用户被封禁,内容已自动替换**

中国人记忆力测试表

https://telegra.ph/file/0d3e2a2e7e4a1136472a4.jpg
可以ping通,测试真连接成功,但是运行网速测试时到一半突然abort,显示aborted by the software on your host machine是因为什么?尝试了打开http代理,之后访问任何网站都会显示网页已经永久移动。
搭建的网页没问题(这个我有经验),访问可以看到上传的模板。我的系统是Ubuntu18.04,ufw处于inactive状态,之前装过ssr但是照这个教程做的时候已经stop了。
安装全程都没有出现什么问题,除了我装的nginx是用apt install nginx-full的,Ubuntu上用yum好像会提示repository does not exist……使用这个版本的nginx有关系吗?
沉默的广场 休假中 回复 huhu 新注册用户
老大,我用gpc 又按你的方法搭建了一个。 gpc 是cenos7.0版本。当我输入:sysctl ...

这不是BBR,需要手动开启。
都是沦落人 新注册用户
纯技术贴,完全看不懂啊!
Don2020 新注册用户
域名就别注册了,使用免费的吧freedom
huhu 新注册用户
老大,我用gpc 又按你的方法搭建了一个。 gpc 是cenos7.0版本。

当我输入:
sysctl net.ipv4.tcp_congestion_control

显示的结果是:

net.ipv4.tcp_congestion_control = cubic

这个cubic 不是bbr  ,也能说明bbr已经开启了吗?
沉默的广场 休假中 回复 战略忽悠局 新注册用户
大佬你好,请问可以转载到我的个人博客上吗

可以的,不过需要注明作者和出处链接。
战略忽悠局 新注册用户
大佬你好,请问可以转载到我的个人博客上吗
谢谢,麻烦大佬了,我试了一下午IP,换了就要重来一遍,太痛苦了,为了不浪费我的10刀,我还是接着试吧(╥﹏╥)
ip问题解决了,谢谢大佬,然后我发现在ping网站或者vps的ip的时候都会大概率掉包,测速之后才0...

vultr的IP可以随便换,所以他家很大一部分IP在GFW灰名单里,很容易被干扰。有时候挂着SSH都被封。如果丢包严重以至于SSh都连不上,有可能是GFW的原因。

美西IP是灰名单重灾区,不知道欧洲的IP是不是有类似情况。
ip问题解决了,谢谢大佬,然后我发现在ping网站或者vps的ip的时候都会大概率掉包,测速之后才0.1兆,是vps问题吗,买的是vultr法兰克福的
大佬您好,我是按您的教程搭建的纯小白,现在我搭建过程都正常但是搭建完了就速度特别慢,打开Google...

1. bitwise掉线一般不影响使用,如果希望解决掉线问题,可以参考此回复的解决办法:
https://pincong.rocks/article/item_id-284652

然后在speedtest测速显示的是我自己现在的ip

2. 看一下电脑/服务器上是不是还开了别的代理?V2Ray的客户端配置是不是正确?(http代理选择全局模式,不测速时选择PAC模式)
大佬您好,我是按您的教程搭建的纯小白,现在我搭建过程都正常但是搭建完了就速度特别慢,打开Google都要一分钟这样,bitvise还总掉线,然后在speedtest测速显示的是我自己现在的ip是怎么回事呀,谢谢大佬
是用的certbot,我的/etc/nginx/conf.d/下默认有个ssh.conf,里面看到把...

你按照楼主的教程,把配置文件放到/etc/nginx/conf.d/目录里面就可以了,这个目录就是用来放置nginx配置文件的,至于配置文件的名字是什么不重要,nginx重启后都会去读这个目录里面的所有配置文件的。
不鳥你 新注册用户
@沉默的广场 
大神,到這裡呢? 申请SSL证书,出來這樣的
[root@ElegantUnited-VM ~]# certbot certonly --standalone --agree-tos -n -d www.kfitvkds.website -d kfitvkds.website -m Andrew68mak@protonmail.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for kfitvkds.website
http-01 challenge for www.kfitvkds.website
Waiting for verification...
Challenge failed for domain www.kfitvkds.website
Challenge failed for domain kfitvkds.website
http-01 challenge for www.kfitvkds.website
http-01 challenge for kfitvkds.website
Cleaning up challenges
Some challenges have failed.

IMPORTANT NOTES:
- The following errors were reported by the server:

  Domain: www.kfitvkds.website
  Type:  unauthorized
  Detail: Invalid response from
  http://www.kfitvkds.website/.well-known/acme-challenge/EJXuBoNMMVU9p-gWltQ6lQRf_A-UtANLJezBTxEttlE
  [184.168.221.53]: "<!-- Server: P3PWFWD002 --><!DOCTYPE html><body
  style=\"padding:0; margin:0;\"><html><head><meta name=\"viewport\"
  content=\"width=de"

  Domain: kfitvkds.website
  Type:  unauthorized
  Detail: Invalid response from
  http://kfitvkds.website/.well-known/acme-challenge/7ZcEDWMlUv50yJhavQCMceY-ZR_6IRH6toZAmbRyVJY
  [184.168.221.53]: "<!-- Server: P3PWPARKSTAT06 --><!DOCTYPE
  html><body style=\"padding:0; margin:0;\"><html><head><meta
  name=\"viewport\" content=\"widt"

  To fix these errors, please make sure that your domain name was
  entered correctly and the DNS A/AAAA record(s) for that domain
  contain(s) the right IP address.
[root@ElegantUnited-VM ~]#
可以ping到域名。防火牆也關了。
那是因為【其它代理占用了80,443端口。】嗎?
如果是的話,如何關掉其他代理軟件?
感觉客户端配置也有问题。最好是有客户端配置,和服务端log。另外这个泄露vps ip了,编辑一下吧

好的,我准备重装重新配置一遍了...到时候有问题我再问您
国内解析好像要备案吧,尽量不要用。

只是实名了一下,
过几天,有时间我给换了算了。
沉默的广场 休假中 回复 huhu 新注册用户
老大,我终于找到为什么我上传的网页没有css,显示不了图片的问题了。。这是因为我在网上看到:   

感谢反馈!之前测试没有遇到过读写权限的问题,可能是版本差异。
=====================
4.14更新:在Nginx配置里打开长连接,可以明显提升速度。配置文件已经更新。
打开v2ray之后的报错[Warning] failed to handler mux client...

感觉客户端配置也有问题。最好是有客户端配置,和服务端log。

另外这个泄露vps ip了,编辑一下吧
huhu 新注册用户
老大,我终于找到为什么我上传的网页没有css,显示不了图片的问题了。。

这是因为我在网上看到:   nginx的启动用户默认是nginx的,所以对目录根本没有读的权限。

所以,我将所有目录的文件,增加了公共权限----读取的权限后,就可以了。。。

现在用我的搬瓦工 los angelas  cn2来翻墙很愉悦,基本youtube的 1080p 看没有问题, 但是我用的软路由,感觉速度没有传说中的那么快。 老大,能不能出一篇文章,看看能不能通过v2ray 速度更快。。例如国内中转之类的教程。
明白了。我算了一下时间不超过90s。但是我现在的问题就是访问ws文件404但是可以正常不通过任何代理...

换成那个带log的配置文件,看下v2ray_access.log和nginx_error.log
这个和时区没有关系。关键是换算成UTC之后必须都是一样的。(相差不超过90秒)

明白了。
我算了一下时间不超过90s。但是我现在的问题就是访问ws文件404但是可以正常不通过任何代理访问那个网站和v2ray没法用来访问外网的问题。前面的一致性也检查过了,没有问题,请大佬再费心指导一下,谢谢
大佬,我的机房在美国,时间默认是+0000,是不是要改成北京时间?谢谢

这个和时区没有关系。关键是换算成UTC之后必须都是一样的。(相差不超过90秒)
校正服务器时间(和客户端时间不能超过90秒,和时区无关)时间不对就会报invalid user
invalid user要在服务端log里面看,这需要打开log.

大佬,我的机房在美国,时间默认是+0000,是不是要改成北京时间?

谢谢
哦,对了。刚才把您的代码复制粘贴过来之后改完上传完之后按照之前的测试的时候报错来着,貌似是少了个括号...

没有。
我测了一下配置文件应该没有问题。这个配置文件是保存在/root/下面,如果出问题就是没有这个目录的权...


哦,对了。刚才把您的代码复制粘贴过来之后改完上传完之后按照之前的测试的时候报错来着,貌似是少了个括号,然后我自己就加上了,错误就没有了。这个会不会有影响?
我改完log之后ws文件访问不了502错误了....

我测了一下配置文件应该没有问题。
这个配置文件是保存在/root/下面,如果出问题就是没有这个目录的权限。
-----------
编辑了一下配置文件的路径,nginx日志扔到/var/log/nginx下面
v2ray日志扔到/var/log/v2ray下面。

配置好以后打开v2ray登一下。重点看v2ray_access.log这个文件就可以了
沉默的广场 休假中 回复 不鳥你 新注册用户
好的,是這個嗎?【Linux Centos 7.1503.01 X86 64 Minimal Gen...

对。只用来翻墙的vps没有关系。
不鳥你 新注册用户 回复 沉默的广场
你的系统是Ubuntu吧…在VPS网页控制面板上重装点reinstall,系统选择成CentOS7就...

好的,是這個嗎?【Linux Centos 7.1503.01 X86 64 Minimal Gen2 V1】
然後在它上面有個note『Note: This OS does not work with our protected IP addon.』這有影響嗎?
謝謝!
看上去是v2ray那边的问题,再试试:1. websocket路径,nginx和v2ray是不是完全...


我改完log之后ws文件访问不了502错误了....
沉默的广场 休假中 回复 不鳥你 新注册用户
得到:-bash: yum: command not found請問如何是好?

你的系统是Ubuntu吧…在VPS网页控制面板上重装点reinstall,系统选择成CentOS7就可以了。前面已经做过的操作(配置域名之类)不受影响。
不鳥你 新注册用户
求助眾大神,俺是小白,想一步步跟着做,做到 安装Certbot 這一步,輸入:yum install -y python36 && pip3 install certbot
得到:-bash: yum: command not found
請問如何是好?
Proto Recv-Q Send-Q Local Address          Foreign Address        State      PID/Program name
tcp        0      0 0.0.0.0:443            0.0.0.0:*              LISTEN      11610/nginx: master
tcp        0      0 127.0.0.1:8964          0.0.0.0:*              LISTEN      11579/v2ray
tcp        0      0 0.0.0.0:22122          0.0.0.0:*              LISTEN      608/sshd
tcp        0      0 0.0.0.0:80              0.0.0.0:*              LISTEN      11610/nginx: master
tcp6      0      0 :::22122                :::*                    LISTEN      608/sshd
tcp6      0      0 :::80                  :::*                    LISTEN      11610/nginx: master

貌似是监听8964端口了
v2ray沒有給我反饋invalid user,我測延時正常也就200ms,但是測試服務器測試真延遲和服務器速度跟我反饋的是操作超時和503服務器不可用。


可以打開可以用
顯示的也是bad request


看上去是v2ray那边的问题,再试试:
1. websocket路径,nginx和v2ray是不是完全一样?
2. 输入netstat -nltp 看下v2ray有没有监听8964端口?

如果在监听8964端口会有这样的输出:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 25465/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3423/sshd
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 25465/nginx: master
tcp 0 0 127.0.0.1:8964 0.0.0.0:* LISTEN 2365/v2ray
tcp6 0 0 :::22 :::* LISTEN 1224/sshd

3. 校正服务器时间(和客户端时间不能超过90秒,和时区无关)时间不对就会报invalid user
invalid user要在服务端log里面看,这需要打开log
1. 看一下不挂代理能不能访问?有的服务器IP买到就不能用(搬瓦工,vultr是重灾区)打开CDN试.试


可以打開可以用

用浏览器访问,比如你的域名是:www.sdfsdf.com,ws路径设置是/Wsd23sd.
访问ws路径就是www.sdfsdf.com/Wsd23sd
配置正确会在浏览器里显示Bad request。


顯示的也是bad request

那我是不是就要用大佬給出的帶log的文件重新替換找出問題了?
v2ray配置(带log)

{
"inbound": {
    "protocol": "vmess",
    "listen": "127.0.0.1",
"port": 8964,
"settings": {"clients": [
        {"id": "◆◆◆◆◆◆◆◆◆◆◆◆"}
    ]},
"streamSettings": {
"network": "ws",
"wsSettings": {"path": "/★★★★★★★★★★★★"}
    }
},

"outbound": {"protocol": "freedom"},

"log": {
  "access": "/var/log/v2ray/v2ray_access.log",
  "error": "/var/log/v2ray/v2ray_error.log",
  "loglevel": "warning"
}
}
nginx配置文件(带log)



server {
### 1:
server_name ●●●●●●●●●●●●;

listen 80;
rewrite ^(.*) https://$server_name$1 permanent;
if ($request_method !~ ^(POST|GET)$) { return 501; }
autoindex off;
server_tokens off;
}

server {
### 2:
ssl_certificate /etc/letsencrypt/live/●●●●●●●●●●●●/fullchain.pem;

### 3:
ssl_certificate_key /etc/letsencrypt/live/●●●●●●●●●●●●/privkey.pem;

### 4:
location /★★★★★★★★★★★★
{
proxy_pass http://127.0.0.1:8964;
proxy_redirect off;

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;

tcp_nodelay on;
keepalive_requests 25600;
keepalive_timeout 3600 3600;
proxy_buffering off;
proxy_buffer_size 8k;
}

listen 443 ssl http2;
server_name $server_name;
charset utf-8;

tcp_nodelay on;
keepalive_timeout 3600 3600;

ssl_protocols TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK;
ssl_prefer_server_ciphers on;

ssl_session_cache shared:SSL:60m;
ssl_session_timeout 1d;
ssl_session_tickets off;

ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 10s;

# Security settings
if ($request_method !~ ^(POST|GET)$) { return 501; }
add_header X-Frame-Options DENY;
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options nosniff;
add_header Strict-Transport-Security max-age=31536000 always;
autoindex off;
server_tokens off;

# 新增
access_log /var/log/nginx/nginx_access.log;
error_log /var/log/nginx/nginx_error.log;

index index.html index.htm index.php;
root /usr/share/nginx/html;
location ~ .*\.(js|jpg|JPG|jpeg|JPEG|css|bmp|gif|GIF|png)$ { access_log off; }
}
1.
網站通過v2ray可以正常訪問

看一下不挂代理能不能访问?有的服务器IP买到就不能用(搬瓦工,vultr是重灾区)
打开CDN试试。

2.
訪問ws路徑給我的回應是:No such file or directory

用浏览器访问,比如你的域名是:www.sdfsdf.com,ws路径设置是/Wsd23sd.
访问ws路径就是www.sdfsdf.com/Wsd23sd
配置正确会在浏览器里显示Bad request。

3.
關閉了selinux,給我的回應:setsebool: SELinux is disabled.

这个没问题。
因为这个配置文件没有记录log,没有log也看不出问题在哪。等一会我发个可以记录log的配置文件。可...

網站通過v2ray可以正常訪問;

訪問ws路徑給我的回應是:
No such file or directory


關閉了selinux,給我的回應:
setsebool: SELinux is disabled.


v2ray沒有給我反饋invalid user,我測延時正常也就200ms,但是測試服務器測試真延遲和服務器速度跟我反饋的是操作超時和503服務器不可用。

還有我的cloudflare上DNS解析下面有三個,兩個A一個cname....要不要吧最後那cname刪掉啊?

希望大佬解答幫助,謝謝
因为我当时无法在国外域名上选择付款,使用国内域名服务商有坑吗?

国内解析好像要备案吧,尽量不要用。
因为我当时无法在国外域名上选择付款,
使用国内域名服务商有坑吗?
WS+TLS最好还是用Freenom的免费域名,免得那天被DNS污染了还费了域名的钱。
配置的非常成功,但是就是上不了外網,不僅youtube上不去,就連品蔥也上不了...只能藉原來的機場...

因为这个配置文件没有记录log,没有log也看不出问题在哪。等一会我发个可以记录log的配置文件。

可以先这样排除问题:
1. v2ray代理本质是个网站,访问一下这个你的网址,能不能正常进去。

2. 访问一下ws路径,如果返回bad request,说明工作正常。

3. 输入netstat -nltp 看看v2ray有没有在监听端口。

4. 有没有关闭selinux?文章里有提到,这一步必须做。

5. v2ray提示invalid user,一般是uuid不对,或者系统时间需要校正。
配置的非常成功,但是就是上不了外網,不僅youtube上不去,就連品蔥也上不了...只能藉原來的機場上,求大佬指導一下
提醒一下,截图隐藏你的客户ID,要不然可能会被社工的!
发帖前一定要检查一下有没有信息暴露的问题
沉默的广场 休假中 回复 huhu 新注册用户
老大,成功用你的方法,弄了2个梯子,谢谢啊。问题来了: 就是上传的网站那些模版, 只看到文字, 没有...

这和服务端配置没有关系,我测了一下也没有遇到这个问题,

看一下是不是模板的问题,或者是少传了什么文件?上传路径是/usr/share/nginx/html。模板上传好,打开应该类似于fig4.3.1那样。
huhu 新注册用户
老大,成功用你的方法,弄了2个梯子,谢谢啊。
问题来了: 就是上传的网站那些模版, 只看到文字, 没有看到图片,也就是说css不显示。 无论是搬瓦工还是 vultr都是一样的情况。  请问是什么原因呢?是我目录传错了吗?
jzy35 新注册用户
+1 租的祖传搬瓦工绝版服务器 之前搭ss 六四被墙ip了 ssh都连不上。花钱换了ip不到两个小时又被墙。故转投v2ray,websocket+tls,申请的freenom免费域名,cloudflare中转。ip依旧被墙,但v2ray能用,这就够了。
说一下体验,用cloudflare中转后速度有明显下降 之前开ss时候油管是1080P无压力的,延迟也从200ms增加到了近1000ms。另外发现速度跟运营商有很大关系,学校联通网带宽更大,但v2ray速度明显不如家里电信网。
沉默的广场 休假中 回复 yieng521 新注册用户
你好,我这出现了新的问题“我的域名将您重定向的次数过多”,不知道怎么解决?

登录进cloudflare的管理界面,点【SSL/TLS】按钮,在出现的4个选项里选择full(默认是flexible)
yieng521 新注册用户
你好,我这出现了新的问题“我的域名将您重定向的次数过多”,不知道怎么解决?
大佬啊。按照你的教程一步步成功了。可是速度只有20b。什么都干不了啊。请问是那儿出问题了呢?
欧晨光 新注册用户
我配置好了,但是翻不了墙是怎么回事啊? v2rayN 返回 什么什么:443 

要发言请先登录注册

要发言请先登录注册