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 个评论

教程很详细,谢谢作者!补充几点:
  1. 不同的操作系统里面的V2Ray软件可以看官网列的一些:https://v2ray.com/awesome/tools.html。文中没有提到macOS的V2Ray软件,我比较推荐V2rayU。
  2. 那个V2Ray本地配置里面最后一行的allowInsecure如果在意安全的话可以设置为false(我试过可以用,但是没有一直开,不知道会不会产生什么问题)。
  3. 还有如果一直套CDN的话,服务器的SSL证书其实可以用CloudFlare的Origin Certificate。
  4. GoDaddy那一步的信息包括邮件地址、名字、住址是完全公开的,不要填隐私的东西,可以编名字(但是至少要像一个人名)。
  5. 有很多人说可以用国内的CDN(又拍云、阿里云那种),速度飞快,但是我推荐别用,它基本就直接给政府暴露了你的IP、你的VPS的IP、CDN备案的可以定位到你个人信息、还有没有TLS加密的VMess流量。CloudFlare唯一没被墙的原因是有太多网站放在CloudFlare上了。
  6. CloudFlare经常定期或者定点变慢,甚至ping不到,有的时候过一会就好了。
  7. 如果访问大陆网站最好不要走V2Ray代理,不然如果这个网站有Cookie就可以把你的Cookie关连到你的VPS的IP,这样IP暴露了,而且也知道你翻墙了。大部分V2Ray都可以配置在访问国内或者局域网的IP的时候不走代理,包括上面文中的V2RayN、V2RayNG、Shadowrocket应该都行,命令行的V2Ray也可以用config.json配置。下面有评论说也可以浏览器用SwitchyOmega插件,我试过挺好用的。真的很在意暴露IP的话(毕竟有一个开着的SSH)可以走完V2Ray再走一个国外软件,比如Tor(关于VPN->Tor官方有介绍)。
在此列出一些外资VPS提供商,主要是为了给出一些直观的参考,说明自建翻墙服务的成本相对较低。这里列出的VPS网上已有大量测评,可靠性有保证。但如果使用中出现问题,我也无法为此负责。
(以下信息可能会变动,供参考。此处价格单位是人民币)

  • Bandwagon:流量1TB/月,价格28元/月。
  • Vultr IPv4:流量0.5TB/月,价格24.5元/月
  • Vultr IPv6:流量0.5TB/月,价格17.5元/月
  • VIRMACH:流量0.5TB/月,价格8.75元/月
  • RamNode:流量1TB/月,价格21元/月
  • OneVPS:流量2TB/月,价格35元/月
  • ChangeIP:流量无限,价格14元/月
  • INVS:流量无限,价格10元/月


搭建V2Ray需要的配置很低,一般单核CPU,256MB内存就足够3-4个人看YouTube了。廉价VPS的配置都差不多(单核CPU,几百MB内存),出口带宽一般比较高(1Gbps,约合100MB/s)。挑选这类VPS最直观的指标就是价格和流量。

IP段,网络质量也是重要的指标,但这些指标无法直接给出,如果有特殊需求(比如看Netflix,比特币匿名付款),需要在网上多找相关测评。

总之,VPS的性价比很高,就是最廉价的VPS看高清Youtube也完全够用。如果愿意每个月花5美元以上,足够买到网络质量非常高,流量无限的机器。
沉默的广场 休假中 回复 DDS ?
借楼,补充一下配置时经常遇到的问题和解决方案
-------
1. 没有Nginx安装源
某些VPS商家提供的系统中,没有带nginx的安装源。因此在运行V2Ray和Nginx的一键安装命令时会出现以下错误:
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: xxxxxx
* extras: xxxxxx
* updates: xxxxxx
No package nginx available.
Error: Nothing to do

解决办法:手动添加安装源即可,根据你的系统版本,运行以下命令:
(2020,4月更新)
CentOS7:(这是大多数VPS的系统版本)
rpm -ivh https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.18.0-1.el7.ngx.x86_64.rpm

CentOS8:
rpm -ivh https://nginx.org/packages/centos/8/x86_64/RPMS/nginx-1.18.0-1.el8.ngx.x86_64.rpm

CentOS6:
rpm -ivh https://nginx.org/packages/centos/6/SRPMS/nginx-1.18.0-1.el6.ngx.src.rpm

