自建最强科学上网1:v2ray + websocket + web + nginx (EasyEngine)

【美博翻墙2019.5.13】更新版请参考:自建最强科学上网2:V2ray+Caddy+Tls+WebSocket

v2ray的诞生正应验了古训“魔高一尺,道高一丈”。在GFW封锁网络升级后,翻墙爱国网友也遇到了一些问题:VPN使用艰难,而且很多VPN的背后并非国外的安全来源,安全无从保障;前几年为网友广泛喜爱的SS(Shadowsocks)的开发者被喝茶、SSR(ShadowsocksR,SS的修改增强版)也因故停止开发。至今,v2ray的新方法成为翻墙网友的新宠,而且逐渐得到了完善,v2ray作为创新的翻墙方法,利用其核心技术可以变换出多种翻墙应用,目前结合 v2ray + websocket + web + nginx (EasyEngine)的翻墙爱国方式,成为最强的科学上网工具,美博园翻墙网本文详细介绍给网友。

刚上手 v2ray 的时候,可能感觉 v2ray 比较复杂,不过,现在随着大家广泛的使用,v2ray 的多种建立代理方式都日渐成熟,配置越来越简化,懂一点点基本服务器知识的网友只要复制代码指令就可完成自建代理全程,基本上按照详细教程的步骤走,就能够建立一个属于自己和/或朋友们使用的安全代理。

起初不熟悉,步骤多一点,可能会花上一天时间,但熟悉之后,重建、新建代理也就是复制命令、不到一小时就可搞定的活,得到的却是安全上网、可以体会到一劳永逸的欣慰,值得大家一试!

请注意:本文介绍的方法只是v2ray应用的多种科学上网方法之一,是经过美博园(allinfa.com)反复测试最好的方式之一。也欢迎网友完善补充。

-------------
美博园(allinfa.com)发布的几个目前最好的自建代理,可自行选择使用:
自建最强科学上网4:NaiveProxy + Caddy - 美博园
自建最强科学上网3:trojan + Caddy - 美博园
自建最强科学上网2:V2ray+Caddy+Tls+WebSocket - 美博园
美博园(allinfa.com)认为这几个组合都是目前翻墙思路最好、最强的翻墙方法,可等同使用。
-------------

V2Ray专题全部文章请参看:v2ray - 美博园

本文介绍方法适用于系统 Ubuntu 18.04、Debian 8

一、v2ray是什么

V2Ray 是在 Shadowsocks 作者被请喝茶之后出现的一个开源项目,V2Ray是早期的叫法,后来 V2Ray 规模越来越大,就成立一个 Project V 项目。

美博园翻墙网这里重点介绍建立代理的具体步骤,原理不详细介绍,要了解原理的网友,请参考v2ray官方的详细介绍。

v2ray.Project V GitHub项目官方: https://github.com/v2ray

v2ray.Project V 官方网站:https://www.v2ray.com/

二、v2ray特点

1、把v2ray代理流量伪装成https,代理上网就是在访问一个https网站;
2、V2Ray 定位是一个平台,开源,任何开发者都可以在这个平台上利用V2Ray开发出一个新的代理软件;
3、V2Ray 的功能非常强大,
4、V2Ray提供自己原创的翻墙协议VMess,一般认为比Shadowsocks 更安全,一般声称支持V2Ray,就是指支持 VMess协议
V2Ray也支持其他协议:
传统的代理协议:HTTP 和 SOCKS。
MTProto:Telegram 的开发团队制作的一款协议,作为 Telegram 的专用代理协议。
Shadowsocks协议,但不支持 ShadowsocksR;

三、自建 v2ray + websocket + web + nginx (EasyEngine) 的条件

1)一台 VPS 主机
2)一个域名
3)SSH连接工具:以前用putty较多,现在用Xshell很方便,本文会以Xshell进行说明。

四、建立代理

建立步骤大致分为三个大的部分:

1、v2ray 服务器端安装及配置
2、nginx (EasyEngine)安装及配置
3、v2ray 客户端使用

美博园本文并没有区分这三大部分,而是按照每一个操作过程顺序来写出具体操作步骤,请网友自建代理时,按照下面编号顺序一步一步往下走:

01、基本条件之一:购买VPS并安装系统

请见教程:
自己搭建代理服务器:VPS的选择
自己搭建代理服务器:Vultr VPS 购买图文教程
自己搭建代理服务器:Vultr VPS 系统安装图文教程

请记住VPS安装系统后得到的: ip地址 密码 用户名(默认是root),后面会用到。

02、基本条件之二:购买域名及设置与ip服务器关联

请参考教程:
自己搭建代理服务器:域名购买及设置与ip服务器关联

利用v2ray建立代理,并非一定需要域名,不要域名也可以建立代理。
但是,整合有域名的代理技术,可明显提高代理安全性,把代理行为伪装成,是实质的非虚拟,访问https网页,显然多一个域名整合进来是值得的。

美博园翻墙网本文介绍的是整合有域名的方法。

03、用SSH工具——XShell 连接VPS服务器

