Skip to content

Latest commit

 

History

History
303 lines (243 loc) · 13.8 KB

README-TLS.md

File metadata and controls

303 lines (243 loc) · 13.8 KB

Xray-TLS+Web搭建/管理脚本

目录

1. 脚本特性

2. 注意事项

3. 安装时长说明

4. 脚本使用说明

5. 运行截图

6. 伪装网站说明

7. 关于TLS握手、TLS指纹和ALPN

8. 关于gRPC与WebSocket

9. 安装位置

10. 依赖列表

11. 注

脚本特性

  1. 支持 (VLESS/VMess)-(TCP/gRPC/WebSocket)-(XTLS/TLS) + Web 的搭建/管理,支持多种协议并存

  2. 集成 多版本bbr/锐速 安装选项

  3. 支持多种系统 (Ubuntu CentOS Debian deepin fedora ...)

  4. 支持多种指令集 (x86 x86_64 arm64 ...)

  5. 支持ipv6only服务器 (需自行设置dns64)

  6. 集成删除阿里云盾和腾讯云盾功能 (仅对阿里云和腾讯云服务器有效)

  7. 使用Nginx作为网站服务

  8. 使用Xray作为前置分流器

  9. 使用acme.sh自动申请/更新域名证书

  10. 支持选择搭建个人网盘作为伪装网页

注意事项

  1. 此脚本需要一个解析到服务器的域名 (支持cdn)

  2. 此脚本安装时间较长,见 安装时长说明

  3. 此脚本设计为个人VPS用户使用,不适合机场主使用 (此脚本没有多用户管理/流量统计等功能)。

  4. 建议在纯净的系统上使用此脚本 (VPS控制台-重置系统)

安装时长说明

此脚本的安装时间比较长 (安装时长参考) ,原因见这里

此脚本适合安装一次后长期使用,不适合反复重置系统安装,这会消耗您的大量时间。如果需要更换配置和域名等,在管理界面都有相应的选项。

如果有快速安装的需求,推荐在 Xray-core#Installation 中选择其他脚本

安装时长参考

安装流程:

[升级系统组件]->[安装bbr]->[安装php]->安装Nginx->安装Xray->申请证书->配置文件->[配置伪装网站]

其中[]包裹的部分是可选项。

这是一台单核1G的服务器的平均安装时长,仅供参考:

项目 时长
升级已安装软件 0-10分钟
升级系统 10-20分钟
安装bbr 0-3分钟
安装php Centos8(gcc8.3 4.18内核):20-60分钟
Ubuntu20.10(gcc10.2 5.11-rc3内核):15-20分钟
Debian10(gcc8.3 4.19内核):10-15分钟
安装Nginx 13-15分钟
安装Xray <半分钟
申请证书 1-2分钟
配置文件 <100毫秒
配置伪装网站 Nextcloud:1-3分钟
Cloudreve:1-2分钟

为什么脚本安装时间那么长?

之所以时间相比别的脚本长,有三个原因:

1.集成了安装bbr的功能
2.集成更新系统及软件包的功能
3.(主要原因) 脚本的Nginx和php是采用源码编译的形式,其它脚本通常直接获取二进制程序

之所以采用编译的形式,主要考虑的原因为:

1.便于管理
2.便于适配多种系统

编译相比直接安装二进制文件的优点有:

1.运行效率高 (编译时采用了-O3优化)
2.软件版本新 (可以对比本脚本与其他脚本Nginx的版本)

缺点就是编译耗时长

脚本使用说明

1. 安装wget && ca-certificates

Debian基系统(包括Ubuntu、Debian、deepin):

apt --no-install-recommends -y install wget ca-certificates || (apt update && apt --no-install-recommends -y install wget ca-certificates)

Red Hat基系统(包括CentOS、fedora):

dnf -y install wget ca-certificates || yum -y install wget ca-certificates

2. 获取/更新脚本

wget -O Xray-TLS+Web-setup.sh https://github.com/kirin10000/Xray-script/raw/main/Xray-TLS+Web-setup.sh

3. 执行脚本

bash Xray-TLS+Web-setup.sh

4. 根据脚本提示完成安装

运行截图

伪装网站说明

伪装网站的作用

这个网站是用你的域名搭建的一个网站,搭建完成后可以直接在浏览器上输入你的域名访问。

你使用Xray进行代理的全部流量都将伪装成访问这个网站的流量。

注意伪装网站不是万能的,据部分人的经验,只要你的月流量超过一定限度运营商就会把你封喽,不管你的伪装网站是什么。也就是说哪怕你完全不代理,只是正常访问你的网站访问了太多的流量,也可能被封

伪装网站的选择