2. V2Ray安装问题
换成以下一键命令:
yum install -y curl && yum install -y nginx && bash <(curl -L -s https://install.direct/go.sh)

3. 使用IPv6
Nginx不会主动监听IPv6地址,如果配置了AAAA记录,需要在端口号前加上[::]:
填好之后:
 
listen [::]:80;
listen [::]:443 ssl http2;


4. 提示“重定向次数过多”
登录cloudflare,在网站管理界面,点【SSL/TLS】。
在页面的四个选项中,选【full】。(默认为【flexible】)

5. 客户端出现如下502错误
[Warning] failed to handler mux client connection > v2ray.com/core/proxy/vmess/outbound: failed to find an available destination > v2ray.com/core/common/retry: [v2ray.com/core/transport/internet/websocket: failed to dial WebSocket > v2ray.com/core/transport/internet/websocket: failed to dial to (wss://你的域名): 502 Bad Gateway > websocket: bad handshake] > v2ray.com/core/common/retry: all retry attempts failed
原因:Nginx无法把流量转发给V2Ray,原因是没有关闭SELinux。
解决办法:按照3.3节的方法,关闭SELinux。输入:
setsebool -P httpd_can_network_connect 1 && setenforce 0
即可
补充一点,网页上传可以用宝塔面板搞定,可以先安个宝塔面板超级好用


宝塔这种东西我是不敢装到机器上的,那个界面浓浓的国内广告风格鬼知道有多少后门。实在需要web操作装个kod只给index那几个文件夹权限就够了


本质上来说,所有一键安装、懒人包之类的我都挺排斥的,怕留后门
其实nginx的配置中加几行代码就可以实现反向代理(俗称镜像),不用去上传模板网站,个人也觉得也更安全,前提是你做的镜像站能在墙内直连,没有什么敏感内容,最好是图片站之类的。

下面贴出反向代理部分的单独代码
listen 80;
    server_name  www.XXX1.com; 
    location / {
        proxy_pass https://www.XXX2.com;
        proxy_redirect     off;
        proxy_connect_timeout      75;
        proxy_send_timeout         90;
        proxy_read_timeout         90;
        proxy_buffer_size          4k;
        proxy_buffers              4 32k;
        proxy_busy_buffers_size    64k;
        proxy_temp_file_write_size 64k;
     }

解释一下,www.XXX1.com为你自己注册的域名,www.XXX2.com为你想镜像网站的网址。推荐几个网站:Free Stock  /  Unsplash  /  Pexels  ,这几个站是著名的免费图片站,国内好多自媒体都在使用上面的图片
下面贴出nginx的一套常用配置(仅供参考)
server {
    listen 443 ssl; ##是你用客户端连接的端口,可自定义,推荐443端口
    ssl on;                                                        
    ssl_certificate       /key/certificate.pem;  ##你存放证书的位置,切勿照抄
    ssl_certificate_key   /key/key.key; ##你存放密钥的位置,切勿照抄
    ssl_protocols         TLSv1 TLSv1.1 TLSv1.2;                   
    ssl_ciphers           HIGH:!aNULL:!MD5;

    listen 80;
    server_name  www.XXX1.com; 
    location / {
        proxy_pass https://www.XXX2.com;
        proxy_redirect     off;
        proxy_connect_timeout      75;
        proxy_send_timeout         90;
        proxy_read_timeout         90;
        proxy_buffer_size          4k;
        proxy_buffers              4 32k;
        proxy_busy_buffers_size    64k;
        proxy_temp_file_write_size 64k;
     }

    location /etc/ws { ##路径可自定义,需和客户端保持一致
        proxy_redirect off;
        proxy_pass http://127.0.0.1:44222; ##与V2ray中设置的监听端口一致
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
        proxy_read_timeout 300s;
    }
}
补充下Apache的配置,给用Apache的人方便:

Apache配置:
Apache需要编译安装较新版本,系统自带默认2.2版本不支持ws,建议用LAMP一件安装脚本编译安装Apache(只需安装Apache别的不用),配置Apache https并访问网站测试正常后:

1.开启必要模块
ssl
proxy
proxy_wstunnel
proxy_http
rewrite
headers

vi /etc/httpd/httpd.conf

vi /usr/local/apache/conf/httpd.conf

一般配置好Apache后只需再开启:
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

2.配置HTTPS虚拟服务器支持V2ray
vi /etc/httpd/extra/httpd-ssl.conf

vi /usr/local/apache/conf/extra/httpd-ssl.conf

以如下path,端口为例:
 "path": "/XXXXXXX_Path"
端口:10000

在<VirtualHost _default_:443>内添加:

   <LocationMatch "/XXXXXXX_Path">
    ProxyPass ws://127.0.0.1:10000/XXXXXXX_Path upgrade=WebSocket
    ProxyAddHeaders Off
    ProxyPreserveHost On
    RequestHeader set Host %{HTTP_HOST}s
    RequestHeader set X-Forwarded-For %{REMOTE_ADDR}s
   </LocationMatch>

重启Apache:
service httpd restart
感觉比白话文教程还要亲民。
大神有时间可以出一篇trojan的
>> 大佬,我按照你的来搭建,在vps中安装v2ray时,脚本说安装成功了,但etc下面没有这个v2...


大佬,问题已解决,是官方安装的脚本变了,在https://github.com/v2fly/fhs-install-v2ray/wiki/Migrate-from-the-old-script-to-this中有详细的步骤,里面安装文件的位置也变了,所以替换config.json是在另一个文件夹里,具体在/usr/local/etc/,在里面替换可以成功。
安装nginx时,这个链接http://www.qzhuji.com/course/817.html有详细步骤,cenos7应该也适用。
大佬写的很详细,最后搭梯子成功了,谢谢大佬。
godaddy續費有點貴,爲這種目的買域名的話namesilo甚至freenom就行了
脚本都比较简单,可以审查


然而那个v2ray233 的脚本就有传什么东西,在GitHub上被人看出来了后来他删了,不过到现在还是有屏蔽几个网站,宝塔这种盈利性的应用就更别说了,而且宝塔那么多代码你审查得过来吗
沉默前輩辛苦了啊!其實在找到那種付費的VPN之前也想試試自己假設的,但是感覺…
可能我還是老老實實買付費的那種好了QAQ
一个小小的问题,搭配esni,doh使用会不会太不自然了反而引起怀疑,甚至被重点关照。大概就是“这个人用这么多超前的技术竭力隐藏自己的访问行为究竟在想干什么”
虽然作为机器的GFW大概想不明白这些事情,但是作为活人的那些网安什么的或许会引起注意。
匿名的基础是与无数的正常流量和光同尘以此来规避追踪,包括伪装成HTTPS流量,用太多超前的,主流还没有广泛采用的比如esni,doh会不会反而变得显眼…
是不是要用dnspod转一下好一点?


那一样还是会经过cf,或者你可以用国内备案过的域名做CDN,但是这相当于把你的VPS暴露给中共了
在此列出一些外资VPS提供商,这里列出的VPS网上已有大量测评,可靠性有保证。但如果使用中出现问题,...

virmarch背景似乎存在一点问题。据说之前搞促销的时候甚至直接搞了个墙内meme的表情包,“KVM滞销,帮帮我们”(来源未知,因为我没参与促销活动)
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; }
}
感觉比白话文教程还要亲民。大神有时间可以出一篇trojan的

其实搭建trojan已经有人写过非常详细的教程了:
(外链注意)https://trojan-tutor.github.io/2019/04/10/p41.html

简单来说,Trojan相当于Socks6 over TLS (对,是socks6)。为了防止主动探测,它在socks协议的头部加了一段hash,如果hash和预设的认证信息对不上,就转发给http服务器。因此在墙看来,Trojan服务器的行为和https服务器是完全一样的。

Trojan的优点是建立连接延迟小。数据包从客户端到服务器走一个往返,就叫一个RTT。对于一台设在美国的翻墙代理,数据包从中国到美国一个往返,至少需要150+ms。如果协议设计不合理,需要多个RTT建立连接,延迟就非常高。Trojan的握手数据包里夹带应用层数据,因此Trojan建立连接只需要一次TLS1.3握手,再算上TCP握手,Trojan建立连接只需要2个RTT。

Trojan的缺点是不支持CDN。几乎所有的免费CDN服务都不支持自定义应用层协议,只有CDN支持的协议(http1.1,websocket)才可以用CDN反代。Trojan可以看作一种特殊的socks协议,因此不能穿过CDN。

这里多说一句,vmess+http2+tls这种搭配用CDN反代,性能(可能)会下降。即使如cloudflare,截至目前也不是100%支持http2的。从CDN到源服务器那一段会走http1.1,可能会导致性能下降。
平平无奇 回复 Jason_Leung 新注册用户
修改下配置就可以了。
把配置文件里面最后三行: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; }
}
修改为:location / {
root /usr/share/nginx/html/;
index index.html index.php;
}