在自家电脑上通过安全的SSH连接到远端的VPS服务器,就可以发出各种指令来安装、建立代理服务器,在电脑上安装XShell软件来实现SSH连接非常方便,美博园推荐这个工具。

请参考:SSH连接软件-Xshell下载及使用教程

以下進入安装自建代理的部分,各种指令按照本教程做就行。

新手注意:以下命令都是在英文半角输入完成,电脑的输入法不要处于中文输入状态,以免无意输入中文字符出错。

04、更新系统

再次说明:本文介绍方法适用于系统 Ubuntu 18.04、Debian 8,二者的安装命令是一样的(后面的防火墙设置不一样)

执行以下指令:

dpkg-reconfigure tzdata && apt update && apt -y dist-upgrade && apt -y autoremove && reboot

然后回车

弹出窗口

自建最强科学上网1:v2ray + websocket + web + nginx (EasyEngine)

在出现的窗口中,这里需首先选择时区:

用键盘上下键,选择:
–> Asia,回车
再选择
–> Hong Kong 回车
就可以,之后就会下载更新并自动重启。

自建最强科学上网1:v2ray + websocket + web + nginx (EasyEngine)

自建最强科学上网1:v2ray + websocket + web + nginx (EasyEngine)

安装过程中,
在命令框中可看到不断的数据变化
最下方有进度显示,至100%才完成,耐心等待约数分钟才能完成。

此结束时,系统自动重新启动,SSH将断开,需要重新连接SSH。

05、时间校准

美博园先说明:一般来说,如果你的电脑、VPS服务器本身是自动调准时间的,时间一般是准确的,这一步并非需要调整。

据v2ray官方介绍:对于 V2Ray,它的验证方式包含时间,就算是配置没有任何问题,如果时间不正确,也无法连接 V2Ray 服务器的,服务器会认为你这是不合法的请求。所以系统时间一定要正确,只要保证时间误差在90秒之内就没问题。

对于 VPS(Linux) 可以执行命令 date -R 查看时间:

date -R

会显示出,如:

Sun, 22 Jan 2017 10:10:36 -0500

显示的结果中的 -0500 代表的是时区为西 5 区,如果转换成东 8 区时间则为 2017-01-22 23:10:36。

如果时间不准确,可以使用 date --set 修改时间:

sudo date --set="2017-01-22 16:16:23"

会显示出,如:

Sun 22 Jan 16:16:23 GMT 2017

对 VPS 的时间校准之后,自己的个人电脑时间也要调准,电脑时间调准这里不再赘述,网上方法很多。

无论是 VPS 还是个人电脑,时区是什么无所谓,因为 V2Ray 会自动转换时区,但是时间一定要准确,即时间误差在90秒之内。

06、环境要求-安装curl

要求系统中装有curl,建议提前在此安装,安装命令:

# Debian/Ubuntu系统输入如下命令:

apt-get update -y && apt-get install curl -y

# CentOS系统输入如下命令:

yum update -y && yum install curl -y

07、安裝 unzip 和 daemon

安裝 V2Ray 時需要用到 unzip 和 daemon,需首先執行如下命令:

apt install unzip daemon

安装完成显示:

Processing triggers for man-db (2.7.5-1) ...
Processing triggers for mime-support (3.59ubuntu1) ...
Setting up daemon (0.6.4-1) ...
Setting up unzip (6.0-20ubuntu1) ...
root@vultr:~#

08、安裝 官方版 V2Ray

美博园(allinfa.com)特别提醒:

网上有一些安装v2ray的一键安装包,美博翻墙网在此郑重提醒网友:最好是直接安装官方版v2ray,就是美博园本文用到的,其实就是一条命令,并不复杂。

有些一键安装包只会省略很少的步骤,但安装包里面却有一些特别的设置,如过滤了一些海外敏感网站等,这对网友并非都适用,切记!

安裝 官方版 V2Ray 執行命令:

bash <(curl -L -s https://install.direct/go.sh)

这样一条命令就会完成安裝 V2Ray.
执行很快

此脚本会自动安装以下文件:
    /usr/bin/v2ray/v2ray:V2Ray 程序;
    /usr/bin/v2ray/v2ctl:V2Ray 工具;
    /etc/v2ray/config.json:配置文件;
    /usr/bin/v2ray/geoip.dat:IP 数据文件
    /usr/bin/v2ray/geosite.dat:域名数据文件 此脚本会配置自动运行脚本。自动运行脚本会在系统重启之后,自动运行 V2Ray。目前自动运行脚本只支持带有 Systemd 的系统,以及 Debian / Ubuntu 全系列。

运行脚本位于系统的以下位置:
    /etc/systemd/system/v2ray.service: Systemd
    /etc/init.d/v2ray: SysV

执行完成末端会显示有:

  PORT:12345 (这里只是示意,非真实端口数据)
UUID:ewer735c-e888-40cc-8ded-1fe74d715c75  (这里只是示意,非真实ID数据)
Created symlink /etc/systemd/system/multi-user.target.wants/v2ray.service → /etc/systemd/system/v2ray.service.
V2Ray v4.18.0 is installed.
root@vultr:~#

请留意:

这里可以看到 Port 和 UUID, UUID 相當於 V2Ray 的密码,
请将 Port 和 UUID 这二项资料复制保存记录下来,后面要用到。

09、启动v2ray

虽然已经安装了 V2Ray,但并没有启动,

现在启动v2ray,输入命令:

service v2ray start

查看v2ray状态
这个可以查看,也可以不查看
输入命令:

service v2ray status

如看到如下绿色字 active (running),表明 v2ray已经启动:

自建最强科学上网1:v2ray + websocket + web + nginx (EasyEngine)

注意:查看v2ray状态后,SSH窗口的命令输入光标可能消失,即:没有了 root@vultr:~#(本例如此,你的服务器vultr这个名会不同),无法输入下一个命令
这时,请参考前文:SSH连接软件-Xshell下载及使用教程 - 美博园 之 3、“打开”建立的SSH连接
即:重新打开SSH连接到服务器,就会在新建的SSH连接中出现 root@vultr:~# ,可以输入下一个命令了

10、 安装 EasyEngine

V2ray需用到 NGINX,NGINX是什么,大多数网友不需要了解,知道用下面命令安装即可,若需要详细了解的网友可自行网上查询。

美博园翻墙网这里推荐安装 EasyEngine 来架前端,它相当好用,因它内置了 NGINX 和 Let’s Encrypt,省去我们一些安装步骤,而且,EasyEngine可在 Let’s Encrypt的 SSL加密证书三个月期满后自动续约,相当方便。

一键命令安装EasyEngine

wget -qO ee rt.cx/ee && sudo bash ee

完成需约2、3分钟

中途会询问你的 名字 和 email

请自己随意输入,但要注意: 输入时一定要在光标处,不要在前后增加空格,这是常常会出错的地方

提示:

EasyEngine (ee) will NEVER send your information across
Enter your name:
(输入名字,如:)
abcd   (请改为自己想输入的名字,只是标示,可随意)
回车

接着,提示输入 mail

Enter your name: abcd
Enter your email:
(输入mail,如:)
abc123@gmail.com    (请改为自己的mail,也没有看到实际用途,可随意)
回车

继续快速安装,几十秒完成
完成安装可见:

For EasyEngine (ee) auto completion, run the following command
source /etc/bash_completion.d/ee_auto.rc
EasyEngine (ee) installed/updated successfully
EasyEngine (ee) help: http://docs.rtcamp.com/easyengine/
root@vultr:~#

11、 应用bash自动完成功能

安装完成后,需要为EasyEngine ee命令应用bash自动完成功能,令设定更加顺利。
运行以下命令:

source /etc/bash_completion.d/ee_auto.rc

12、安装 Let’s Encrypt 的SSL证书

Let’s Encrypt 提供免费的 SSL证书,为大家使用ssl加密(即:https)提供了方便,每3个月需要重新申请一次,但本文方法安装在EasyEngine中,到期会自动续约。

在安装EasyEngine后,可以很方便安装Let’s Encrypt 的SSL证书,一个命令解决问题。

先请大家留意,如下命令中的域名 abc.com(本文示意),需要換成你自己申請的 域名domain!

输入命令:

ee site create abc.com --html --letsencrypt

回车

大概几分钟后,会提示:

root@vultr:~# ee site create abc.com --html --letsencrypt
Adding repository for NGINX, please wait...
Updating apt-cache, please wait...
Fixing missing GPG keys, please wait...
Installing packages, please wait...
Reload : nginx     [OK]
Running pre-update checks, please wait...
Setting up NGINX configuration 	[Done]
Setting up webroot 		[Done]
Reload : nginx     [OK]
HTTP Auth User Name: easyengine
HTTP Auth Password : bHJJEG
Successfully created site http://abc.com
Letsencrypt is currently in beta phase. 
Do you wish to enable SSl now for abc.com?
Type "y" to continue [n]:

询问是否继续

输入字母 y
然后按 回车(Enter键)

这个比较长一点时间,约几分钟完成,

可见:

Do you wish to enable SSl now for abc.com?
Type "y" to continue [n]:y
Downloading LetsEncrypt          [Done]
Please Wait while we fetch SSL Certificate for your site.
It may take time depending upon network.
Let's Encrypt successfully setup for your site
Your certificate and chain have been saved at /etc/letsencrypt/live/abc.com/fullchain.pem
Configuring Nginx SSL configuration
Adding /var/www/abc.com/conf/nginx/ssl.conf
Adding /etc/nginx/conf.d/force-ssl-abc.com.conf
Added HTTPS Force Redirection for Site  http://abc.com
Creating Cron Job for cert auto-renewal
Reload : nginx     [OK]
Congratulations! Successfully Configured SSl for Site  https://abc.com
Your cert will expire within 89 days.
root@vultr:~#

说明安装ssl成功,ssl证书已经安装到你的域名 abc.com上了,89天后过期。

  Let’s Encrypt 安裝不了的说明
我们已经收到有多位网友反馈在安装SSL时遇到问题,有关问题请见下文:
Let's Encrypt SSL 安装不了的若干问题解答

12、将 v2ray 加入 nginx

其实就是在域名domain中建立一个路径。按照下面几步输入命令:

12-1)进入 nginx 的 conf(整合文件)