使用VPS自建Xray代理在流量的常见特征有 单点性大流量性长时间性GO-TLS指纹特性出入相同性 等。

  • 单点性 指使用的人少,一般只有自己,即使分享给朋友,一般也不会太多。
  • 长时间性 不单指时间长,也指坚持一个月或一年每天都使用代理。
  • GO-TLS指纹特性 在不伪装浏览器指纹的前提下,从TLS握手信息中可以判断出客户端是GO程序,详见此处
  • 出入相同性 指入VPS和出VPS的流量在时间和大小上几乎相同,比如使用Xray代理浏览BiliBili,从BiliBiliVPS(Xray服务端)的流量,和从VPSXray客户端的流量在时间上和大小上是几乎相同的。出入相同性 是所有代理的通病,目前还没有太好的伪装方法,但是因为VPS不在大陆,如果不是被特别关注的对象,一般不会被审查。

既然使用Xray进行代理的全部流量都将伪装成访问这个网站的流量,那么我们选择伪装网站就是要尽量选择流量特征与Xray代理的流量特征相同的网站

  1. Cloudreve 和 Nextcloud

他们都是个人网盘,个人网盘可以理解为使用自己的VPS搭建起来的百度网盘,区别就是文件都存放在VPS中,并且自己是网盘的管理员。

个人网盘与上面所说特征的吻合数最多,包括 单点性大流量性GO-TLS指纹特性长时间性 等,建议选择。

关于GO-TLS指纹特性在不伪装浏览器指纹的前提下,将alpn设置为http/1.1,可以伪装成GO语言实现的WebDav客户端,详见此处

Cloudreve 与 Nextcloud 的区别如下:

优点 缺点
Nextcloud 功能更多更强大,用的人更多 需要安装php,安装php需要额外很多时间(见 安装时长参考),同时也比Cloudreve占用更多系统资源,因此不建议小机使用。
Cloudreve 轻量化、安装快(不需要php)、占用系统资源少 功能较少,使用的人较少
  1. 403页面

基本上所有大网站都有网站后台。比如哔哩哔哩的网址是www.bilibili.com。但是在播放视频时,提供视频文件的却是另外一个网址,在播放视频时右键点击视频统计信息,其中的Video Host就是。这类网址只有打开特定的url后缀才有内容,如果url不对,返回的就是一个错误页面。而403页面就是伪装成一个网站后台。

也就是说伪装成403页面,除了你自己,没人知道你的网站到底有没有东西。

  1. 自定义静态网站

可以放置自己的静态网站源代码,不建议小白选择。

  1. 自定义反向代理网站

不建议选择,因为反向代理往往只是反向代理几个html和js文件,网站里面的大部分内容依然是网站后台提供的。不符合大流量特点。

关于TLS握手、TLS指纹和ALPN

虽然TLS是一项加密技术,但在TLS握手的过程中会有一些明文的信息传输,其中包括SNI信息(由serverName参数指定)、ALPN、加密套件等。

目前TLS的标准中并没有对这些明文做严格的要求,所以在不同的TLS实现下这些明文信息的格式可谓五花八门,这些不同TLS实现所具有的不同的明文特征就是TLS指纹。

通过TLS指纹可以反推你所使用的TLS实现,比如Chrome的TLS,FireFox的TLS,GO语言官方库的TLS等。

Xray默认使用的是GO语言官方提供的TLS库,这也是几乎所有GO语言程序所使用的TLS库。Xray也可以模拟Chrome、FireFox、Safari的指纹,但目前只有TCP协议支持。

当使用TCP且不伪装浏览器指纹时,可以自由指定义ALPN。建议设置为http/1.1,这样可以将Xray客户端伪装成GO语言实现的WebDav客户端(如 gowebdav)。WebDav是网盘特有的协议,且该协议基于HTTP/1.1,详见: WebDav

若选择伪装浏览器指纹,客户端配置中的alpn参数失效,且ALPN将被固定为h2,http/1.1。同样,当使用WebSocket时,ALPN将被固定为http/1.1;当使用gRPC时,ALPN将被强制添加h2。因此,使用WebSocket还是可以伪装成GO语言WebDav客户端的,gRPC则不行。

关于gRPC与WebSocket

当正在使用的CDN同时支持gRPC与WebSocket时,两者之间改如何选择呢?他们的主要区别体现在以下三个方面:ALPN、延迟和性能。

关于ALPN,见此处

关于延迟,gRPC自带mux,因此延迟更低。注意这里指的是打开网站的延迟,mux并不能降低游戏延迟。

关于性能,WebSocket的性能更强,如果你的设备性能较弱的话,如家用普通路由器,用WebSocket速度会快一些。

安装位置

Nginx:/usr/local/nginx

php:/usr/local/php

Cloudreve:/usr/local/cloudreve

Xray:Xray-install

依赖列表

脚本可能自动安装以下依赖:

用途 Debian基系统 Red Hat基系统
yumdb set(标记包手动安装) yum-utils
dnf config-manager dnf-plugins-core
setenforce/getenforce(关闭SELinux) selinux-utils libselinux-utils
ss(检查端口占用) iproute2 iproute
wget wget wget
curl curl curl
wget/curl https ca-certificates ca-certificates
kill/pkill/ps/sysctl/free procps procps-ng
epel源 epel-release
epel源 epel-next-release
remi源 remi-release
do-release-upgrade(升级系统) ubuntu-release-upgrader-core
unzip unzip unzip
curl curl curl
安装bbr内核 linux-base
编译基础:
下载源码文件 wget wget
解压tar源码文件 tar tar
解压tar.gz源码文件 gzip gzip
解压tar.xz源码文件 xz-utils xz
gcc gcc gcc
g++ g++ gcc-c++
make make make
acme.sh依赖:
curl curl
openssl openssl
cron crontabs
编译openssl:
perl-base(包含于libperl-dev) perl-IPC-Cmd
perl-modules-5.32(包含于libperl-dev) perl-Getopt-Long
libperl5.32(包含于libperl-dev) perl-Data-Dumper
perl-FindBin
编译Nginx:
libpcre2-dev pcre2-devel
zlib1g-dev zlib-devel
--with-http_xslt_module libxml2-dev libxml2-devel
--with-http_xslt_module libxslt1-dev libxslt-devel
--with-http_image_filter_module libgd-dev gd-devel
--with-google_perftools_module libgoogle-perftools-dev gperftools-devel
--with-http_geoip_module libgeoip-dev geoip-devel
--with-http_perl_module perl-ExtUtils-Embed
libperl-dev perl-devel
编译php:
pkg-config pkgconf-pkg-config
libxml2-dev libxml2-devel
libsqlite3-dev sqlite-devel
--with-fpm-systemd libsystemd-dev systemd-devel
--with-fpm-acl libacl1-dev libacl-devel
--with-fpm-apparmor libapparmor-dev
--with-openssl libssl-dev openssl-devel
--with-kerberos libkrb5-dev krb5-devel
--with-external-pcre libpcre2-dev pcre2-devel
--with-zlib zlib1g-dev zlib-devel
--with-bz2 libbz2-dev bzip2-devel
--with-curl libcurl4-openssl-dev libcurl-devel
--with-qdbm libqdbm-dev
--with-gdbm gdbm-devel
--with-db4 libdb-dev libdb-devel
--with-tcadb libtokyocabinet-dev tokyocabinet-devel
--with-lmdb liblmdb-dev lmdb-devel
--with-enchant libenchant-2-dev/libenchant-dev enchant-devel
--with-ffi libffi-dev libffi-devel
--enable-gd libpng-dev libpng-devel
--with-external-gd libgd-dev gd-devel
--with-webp libwebp-dev libwebp-devel
--with-jpeg libjpeg-dev libjpeg-turbo-devel
--with-xpm libxpm-dev libXpm-devel
--with-freetype libfreetype6-dev freetype-devel
--with-gmp libgmp-dev gmp-devel
--with-imap libc-client2007e-dev uw-imap-devel
--enable-intl libicu-dev libicu-devel
--with-ldap libldap2-dev openldap-devel
--with-ldap-sasl libsasl2-dev openldap-devel
--enable-mbstring libonig-dev oniguruma-devel
--with-unixODBC,--with-pdo-odbc unixodbc-dev unixODBC-devel
--with-pdo-dblib freetds-dev freetds-devel
--with-pdo-pgsql,--with-pgsql libpq-dev libpq-devel
--with-pspell libpspell-dev aspell-devel
--with-libedit libedit-dev libedit-devel
--with-mm libmm-dev
--with-snmp libsnmp-dev net-snmp-devel
--with-sodium libsodium-dev libsodium-devel
--with-password-argon2 libargon2-dev libargon2-devel
--with-tidy libtidy-dev libtidy-devel
--with-xsl libxslt1-dev libxslt-devel
--with-zip libzip-dev libzip-devel
编译php-imagick:
autoconf autoconf
git git
libmagickwand-dev ImageMagick-devel

1.本文链接(官网):https://github.com/kirin10000/Xray-script

2.参考教程:https://www.v2fly.org/config/overview.html https://guide.v2fly.org/ https://docs.nextcloud.com/server/latest/admin_manual/installation/source_installation.html https://docs.cloudreve.org/

3.域名证书申请:https://github.com/acmesh-official/acme.sh

4.bbr脚本来自:https://github.com/teddysun/across/blob/master/bbr.sh

5.bbr2脚本来自:https://github.com/yeyingorg/bbr2.sh (Ubuntu Debian) https://github.com/jackjieYYY/bbr2 (CentOS)

6.bbrplus脚本来自:https://github.com/chiakge/Linux-NetSpeed

此脚本仅供交流学习使用,请勿使用此脚本行违法之事。网络非法外之地,行非法之事,必将接受法律制裁!!