location ~ \.php$ {
root /usr/share/nginx/html/;
}
}
保存,重启nginx配置。登录你的域名没错的话就可以看到网站已经成功搭建了。
为何我把DNS改成CloudFlare的DNS时候,一定要让我输入IP地址?可是CloudFlare又没有提供IP地址
https://i.imgur.com/RXq2t01.png
修正nginx配置一处问题:
配置文件里增加长连接:keepalive_timeout 3600 3600;
可以明显提高性能。
還有一個域名註冊網叫namecheap,也是頗廉價的(特指首次使用域名的第一年)
真抱歉 实在是太麻烦您啦 终于搞好了 真的谢谢您 真不好意思 还需要向您请教一下 网页一开打就是40...

同到这步就nginx 404 没有红色界面,请大佬解答!
https://install.direct/go.sh
脚本已经失效,需要更换新脚本才行:https://github.com/v2fly/fhs-install-v2ray
我也不知道到底是什么错误,你可以发一下错误提示信息。估计是没有conf.d目录或者权限不够?试一下这...

真抱歉 实在是太麻烦您啦 终于搞好了 真的谢谢您 真不好意思 还需要向您请教一下 网页一开打就是404 是怎么回事呀
太太...太牛逼了,现在肉身翻墙已经用不到了,不过碰到这种好文条件反射的先收藏起来!
全程一切顺利,但是最后就是翻不了墙,参考了评论区的trouble shooting方案还是没能解决问题。我用的是Bandwagon的VPS,是不是只能换IP试试了?😭

Update:换了个IP依然不行。。求救🆘

5.9 再次Update: 退款了Bandwagon,买了Vultr的线路从头到尾重新配置,依然一样。没有报错,各项检查都正常,偏偏就是翻不了墙,可以正常打开墙内的网站。心累,想放弃了。

5.9晚间最后Update: 终于成功了!原来是这么弱智的错误,配置完之后我没有点开启代理……🤦‍♂️