同样需注意,下面命令中的域名abc.com,要改为你的域名domain
输入:

cd /var/www/abc.com/conf/nginx

回车

12-2)之后输入下面指令编辑NGINX配置文件:v2ray.conf

输入命令:

nano v2ray.conf

12-3)在窗口中,将下列内容贴上去:

请注意下列要贴上去的内容中,有二个地方要先修改为你自己的内容:

a)将 vv22 改为你自己的路径,可改为任意数字字母
b)12345这个端口号,改为你前面第08步记下的port

美博园(allinfa.com)提示: 复制、修改下面代码时特别注意不要增减空格或任何标点符号等。

再次提示:下面代码中这个路径 /vv22  的斜杠后没有空格;127.0.0.1:12345这些数字间都没有空格!

--- 请复制以下代码,不包括本行 ---

location /vv22 {
proxy_redirect off;
proxy_pass http://127.0.0.1:12345;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}

--- 复制代码结束,不包括本行 ---

退出nano编辑状态

输入上述修改后的内容后,退出nano编辑状态

按 Ctrl+X
它会问你会否储存档案,按下 y 后,
再按多一次 Enter 键就可以了。

返回根目录

注意,上述退出nano编辑后,并不在根目录,而是在:root@vultr:/var/www/abc.com/conf/nginx#
需要退回到根目录后再输入后续命令。

在root@vultr:/var/www/abc.com/conf/nginx# 后面
输入

cd

回车
就可退回到根目录

13、建立一个 html网页文件

给域名建立一个网页文件,请输入如下命令,

请注意:务必先将下面命令中的域名 abc.com(本文示意)改为你自己的域名

cp /var/www/html/index.nginx-debian.html /var/www/abc.com/htdocs/index.html && chown www-data: /var/www/abc.com/htdocs/index.html

14、重新启动 NGINX

输入命令

service nginx restart

回车

查看nginx启动状态

输入命令:

service nginx status

显示有绿色的 active (running),表明nginx正在运行。

15、设定 V2ray服务器端

V2ray 服务器端所有设定都在 /etc/v2ray/config.json,所以修改这个文件就可以了。

15-1)首先备份原本的 V2ray 服务器端 配置文件 config.json

输入命令:

cp /etc/v2ray/config.json /etc/v2ray/config.json.bak

15-2)然后,删除原本的config.json文件

因上一步已经备份了原本的config.json文件,可以将原本删除了。

输入命令:

rm /etc/v2ray/config.json && nano /etc/v2ray/config.json

15-3)编辑 V2ray 服务器端 配置文件 config.json

还记得前面第08步叫大家记下 port 和 UUID 吗? 这里就会用到了。

---
如果忘记的话,可以输入以下指令:

cat /etc/v2ray/config.json.bak

就可看到原本的 UUID 和 port
---

将下列内容复制到窗口中

美博园(allinfa.com)提示:

※ 请务必不要动代码中的任何标点符号、包括不要增减空格等等;

再次提示:这个服务器端的代码中,最容易出错的是自己填入的几个数据如端口、ID、路径等,在『复制』时无意中『增加了空格』,如ID那一行:

本来是 "id": "ewer735c-e888-40cc-8ded-1fe74d715c75", 即:双引号中的字符间全部没有空格;

但在复制时系统可能会在引号前、后或ID那串字符前增加半角空格,不易发现,变成这样,如:

"id": "_ 这里多一个空格ewer735c-e888-40cc-8ded-1fe74d715c75", 这就会出错。

※ 请务必替换下面3项内容:

1)"port":12345,    将12345换成第08步自己的端口号
2)"id": "ewer735c-e888-40cc-8ded-1fe74d715c75",   请更换为第08步自己的UUID
3)"path": "/vv22"    请将vv22更换为第12-3步中自己的路径

再次提示:这个路径 "/vv22" 的引号前、引号后、斜杠前、斜杠后,都没有空格,即:

"/vv22" 这是对的,字符间全部没有空格;

这些有空格的都会出错:" /vv22"   "/ vv22"   "/vv22 "   " / vv22" 等

========= 复制下面的内容,不包括本行 ===========


