纯手动安装nginx部署ws+tls并设置伪装网站

实用教程 admin 7个月前 (03-10) 846次浏览 1个评论

image.png

介绍

之前部署ws+tls都是借助宝塔的,为啥用宝塔呢?因为小白,因为简单……但是小白手上有内存只有两三兆的小鸡,装宝塔有点难为他了,况且杀鸡焉用牛刀,我的需求就是ws+tls并部署个伪装站点而已,一个nginx就够了,那我们今天就来看看手动安装并配置nginx。

为什么要纯手动安装呢?一是知道每一步的操作是代表啥,二是学习,记录下学习的过程。

实操

安装v2ray/xray

小白这里采用docker版,具体可参考本教程docker安装v2ray/xray部分:docker配合宝塔部署ws+tls并搭建伪装网站,这里就不再赘述。不愿意用docker版的,请自行安装其他版本,反正配置文件都是一样的。

安装nginx

我这里采用的Debian系统,安装命令如下:

apt-get update
apt-get install nginx

修改nginx配置文件

备份原来的配置文件:

mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bk

新建配置文件:

vi /etc/nginx/nginx.conf

模板如下:

user  root;
worker_processes  1;
#error_log  /etc/nginx/error.log warn;
#pid    /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    #access_log  /etc/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  120;
    client_max_body_size 20m;
    #gzip  on;
server {
    # 服务器端口使用443,开启ssl, 这里ssl就是上面安装的ssl模块
    listen 80;
    listen [::]:80 ipv6only=on;
    listen 443 ssl http2;
    listen [::]:443 ssl ipv6only=on http2;
    # 域名,多个以空格分开
    server_name  example.example.com; //请改成自己的域名
    index index.php index.html index.htm default.php default.htm default.html;
    root /usr/share/nginx/html; //站点目录,可自行设置
    
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #HTTP_TO_HTTPS_START
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END
    ssl_certificate        /etc/nginx/cert/example.com.crt; //改成自己的证书目录
    ssl_certificate_key    /etc/nginx/cert/example.com.key; //改成自己密钥目录
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;

    #SSL-END
    
    #ws反代部分,location路径和proxy_pass端口请与v2ray配置文件保持一致
    location /bueEnIYC/ { 
    if ($http_upgrade != "websocket") { 
        return 404;
    }
    proxy_redirect off;
    proxy_pass http://127.0.0.1:29569; 
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    # Show real IP in v2ray access.log
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}
}

重启nginx

systemctl restart nginx

部署伪装站点

我们直接采用/usr/share/nginx/html/为站点目录,首先删除目录中的index.html文件:

rm /usr/share/nginx/html/index.html -rf

随便找个网页文件扔进去,可以去mack-a大佬的仓库里随便拖一个站点文件下来。

wget -O web.zip https://github.com/mack-a/v2ray-agent/raw/master/fodder/blog/unable/html8.zip
unzip web.zip

好了大功告成。

备注

1.nginx配置文件已经监听了ipv4和ipv6,本地支持ipv6的可以尝试直连通过ipv6连接

2.其实使用nginx还是有点大材小用了,如果没有其他需求也可以采用更为轻量的caddy,具体配置请自行研究

3.这里是简单的采用了静态网页作为伪装站点,有能力的小伙伴也可自行反代其他网站。其实最好的伪装网站应该是个人网盘,具体的大佬已经解释过,原因如下:伪装网站说明

伪装网站的选择

使用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客户端,详见此处

 


VPS小白 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