感谢楼主,感谢评论区提供解决方案的各位。
qunzhong 新注册用户
兄弟们,我今年3月底按照这个教程搭建的,之前用的还挺快的。但最近感觉网速奇慢无比,感觉被限速了。大概最快在500mb/s左右(手机没被限速,手机用的华为mate10pro)请问,有什么解决办法吗?
支持一下,另外多嘴一句,最近cf cdn网络质量极烂,套了cdn很容易没速度
vps除了谷歌能免费用一年,一般都很贵的吧,一个月几百块谁扛得住呢

有很多便宜的,甚至一年10刀的(70元人民币),纯翻墙够用了
成功配置,以下介绍一下我的经验

1.Bitvise 的超时问题

使用该软件时,常常会遇到如下提示:
The SSH session has terminated with error. Reason: Error class: LocalSshDisconn, code: ByApplication, message: FlowSshPacketDecoder: unresponsiveness timeout.


个人看法是因为服务器超时,即无操作指令输入

解决方案:
将/etc/ssh 路径下的sshd_config文件 添加:

ClientAliveInterval 60

ClientAliveCountMax 10

两行文字。第一行是要求服务器每隔60S发送心跳。第二行是当10次本地无响应时关闭连接。

可以将该文件复制到本地,修改后再上传,为保险起见可重启服务器


2. Nginx 安装问题

某些centOS的yum源无法安装Nginx,建议使用博主的方法:

引用自博主的回复:

和上面那位一样,你的VPS的操作系统,没有带nginx的安装源,所以无法自动下载安装。
解决办法:换安装源,根据你的系统版本,运行以下命令:

centos7:(大多数服务器的版本)
rpm -ivh https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.16.1-1.el7.ngx.x86_64.rpm

centos8:
rpm -ivh https://nginx.org/packages/centos/8/x86_64/RPMS/nginx-1.16.1-1.el8.ngx.x86_64.rpm

Centos6:
rpm -ivh https://nginx.org/packages/centos/6/SRPMS/nginx-1.8.1-1.el6.ngx.src.rpm


3. Nginx 安装后可以访问页面,但页面提示404
原因:使用
tail -n 20 /var/log/nginx/error.log

发现:
 错误提示显示:"/etc/nginx/html/index.html" is not found


当然,前面的回复其他人建议修改配置。但本人发现
/etc/nginx/目录下


仅仅是少了
/html/index.html


建议在该目录下新增一个html文件夹,并且在本地创建index.html 文件并输入任意文字后上传到

/etc/nginx/html/下


如果访问成功,继续博主的步骤向html文件夹上传整个网站文件。
g感谢分享,看不懂
由于临近两会和六四纪念日,预期网络封锁将会加剧,特来更新此文。
  • 增加了编译Nginx的内容(可启用TLS1.3和H2)。
  • 增加了自行选择Cloudflare节点的教程。
打印成PDF
PDF转图片,然后整个文章发图片
使用 caddy 替换 Nginx 如何? 
海外的CDN加速太慢了,如果IP被干了再用吧,平时就裸跑了。
使用 caddy 替换 Nginx 如何? 

理论上caddy配置要比nginx简单,因为可以自动配置证书。但caddy需要自己配置systemd守护进程,官方提供的脚本有坑,需要修改。此外caddy还有其它一些配置,对程序员很简单,但给新手增加了难度。

综上教程里用nginx,只要简单复制粘贴命令,就可以搞定。
3.3 安装V2Ray和NginxV2Ray和Nginx可以一键安装,把下列命令复制粘贴到控制台,运...

你的系统是CentOS吗?如果是CentOS,把这条命令拆开,分开运行:

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