{
    "log": {
            "access": "/var/log/v2ray/access.log",
            "error": "/var/log/v2ray/error.log",
            "loglevel": "warning"
    },
    "inbound": {
            "port": 12345,
            "protocol": "vmess",
            "settings": {
                    "clients": [{
                            "id": "ewer735c-e888-40cc-8ded-1fe74d715c75",
                            "level": 1,
                            "alterId": 64,
                            "security": "auto"
                    }]
            },
            "streamSettings":{
                    "network":"ws",
                    "security": "auto",
                    "wsSettings":{
                            "path": "/vv22"
                            }
                    }
    },
    "outbound": {
            "protocol": "freedom",
            "settings": {}
    },
	"outboundDetour": [
        {
            "protocol": "blackhole",
            "settings": {},
            "tag": "blocked"
        }
    ],
    "routing": {
        "strategy": "rules",
        "settings": {
            "rules": [
                {
                    "type": "field",
                    "ip": [
                        "0.0.0.0/8",
                        "10.0.0.0/8",
                        "100.64.0.0/10",
                        "127.0.0.0/8",
                        "169.254.0.0/16",
                        "172.16.0.0/12",
                        "192.0.0.0/24",
                        "192.0.2.0/24",
                        "192.168.0.0/16",
                        "198.18.0.0/15",
                        "198.51.100.0/24",
                        "203.0.113.0/24",
                        "::1/128",
                        "fc00::/7",
                        "fe80::/10"
                    ],
                    "outboundTag": "blocked"
                }
            ]
        }
    }
}

========= 复制到此结束,不包含本行 ==============

15-4、保存修改:

贴上上述代码后,不用回车
按Ctrl+X
来退出 nano编辑

它会问你是否储存档案,按下 y
再按 Enter 键就可以了。

16、输入语法检查:

因上面输入的命令很多,难免有时输入有误,此步可進行语法检查.

16-1)安装jq

输入命令:
apt install jq

会提问是否继续:
Do you want to continue? [Y/n]

输入 y
回车

16-2)语法检查

输入命令:
jq . /etc/v2ray/config.json

没有提示,表明没有问题。

17、重新启用v2ray

输入命令:

service v2ray restart

检查一下启动状态,输入命令:

service v2ray status

如看到 绿色字 active (running),表明 v2ray已经启动。

18、重新 reload sysctl

输入

sysctl -p

回车

-----------------

至此,本教程v2ray代理已经安装完成可以使用了。

为了增强安全性,下面介绍防火墙设置,请接着上面的步骤继续完成下面的设置:

-----------------

19-1、Ubuntu 18.04 系统 开启防火墙及端口设置

如果你使用的是 Ubuntu 18.04 系统,请按照下面的设置,不适用于Debian系统和Centos系统

因我们只是用于翻墙,需要打开这几个端口 port: 22, 80, 443,和你自己的端口(本教程例举为12345),

22 / TCP(入站/出站):标准SSH端口
80 / TCP(入站/出站):标准HTTP端口
443 / TCP(入站/出站):标准HTTPS端口
12345 / TCP(出站):连接到GPG密钥服务器端口

用下面的命令打开这几个 port

依次輸入以下指令:

ufw allow 22

回车

ufw allow 80

回车

ufw allow 443

回车

再次提醒下面命令的12345改为自己『08、安裝 官方版 V2Ray』产生的端口

ufw allow  12345

回车

再输入命令启用防火墙

ufw enable

回车

会提问:

root@vultr:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?

问是否真的启用防火墙 enable firewall,并警告如果设定不当会断线。因我们已经启用 allow port 22 ,所以没有问题,

按下 y
回车

就可以了。

接上,linux系统设定微调

提示:此仅适用于Ubuntu系统,不适用于Debian系统和Centos系统。
参考:
Linux TCP 性能調優筆記 · Siege
Linux TCP 性能調優筆記 - Siege

目的是帮助服务器“提高并发数量”和“改善高延迟掉包”情况,使得连线速度更好一些。
本文可以

20-1)首先备份原本设定

cp /etc/sysctl.conf /etc/sysctl.conf.bak

20-2)删除原本文件

rm /etc/sysctl.conf && nano /etc/sysctl.conf

20-3)复制下面新设定文件内容

--------- 复制 下面内容 开始 start,不包含本行 -----------


#
# /etc/sysctl.conf - Configuration file for setting system variables
# See /etc/sysctl.d/ for additional system variables.
# See sysctl.conf (5) for information.
#

### 内存管理 ###

#提高整个系统的文件限制
fs.file-max = 2097152
fs.inotify.max_user_watches=524288

# 减少使用缓存
vm.swappiness = 10
vm.vfs_cache_pressure=50
vm.dirty_ratio = 60
vm.dirty_background_ratio = 2

### 一般网络安全设置 ###

#表示开启SYN Cookies。当出现SYN等待队列溢出时,使用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_syncookies = 1

# Number of times SYNACKs for passive TCP connection.
net.ipv4.tcp_synack_retries = 2

#表示用於向外连接的端口范围。缺省情况下很小
net.ipv4.ip_local_port_range = 2000 65535

# Protect Against TCP Time-Wait
net.ipv4.tcp_rfc1337 = 1

# 减少 tcp_fin_timeout 等待时间
net.ipv4.tcp_fin_timeout = 15

# 表示当keepalive起用的时候,TCP发送keepalive消息的频度。
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 15

### TUNING NETWORK PERFORMANCE ###

# 预设 socket 缓存
net.core.rmem_default = 31457280
net.core.wmem_default = 31457280

#增加 TCP 缓存上限
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864

# 增加接收的连接
net.core.somaxconn = 65535

# 当网络卡接收的 packets 快过 kernel 能处理的时候,增加连线进来的 backlog queue 能令 kernal 有更多时间处理
net.core.netdev_max_backlog = 250000

# Increase the maximum amount of option memory buffers
net.core.optmem_max = 25165824

#表示SYN队列的长度,默认为1024,加大队列长度?8192,可以容纳更多等待连接的网络连接数。
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 1440000

# Increase the maximum amount of option memory buffers
net.core.optmem_max = 25165824

#增加 Linux 自动调整的 TCP 缓存上限
# This is measured in units of pages (4096 bytes)
net.ipv4.tcp_mem = 65536 131072 262144
net.ipv4.udp_mem = 65536 131072 262144

# Increase the read-buffer space allocatable
net.ipv4.tcp_rmem = 8192 87380 16777216
net.ipv4.udp_rmem_min = 16384

# Increase the write-buffer-space allocatable
net.ipv4.tcp_wmem = 8192 65536 16777216
net.ipv4.udp_wmem_min = 16384

# 表示系统同时保持TIME_WAIT的最大数量,如果超过这个数字,TIME_WAIT将立刻被清除并打印警告信息,可以用来防止简单的 DOS 攻击。
net.ipv4.tcp_max_tw_buckets = 1440000

#表示开启重用。允许将TIME-WAIT sockets重新用於新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1

#表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭;
#为了对NAT设备更友好,建议设置为0。
#修改TW快速回收的问题以更好的兼容移动设备。
net.ipv4.tcp_tw_recycle = 0

#修改系统默认的 TIMEOUT 时间。
net.ipv4.tcp_fin_timeout = 30

#额外的,对於内核版本新於**3.7.1**的,我们可以开启tcp_fastopen:
net.ipv4.tcp_fastopen = 3

#recommended for hosts with jumbo frames enabled
net.ipv4.tcp_mtu_probing = 1

20-4)退出保存

粘帖上述内容后
按Ctrl+X
退出 nano,

问你会否储存档案,按下 y

再按Enter 键
就可以。

-----------复制上面内容 结束,不包含本行-------------------

19-2、Debian 8 系统 开启防火墙及端口设置

如果你使用的是 Debian 8 系统,请按照下面的设置,不适用于Ubuntu系统和Centos系统

1)安装UFW
Debian默认不安装UFW,使用apt安装:

sudo apt install ufw

2)设置默认策略
要设置UFW使用的默认值,使用以下命令:

sudo ufw default deny incoming
sudo ufw default allow outgoing

3)允许SSH连接
允许端口22上的所有连接

sudo ufw allow 22

如果将SSH使用其他端口,则必须指定相应的端口。例如,如果SSH服务器正在监听端口2222 ,则可以使用此命令允许该端口上的连接:

sudo ufw allow 2222

4)启用UFW
在允许了SSH后,才启用UFW,不然SSH连接会断开
要启用UFW,使用以下命令:

sudo ufw enable

会询问是否安装,
root@v3225:~# sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?

请输入 y

完成安装会显示:
Firewall is active and enabled on system startup

5)打开常用端口

翻墙会用到 端口80、443、自己服务器的端口本教程的12345
依次输入:

sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 12345 (改为自己的v2ray服务器端口)

至此,防火墙设置完成

=== 以上到此,v2ray完成,可以安全使用了,祝贺大家,辛苦了!===

参考:一些在线工具/资源

前面提到了,v2ray为网友搭建了一个平台,网友可以发挥才智创建多种代理用法,本文介绍的只是众多用法中的一种方式。
以下是一些在线工具/资源,方便网友在进一步使用时自己创新和灵活应用(不分先后顺序):
VeekXT V2Ray配置生成(veekxt.com)
https://www.veekxt.com/utils/v2ray_gen
支持 4.x 版本的配置文件生成器
V2Ray 配置生成器(GitHub)
https://github.com/htfy96/v2ray-config-gen
静态 V2Ray 配置文件生成页面
UUID Generator(uuidgenerator.net)
https://www.uuidgenerator.net/
VMess User ID 生成工具
vTemplate 项目仓库(GitHub)
https://github.com/KiriKira/vTemplate
一个 V2Ray 配置文件模板收集仓库

***
=== 自建最强代理 v2ray、trojan、NaiveProxy 系列文章参考 ===

自建最强科学上网4:NaiveProxy + Caddy - 美博园
自建最强科学上网3:trojan + Caddy - 美博园
自建最强科学上网2:V2ray+Caddy+Tls+WebSocket - 美博园
自建最强科学上网:v2ray + websocket + web + nginx (EasyEngine) - 美博园
自己搭建代理服务器:VPS的选择 - 美博园
自己搭建代理服务器:Vultr VPS 购买图文教程 - 美博园
自己搭建代理服务器:Vultr VPS 系统安装图文教程 - 美博园
自己搭建代理服务器:检测ip是否被墙及更换ip - 美博园
自己搭建代理服务器:域名购买及设置与ip服务器关联 - 美博园
SSH连接软件-Xshell下载及使用教程 - 美博园
WinSCP:连接远端服务器的管理传输工具的使用教程 - 美博园
v2ray客户端代理上网 - Windows、Android、Mac、ios - 美博园
Let's Encrypt SSL 证书安装不了的若干问题解决 - 美博园
如何开启Google TCP BBR 加速 - 美博园
V2ray自建代理遇到的一些问题及解决 - 美博园
原文链接:https://allinfa.com/v2ray-websocket-web-nginx-easyengine.html
原文标题:自建最强科学上网1:v2ray + websocket + web + nginx (EasyEngine) - 美博园
※ 除声明转载,美博园文章均为"原创",软件版权归原作者,转载请以上面超链接注明来源!