有些系统最后一条会出错,如果第三条报错,试试运行这个:
bash <(curl -L -s https://install.direct/go.sh)

也可以用这个一键:
yum install -y curl && yum install -y nginx && bash <(curl -L -s https://install.direct/go.sh)
沉默的广场 休假中 回复 Jason_Leung 新注册用户
 大佬你好,v2ray脚本那遇到了困难,请问怎么解决yum install -y nginx && ...

和上面那位一样,你的VPS的操作系统,没有带nginx的安装源,所以无法自动下载安装。
解决办法:换安装源,根据你的系统版本,运行以下命令:

centos7:(大多数服务器的版本)
rpm -ivh https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.16.1-1.el7.ngx.x86_64.rpm

centos8:
rpm -ivh https://nginx.org/packages/centos/8/x86_64/RPMS/nginx-1.16.1-1.el8.ngx.x86_64.rpm

Centos6:
rpm -ivh https://nginx.org/packages/centos/6/SRPMS/nginx-1.8.1-1.el6.ngx.src.rpm
我vps用的谷歌云,在Bitvise SSH这一步失败了,总是显示Authentication ab...

我一开始也是,后来搞定了
先进网页打开ssh连接 按步骤输入以下代码
1.sudo -i
2.passwd
(两次输入密码)
3.sed -i 's/PermitRootLogin no/PermitRootLogin yes/g' /etc/ssh/sshd_config
4.sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
5.reboot
6.用你刚设定密码登陆Bitvise
kking159632 新注册用户
都配置好了,网站也可以打开,但是翻不了,不知道为什么。
你前面自动配置证书用的是certbot吗?为什么证书会在网页路径下?usr/share/nginx/...

是用的certbot,我的/etc/nginx/conf.d/下默认有个ssh.conf,里面看到把usr/share/nginx/这个路径添加了,貌似nginx默认用的这个配置文件,没去找在defaul.conf中指定的certbot生成的那个证书。然后改了default.conf为ngin短网址nf,好像nginx就用了ngin短网址nf这个配置文件了,就能找到正确的证书了。
写的很详细呢!
这里说一下v2ray的缺点,配置链条逻辑非常混乱,各个模块之间互相干扰。不出问题还好,一有问题,不管是自己查错还是别人帮忙都非常困难。

另外,CloudFlare目前几乎无法使用,丢包严重,时断时续,换了很多ip都一样不行。但是v2ray直连是没有问题的,目前没有发现任何干扰或限流的情况。
提醒一下,截图隐藏你的客户ID,要不然可能会被社工的!
发帖前一定要检查一下有没有信息暴露的问题
重要提示(2020.5.31):

V2Ray TLS的实现有严重缺陷,可导致TLS流量被精准识别。V2Ray在TLS握手中使用了自定义的cipher组合列表,这个列表导致客户端的握手包出现独一无二的特征码,可被精准匹配识别。此Bug目前只影响客户端,服务器端不受影响。见Github上相关讨论。

解决方法:请尽快下载V2RayN和V2RayNG的最新版本。若使用其它客户端,需要将V2Ray客户端内核更新至4.23.2版本。

此Bug为客户端问题,不影响已经搭建好的服务器,服务器上的V2Ray可不必更新。
@沉默的广场

v2ray升级到4.29配置文件换目录了, 而且有证书权限的问题.
大佬可以像之前一样, 出个针对萌新的更新吗, 把专业的技术指南翻译补充成零门槛的
理论上caddy配置要比nginx简单,因为可以自动配置证书。但caddy需要自己配置systemd...

如果要v2ray不走ws走http/2必须用caddy。http/2本人没试过,相传比ws快,但又据说没有快多少没必要用。其它情况两个都差不多,我自己用的nginx
qianji 新注册用户
1. 第2配置文件,用记事本配置吗?
2. 配置文件里是TLS V1.2,怎么用TLS 1.3 ?
沉默的广场 休假中 回复 qianji 新注册用户
1. 第2配置文件,用记事本配置吗?2. 配置文件里是TLS V1.2,怎么用TLS 1.3 ?

记事本就可以编辑,不过推荐notepad++
网页下载地址:
https://notepad-plus-plus.org/downloads/

直接下载链接(7.8.4):
https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v7.8.4/npp.7.8.4.Installer.x64.exe

把TLSv1.2那一行改成TLSv1.2 TLSv1.3就可以了
宝塔这种东西我是不敢装到机器上的,那个界面浓浓的国内广告风格鬼知道有多少后门。实在需要web操作装个...

脚本都比较简单,可以审查
补充到1楼了。
3.3 安装V2Ray和Nginx

V2Ray和Nginx可以一键安装,把下列命令复制粘贴到控制台,运行即可。
这一步就不行了啊
你的系统是CentOS吗?如果是CentOS,把这条命令拆开,分开运行:yum install -y...

谢谢大佬 感谢感谢 解决啦 麻烦您啦 这一步又出问题了 然后按同样的步骤上传nginx配置文件,Nginx的配置文件存储在 这一步有错误提示
谢谢大佬 感谢感谢 解决啦 麻烦您啦 这一步又出问题了 然后按同样的步骤上传nginx配置文件,Ng...

我也不知道到底是什么错误,你可以发一下错误提示信息。估计是没有conf.d目录或者权限不够?
试一下这个:命令窗口里建一个:
mkdir /etc/nginx/conf.d
如果还不行:
chmod 777 /etc/nginx/conf.d
你这个前一步有问题,可能是nginx没安装上。再试试yum -y install nginx运行完以...

我用的是bash <(curl -L -s https://install.direct/go.sh)这个 显示成功了 再输入一遍就说已经最新版本了Latest version v4.22.1 is already installed.你说的yum install -y curl
yum install -y nginx
bash -c "$(curl -L -s https://install.direct/go.sh)" 这三个都不行 输入完bash <(curl -L -s https://install.direct/go.sh) 这个之后V2Ray的配置文件弄好了 路径栏里输入/etc/nginx/conf.d这个时候就是错误提示 输入 yum -y install nginx提示这个
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.jaleco.com
* extras: mirrors.rit.edu
* updates: mirror.mi.incx.net
No package nginx available.
Error: Nothing to do
我用的是bash <(curl -L -s https://install.direct/go.sh...

这是yum安装源的问题。你的VPS自带的配置有一些问题。可能是服务器到软件发行源的网络不通,也有可能是软件发行服务器的问题。总之网络不通导致nginx没法自动下载安装。(据查有一些系统yum没有带nginx)

解决办法:换安装源,如果是centos7,运行以下命令:
rpm -ivh https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.16.1-1.el7.ngx.x86_64.rpm

centos8:
rpm -ivh https://nginx.org/packages/centos/8/x86_64/RPMS/nginx-1.16.1-1.el8.ngx.x86_64.rpm

Centos6:
rpm -ivh https://nginx.org/packages/centos/6/SRPMS/nginx-1.8.1-1.el6.ngx.src.rpm

如果是其它centos版本,需要在这儿找安装源:
https://nginx.org/packages/centos/
想問一下樓主,爲什麼V2Ray就會支持Webrocket, 但是Trojan就是不支持的呢?
還有,如果Trojan想要走CloudFlare的CDN應該怎麼操作呢?
對於第二個問題,我已經用過各種搜索引擎搜索。
但是,得到的答案都是:世界加錢可及。那麼,Cloudflare裏應該選用哪些套餐呢?
Jason_Leung 新注册用户
 大佬,我把模板传上去还是nginx 404 我重新设置了好几次都这样,请问是哪里配置错了吗?
教程很详细,谢谢作者!补充几点:

很好的補充。 關於第7點,可以在瀏覽器裝個SwitchyOmega,設置特定網站走代理,這樣應該可以避免挂著代理訪問國内網站。
目前暂时用的一键脚本,手动搭建不会
参照这个教程自建V2ray,以前的一键脚本怎么办?还会起作用吗?如果还有作用,怎么删除?

重裝系統
我的所有步骤都是成功的,但是就是没有办法用,请问这个怎么解决?
非常感谢!花了一个上午配置完成了!

中途遇到了两个问题,分享给大家。

1. 购买了. cn的域名
买了. cn的域名以后发现需要身份证实名认证才能使用。。。。真是被自己蠢到了,所以又买了其他的。

2. nginx服务启动以后访问404
检查了,应该是nginx配置里没有指向网页的路径。可能是不同系统装nginx的路径有区别?
把配置文件的最后几行改正这样,就好了

    # index index.html index.htm index.php;
    location ~ .*\.(js|jpg|JPG|jpeg|JPEG|css|bmp|gif|GIF|png)$ {
access_log off;
root /usr/share/nginx/html;
}
    location / { root /usr/share/nginx/html; }
}
为何我把DNS改成CloudFlare的DNS时候,一定要让我输入IP地址?可是CloudFlare...

你可以ping一下CLoudflare给你的域名服务器,上面会显示该域名服务器的地址,你填进去就好。
教程很详细,谢谢作者!补充几点:

macOS版本的v2ray我用的是官方的:
https://v2ray.com/chapter_00/install.html
你看一下nginx能不能工作?一般报这个错是因为v2ray工作不正常,或者无法转发流量导致。因为配置...


还是不行,netstat -nltp 返回的结果是
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 597/nginx: master p
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 566/sshd
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 597/nginx: master p
tcp6 0 0 :::8964 :::* LISTEN 559/v2ray
tcp6 0 0 :::80 :::* LISTEN 597/nginx: master p
tcp6 0 0 :::22 :::* LISTEN 566/sshd

我把 log 也开启了,还调到了 debug 级别,但手机连接失败时服务器端依然没有显示错误信息,只说了 v2ray started,是不是说明手机根本就没连到树莓派上啊,这该咋办?

另外再问个问题,我 vps 和 树莓派用的都是同一个域名,但在树莓派用 certbot 注册完 ssl 证书后,vps 的证书不会无效吗(而且我把 Cloudflare 的 A 记录也改成树莓派的了,因为是 ipv6,所以是 AAAA 记录)?为什么在这之后,我依然可以联通 vps 的 v2ray 呢?
终于成功了,又快又不卡,谢谢楼主分享
说一下自己遇到的问题
----------------------------------------------------------------------
【fig1.4.10】里,记得把TSL从默认的flexible改为full,否则在nginx搭完后,会出现 “多次重定向“ 问题。

这个问题时由于CloudFlare的HTTP和HTTPs多次重定向导致的
我试了下 netcat -nv xxx 443,ipv4 的话是通的,v6就不通,请问是因为这个原因...


终于搞定了,汇报一下,原因是按照 lz 的 nginx 配置,是不会监听 ipv6 的,需要在配置文件中的 listen 后面加上 [::]:,例子: listen [::]:443 ssl http2; 这样就成功啦,哈哈。
域名在freenom上申请不好吗?反正免费。
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"
}
}
沉默的广场 休假中 回复 不鳥你 新注册用户
好的,是這個嗎?【Linux Centos 7.1503.01 X86 64 Minimal Gen...

对。只用来翻墙的vps没有关系。
我改完log之后ws文件访问不了502错误了....

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

配置好以后打开v2ray登一下。重点看v2ray_access.log这个文件就可以了
擇路 回复 kking159632 新注册用户
连接后出现这个是什么问题呀?2020/03/05 12:31:32 [Warning] failed...

我碰到了同样的问题,请问您解决了吗
外资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
自行翻页
谢谢大佬,但是设置好了PC上不了外网,但是分享到手机端就可以,请问是什么问题吗?
另外记得给V2RayN的可执行文件设置管理员权限,不然它改不了系统代理设置
asdjfoiasj 新注册用户
本人常駐PTT、天涯、巴哈youtube,最近剛來的品蔥


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

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

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

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

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

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

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

去看看天涯台灣版,保證讓你永遠都不想替中國說好話
霏艺Faye 图书管理员 回复 goday 新注册用户
大佬,SSL证书多次安装后出现这样的提示,该怎么解决,感谢An unexpected error o...

The most common rate limit of 50 certificates per domain per 7 days .
User can create a maximum of 10 Accounts per IP Address per 3 hours.
User can create a maximum of 500 Accounts per IP Range within an IPv6 /48 per 3 hours.
霏艺Faye 图书管理员 回复 沉默的广场
修正nginx配置一处问题:配置文件里增加长连接:keepalive_timeout 3600 36...



挺好奇的,这个配置项对websocket也有效么?
主要是我没看过nginx的websocket那部分。。。没法评价。。。

以我的理解,websocket本身就是长连接才对。。。
CF的CDN也是nginx,keepalive_timeout 没有配置的话或者比你的短,你这个配置应该都是没有意义的才对
霏艺Faye 图书管理员
写这么详细,还能给这么多人回答怎么解决bug,不容易啊,投入了这么时间和精力
霏艺Faye 图书管理员
https://www.cloudflare.com/products/cloudflare-spectrum/

我发现cloudflare的CDN支持 任意 TCP / UDP 协议转发的【不止是HTTP 和HTTPS】!

但是只对付费用户有效

Cloudflare Spectrum is a reverse proxy product that extends the benefits of Cloudflare to all TCP/UDP applications.
SunY 新注册用户
大神大神  终于成功啦  
虽然好像有一点点慢
xday2000 新注册用户
请问使用cloudflare解析IP后,原ip就ping不通了这样正常吗?ping域名可以正常解析到ip,但是没有响应。直接pingIP也不行

在添加a记录之前ip是确认可用的,更换过两次ip出现同样的结果

另外一个情况是,这时候访问域名的话可以看到nginx的404页面,但是添加网页后就无法访问了。继续按照教程设置完毕,v2ray没有工作

我应该怎么查找问题所在呢

——————————————————————

发现关了vultr的防火墙后就ping通了……但是这样好像就没办法设置开通哪些端口。正在找解决办法

——————————————————————

呃,使用centos8之后问题解决……虽然也没找到问题在哪

——————————————————————

郁闷,又出现新问题

本来一切正常,只是速度感觉有点慢,所以安装了一下bbr,结果v2ray连不上了。但是网站还可以访问

v2rayN报错:
2020/04/25 17:22:16 [Warning] failed to handler mux client connection > v2ray.com/core/proxy/vmess/outbound: failed to find an available destination > v2ray.com/core/common/retry: [v2ray.com/core/transport/internet/websocket: failed to dial WebSocket > v2ray.com/core/transport/internet/websocket: failed to dial to (wss://xxx.xxx.xxx.xxx/xxxxxxxxxxx): > dial tcp xxx.xxx.xxx.xxx:443: connectex: No connection could be made because the target machine actively refused it.] > v2ray.com/core/common/retry: all retry attempts failed

打算再次重装一下看看

——————————————————————

原来centos8的内核仍然是4.1x,升级内核后问题全部解决
yonghumin9 新注册用户
Socks5 over http (SoP) 要不要研究一下?

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

如何看待岁静?

https://pincong.rocks/question/item_id-427739
岁静在任何朝代都存在。

比如民国的鸳鸯蝴蝶派。
民国那真是大变局的年代了,你追求民主,呼吁民主,社会氛围比今天的轻松得多得多。
那样都尚且有人追求岁静,何况今天呢,(岁静一词的来源,就是张爱玲的:现世安稳,岁月静好。而张爱玲长期被认为是鸳鸯蝴蝶派的代表)。

很多文化决定论者,或者反中国文化者,都认为岁静是中国人自私无情,对于他人苦难无动于衷的表现。

也就是他们理解的岁静,有另一个表现:其他人死活我不管。

这一点上,其实亲中或反中是有极大区别的。
在亲中的人解读中,岁静并不是他人死活我不想管,而是我管不了。
岁静的含义是:暴力之下,我只能保全自己。
===============================

但是,无论是哪种解读,无论是亲中还是反中,都认为:打破岁静,才能启动社会转型。
他们都认为,没有岁静,天下大乱。

只不过,一个认为天下大乱是好事,大乱才能产生变化。另一个认为,天下大乱就是叙利亚,民不聊生,最后还是王朝循环。

我认为,

岁静只是一小部分城市中产的思想,在中国绝大部分地区的人是更加野蛮的丛林法则。他们追求利益是毫不留情,并且不惜性命的。
岁静你无论怎么解读,都有一个前提就是保全自己。

但是真正的丛林法则中,自身的生命是必要的赌注。因为一个毫无资产的人,生命是唯一可以拿出的筹码。
这使得革命者,必然不会是城市出身的人,而是更有野蛮气息的穷苦之人。
沉默的广场 休假中 回复 goldxpx 新注册用户
我的系统是centos7,openssl版本不是1.1.1,能不能指点下,怎么才能启动tls1.3支持...

补一下,启用TLS1.3
1. 安装依赖工具:
yum -y install gcc make perl pcre pcre-devel zlib zlib-devel

2. 下载openssl1.1.1g源码(2020年4月最新版本)

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

3. 下载Nginx1.18.0源码(2020年4月最新版本)

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

4. 编译Nginx

./configure --with-openssl=../openssl --with-openssl-opt='enable-tls1_3' --with-http_ssl_module --with-http_gzip_static_module
make && make install

编译选项里面--with-openssl指定openssl位置,--with-openssl-opt='enable-tls1_3'这一句打开TLS1.3。
====================
Nginx安装完成后,二进制文件的位置在/usr/local/nginx/sbin下面,可以替换原来的Ngnix可执行文件。输入
/usr/local/nginx/sbin/nginx -V
可以查看编译后的版本和编译参数。

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

总结葱油讨论中的非对称抗争!我写了一份方法索引!

https://pincong.rocks/article/48753

1.1非对称抗争?

彭义士四通桥一役,惊天动地!
习近平非法连任,人神共愤!
然而,现实中,我们或受制于家有老小,或不能承受被训诫之后丢失工作,很难如彭义士般有如此义怒之举。
然而,并不是没有抗争方法了!抗争方法当然有,那就是非对称抗争!

1.2何为非对称抗争?

非对称抗争,旨在用最小的风险,来为共匪造成更大的麻烦。不去直接的举牌子拉条幅以卵击石,而是长期抗争,不停抗争,犹如“植物大战僵尸”中的“地刺”,悄悄地躺在地上,不停地刺击丧尸,积少成多!
非对称抗争,我大概分为两种:宣传上的抗争和物质上的抗争。这两种有重叠的部分。
宣传上,比如厕所革命等,书写标语反对共产主义的邪恶意识形态;
物质上,例如想办法把资金换成外汇转移,蚂蚁搬家但是积少成多!对共产党的金源展开特别经济行动!

1.3为何非对称抗争?

共产党的异议者很多。或为被铁拳锤后觉醒之人,或为被迫害的宗教与民族人士,当然也不乏支黑、加速党人。
有人会说,让中国人觉醒?不如加速。
其实,让更多的中国人觉醒,也是一种加速!加剧了共产党在意识形态领域的斗争,增加了其维稳经费!
所以,无论是华人异议者,还是所谓的“支黑”派,都应支持并进行非对称抗争!
unclesam888 新注册用户
本新手给第一次接触的新手一个小建议:先去v2ry官网看一看,上面有很详细的教程,从简到繁,先把最简单的弄明白再来参考楼主的这个教程,就可能少走很多弯路。
推荐大家使用proxysu, 非常好用,楼主的方法太麻烦。proxysu可一键安装v2ray trojan, trojan-go naiveproxy等。对于大家担心的后门,反正我没发现。如果实在担心,请修改root密码。用top命令检查是否有其它有害程序运行,反正我没发现。在youtube搜proxysu就会找到使用方法。
ghx542626 新注册用户
已隐藏
wumengyi1020 新注册用户
文章是好文章,我可以说给我点赞的人肯定跟我一样看不懂。
vps推荐呢vps推荐呢vps推荐呢vps推荐呢vps推荐呢vps推荐呢vps推荐呢vps推荐呢vps推荐呢vps推荐呢vps推荐呢vps推荐呢⊂(・▽・⊂)
补充一点,网页上传可以用宝塔面板搞定,可以先安个宝塔面板超级好用
求助,谷歌云vps怎么通过Bitvise SSH登录
非常详细的教程,感谢作者的倾力相授。
教程非常详细,真的很花心思啊。感谢感谢,有不懂的会再向你学习。
支持一下,另外多嘴一句,最近cf cdn网络质量极烂,套了cdn很容易没速度

是不是要用dnspod转一下好一点?
谢谢大佬的教程,先收藏了!凑字数凑字数凑字数
vps推荐呢vps推荐呢vps推荐呢vps推荐呢vps推荐呢vps推荐呢vps推荐呢vps推荐呢vp...

补充到1楼了。
其实搭建trojan已经有人写过非常详细的教程了:(外链注意)https://trojan-tuto...

v2ray不会被墙么?
路过的名可 新注册用户
这个牛。标记一下。等待以后用到
vps除了谷歌能免费用一年,一般都很贵的吧,一个月几百块谁扛得住呢

要发言请先登录注册

要发言请先登录注册

发起人

中客理真迫 5C91 7AD9 AB01 9AD9 88BD 7392 35E4 5656 81A7 EB63

状态

  • 最新活动: 2022-11-02
  • 浏览: 433717