本文TinyURL短网址: http://tinyurl.com/y2ez477l

网 友 留 言

21条评论 in “自建最强科学上网1:v2ray + websocket + web + nginx (EasyEngine)”
  1. ghjds says:

    和之前翻墙比起来,现在太复杂了,请问还有简单的介绍吗?

  2. 尋找真相 啊 says:

    博主您好:

    首先感謝您這篇翻牆史上最強最詳細的教程!但我在安装EasyEngine時從第二步開始都有報錯,無法安裝成功。最初是因爲在輸入郵箱時打錯了一個字符後backspace無法刪除,網上搜到教程解決這個問題後開始輸入bash ee第二次安裝,但這時就一直不提示要設置郵箱,反而顯示郵箱帳號無效,後面的第11、12兩步單獨輸入發現也是每步都報錯,這時輸入tail /var/log/ee/ee.log查看安裝日誌發現也報錯,提示找不到文件或目錄,去了ee官網查看,本人非計算機專業並且英文很爛,不過大概也查到是因爲最近的EasyEngine的版本進行了大的更新,從v3升級到v4後連安裝日誌的目錄等都有變更。然後我就一直卡在ee安裝這裏進行不下去了。請博主抽空補充更新下這一塊的教程。謝謝!
    補充:我很喜歡看文昭談古論今和江峰時刻,現在翻牆一般也都是在看着了。

  3. seven says:

    私以为LZ这种做法并不太好,只是架了一个网站,但实际上还是使用的12345这个端口用于v2ray通信啊。另外,tls也没有启用,这对于所谓的最强方案不太妥。

    个人建议,把tls开启,走443会好一些,当然速度上可能会有一些损耗。
    另外,ee在debian9上是用docker安装的,对于小内存的VPS,docker并不友好,楼主提到用ee是因为可以快速架设前端,并安装Let’s Encrypt的证书并自动续期,但其实acme.sh脚本也可以生成证书并续期。

    动手能力强的朋友,还是建议自己用apache+nginx+v2ray+ws+tls自己来做。

    欢迎楼主交流

    • 美博园 says:

      @seven
      您好,
      欢迎来到美博园讨论。
      v2ray是目前一个很好的平台,可以发挥各自的才智开发多种翻墙方式,当然这是大家都知道的了。这里指的最强,是指v2ray,当然美博园测试的这种方法也包括在其中之一。
      关于你提到的问题,美博园的思考是这样的:

      1、关于不使用 acme.sh 脚本

      美博园的读者群除了很多国内朋友,还有一群特别的朋友,如法轮功、民运等等,所以一直以来对安全要求的期许甚高,拿不准安全性的东西,能不用的就尽量不用。当年的ssr就是例子。

      不使用acme.sh 脚本,是因为:

      其一、这个acme.sh 脚本,是国内朋友开发的,美博园相信国内朋友有很高的技术水准,可以在技术上开发很多好东西,但是毕竟在国内有特殊环境的不确定性,如当公安、国安要挟时,安全性就难以持续稳定,所以,美博基于安全基本上不使用国内这样的东西;

      其二、据测其服务器是架设在Google Cloud上的,国内的朋友使用时偶尔可能会出现问题,所以最好避免要通过代理来建代理。

      国内有的朋友开发有一键v2ray脚本,有的其中过滤了一些海外敏感网站,对此美博园也是不会接受的。

      2、关于apache+nginx+v2ray+ws+tls这个方法及EE的使用等

      这也是一个很好的方法(apache+nginx+v2ray+ws+tls)。
      美博园测试过v2ray多种方法,V2ray+mKCP 、V2ray+TLS 都有其明显缺点,在对比测试现在的方法和apache+nginx+v2ray+ws+tls时,至少在测试时发现几个问题:

      其一、没有美博园现在介绍的方法速度快,这一点你提到了,其实作为代理速度慢一点是可以接受的,这不主要;

      其二、没有美博园现在介绍的方法稳定,不稳定的原因却可能很多:如:有时连不上服务器,有时在不同的服务器上安装即使是同样的配置文件,也有安装成功,但就是无法使用apache+nginx+v2ray+ws+tls,后来发现与服务器上其它程序占用443端口有关,等等,这些对于新手来说,却是很难处理的;

      其三、美博园介绍的这个方法,对于个人建立自己或少数几个朋友使用这个自建代理,用自己独有的端口并无太多问题。在实际使用中,已经有多台服务器在很长时间都一直稳定在运行。

      其四、你说“私以为LZ这种做法并不太好,只是架了一个网站”。美博持保留意见。
      采用ws通过nginx方案,与正常的https访问其实是一致的,这样的伪装度可能仍是最高的,配置 Nginx 使用 SSL 证书,HTTPS 解密由 Nginx执行,服务器端v2ray只需要接受明文 WebSocket 连接即可,因是自建,一般不会公开,就像是在真正实际访问网站,没有特征信号就不易被国内GFW探测到。我们有些知名翻墙软件,最大的问题就是有特征信号。

      其五、你说“ee在debian9上是用docker安装的,对于小内存的VPS……”,
      这个方面美博至今没有发现问题,我们多台服务器都是使用网上最小的VPS(1cpu512M),性能测试并没有什么问题,运行仍然高速,CPU占用并不高,下载速度一般都可维持8~9M/s。当然这可能与vps服务器位置和用户所在地区有关。

      其六、nginx与apache各有所长,都可使用,ee可以方便新手使用。

      以上仅供参考,当然这不是说美博园介绍的这个方法就没有缺点,也不是说这个方法永远实用。在翻墙技术方面,美博欢迎您及朋友们提出更好的方案,更欢迎直接成文投稿,与墙内朋友分享技术。

  4. runzhen says:

    非常感谢分享,已经正常上网。

  5. V2ray出來幾年了,你才寫出來。我都用很久了,人家中共都監測很久了。以前很關注美博園!可惜翻牆技術一直太舊!希望你們以後勤快點更新。現在v2ray偶爾還是會上不到!估計已經被檢測,新技術是用trojan項目搭建翻牆!還有http/3和TLS1.3,IPV6與CDN結合比較好。ZeroNet項目知道有沒有合適的改進腳本可以用。這些希望你們好好研究多寫搭建教程。各種系統如centos7,Ubuntu和docker和亞馬遜微軟谷歌雲服務搭建寫出詳細的教程。最好附上動態網之類的址導航,好讓大家知道翻牆幹什麼。

    • 美博园 says:

      @快樂不起來
      继续努力!
      如果网友有好的方法分享,也欢迎投稿,谢谢

    • Lilin says:

      @快樂不起來 看到“快乐不起来”的留言,不敢苟同“太旧”的说法,也来说几句。V2ray我也用一段时间了,v2方法是多变的,以前多是v2结合TLS的方法,凭心而论,美博介绍的这个方法v2ray + websocket + web + nginx (EasyEngine),网上并不多见,看来美博是用心研究过一段时间的,有很多优点安全性易用性是很好的一个方法,而且美博的这个v2搭建教程是全网,算我孤陋寡闻了,是全网最仔细最具有可操作性的一个教程,很多注意点都毫无保留的写出来了,对新手很有帮助,看得出来美博用心良苦。网上是有很多教程,但按照那些教程多数是无法搭建成功v2代理的,我自己就是多次失败的才搭建好的,再后来我改用这个方法,一直稳定使用至今。如果“快乐不起来”不是使用美博的这个方法,建议试试。

    • 美博园 says:

      @快樂不起來 、@Lilin

      感谢各位的建议、理解和支持!我们会继续努力。

      美博园的宗旨是提供安全可靠的翻墙和安全技术,所以一直以来我们很少发布不太成熟的翻墙技术,也并不像很多网站一个技术分成很多篇文章来发布,那样会让翻墙的网友花比较多时间来浏览。以前我们重点在发布已经稳定、安全可靠的翻墙技术,对于这个部分我们会跟踪進度和及时更新。对于有安全疑虑的,我们就没有发布,这是我们讨论的原则,如当时很热门的SS,因知道作者在国内,我们网站就一直没有推广这个技术。

      就V2Ray而言,V2Ray要分成不同系统、不同服务器、不同方式搭建,我们当初的考虑是那样做没有必要,早期测试V2Ray+tls,这是网上多数使用的方法,但这个毕竟是伪装 HTTPS 连线,容易被探测。我们本文提供的这种V2Ray方法在众多的V2Ray方法中已经是比较完善比较好的方法。

      我们是测试相当长时间才发布的这个方法:v2ray + websocket + web + nginx (EasyEngine),之前到至今都有大陆网友一直在实用,所以我们对推出的这个方法比较有信心。而我们的这个方法就是让翻墙就像是在浏览一个真正的https网站。trojan方法也是这个思路,非常类似。

      关于“动态网之类的网址导航”,这个我们不会去做,美博园翻墙网主页就有翻墙后要干什么的导航网址说明。

      感谢“快乐不起来”的建议,我们会讨论一下对于一些还不是太实用、还不确定安全性的的技术等,是不是也发布一些新消息?

      毕竟都是业余在做,时间有限,有时也有忙不过来更新不及时的状况,请大家多多谅解,非常欢迎网友投稿分享好的翻墙方法,谢谢!

这里是你留言评论的地方

9 + 1 =

【您可以使用 Ctrl+Enter 快速发送】

Copyright © 2007 - 2020 , Design by 美博园. 版权所有. 若有版权问题请留言通知本站管理员. 【回到顶部】