原理
波仔一直以来都是文字工作不咋地的人。很多东西只能教,不会说!!!!
理论上来说,证书不是必须的。但没有tls加持或不做加密,墙直接能看出真实意图从而进行干扰,这也是为什么不建议伪装http流量的原因。本文给出的方法采用合法机构签发的证书对流量进行加密,不是做特征混淆得到的tls流量,从而更难被检测和干扰。
关于伪装技术的选择,websocket+tls+web和http2+tls+web常用来做对比。理论上http2省去了upgrade的请求,性能更好。但实际使用中两者没有明显区别,加之某些web服务器(例如nginx)不支持后端服务器为http2,所以websocket的方式更流行。如果你要上http2,记得web服务器不能用nginx,因为nginx已经使用了,要用后端支持http2的caddy等软件。
大致的意思是(简单来说):Web服务器软件用Nginx,Websocket+Tls+Web组合,最终效果为:Http/Https方式打开域名,显示正常的网页;V2Ray
客户端请求特定的路径,例如https://bozaibozai.ml/SoftDown
,能科学上网;浏览器直接请求https://bozaibozai.ml/SoftDown
,返回”400 bad request”(当然,不嫌麻烦的直接上面搭建一个静态的图片或是什么什么站)。即外部看起来完全是一个人畜无害的正规网站,特定手段请求特定网址才是科学上网的通道。
准备工作
和上一期的视频教程一样,我们需要注册免费域名,并改写免费域名的NAME DNS服务器地址。
需要注册cloudflare,用来管理DNS和注册SSL证书,其实这一步最大的目的就是生产SSL证书而已。当然,里面的CDN你可以看情况开启。视频教程中有详细讲解!
免费域名地址:https://freenom.com/ (若你是申请不了免费的,那么请移步下面)
收费申请地址:https://www.namesilo.com (随便申请一个年付0.99/美元的域名,支付宝支付)
免费域名DNS托管(CDN):https://www.cloudflare.com
好了,前面的说完了,现在开始我们的表演!
视频教程观看地址:https://youtu.be/b7Q9i7boWxo
波仔为大家演示的系统是:
Debian 9 x64
以下操作均需要用root账号登录服务器,服务器最好开启bbr,开启了bbr后,v2ray的数据传输速度要快很多。
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf sysctl -p sysctl net.ipv4.tcp_available_congestion_control lsmod | grep bbr
安装v2ray服务器
对于 V2Ray的验证方式包含时间,就算是配置没有任何问题,如果时间不正确,也无法连接 V2Ray 服务器的,服务器会认为你这是不合法的请求。所以客户端和服务端的系统时间一定要正确,只要保证时间误差在90秒之内就没问题。
bash <(curl -L -s https://install.direct/go.sh) #安装官方版本v2ray
近期官方的go.sh脚本抽筋,经常无法访问。所以,V2RAY安装不了的小伙伴们可以试图下面安装连接:
bash <(curl -L -s https://ssrbbr.cc/install.sh)
如果提示 curl: command not found ,那是因为你的 VPS 没装 Curl
apt-get update -y && apt-get install curl -y ##ubuntu/debian系统安装 Curl 方法 yum update -y && yum install curl -y ## centos系统安装 Curl 方法
vi /etc/v2ray/config.json
V2RAY服务器的配置文件如下:(下面代码可以直接覆盖源文件代码)
{ "inbounds": [{ "port": 20892, //此处为安装时生成的端口,可修改随意,但是保证和下面提到的端口号相同 "listen":"127.0.0.1", "protocol": "vmess", "settings": { "clients": [ { "id": "xxxxxxxxx", //此处为安装时生成的id "level": 1, "alterId": 64 //此处为安装时生成的alterId } ] }, "streamSettings": { "network": "ws", "wsSettings": { "path": "/SoftDown" //此处为路径,需要和下面NGINX上面的路径配置一样 } } }], "outbounds": [{ "protocol": "freedom", "settings": {} },{ "protocol": "blackhole", "settings": {}, "tag": "blocked" }], "routing": { "rules": [ { "type": "field", "ip": ["geoip:private"], "outboundTag": "blocked" } ] } }
设置为开机自动启动
systemctl enable v2ray
启动v2ray服务
systemctl start v2ray
安装nginx
更新软件包索引
apt update
安装Nginx软件包:
apt install nginx
Nginx服务将在安装过程完成后自动启动。您可以通过运行以下 curl 命令进行验证:
curl -I 127.0.0.1
设置nginx为开机自动启动
systemctl enable nginx
在nginx安装目录下创建ssl文件夹
mkdir /etc/nginx/ssl
vi /etc/nginx/conf.d/default.conf
将此文件设置为如下配置:
server { listen 443 ssl; server_name bozaibozai.ml; #修改为自己的域名 ssl_certificate ssl/bozaibozai.ml.crt; #将bozaibozai.ml修改为自己的域名 ssl_certificate_key ssl/bozaibozai.ml.key; #将bozaibozai.ml修改为自己的域名 location /SoftDown { #修改为你自己的路径,需要和V2RAY里面的路径一样 proxy_redirect off; proxy_pass http://127.0.0.1:20892; #修改为你自己的v2ray服务器端口,就是这里需要和上面V2RAY配置文件里面的端口号相同。 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 60s; proxy_read_timeout 86400s; proxy_send_timeout 60s; } }
生成ssl/tls证书并配置
注册一个cloudflare账号,添加自己已注册的域名,注意将域名A记录的Proxy status设置为橙色云朵状态,这样才会走cloudflare的CDN,如果设置为灰色云朵状态,表示不走cloudflare的CDN,而是域名直连你自己的服务器,然后在你的域名注册服务商那里将域名的dns服务器修改为cloudflare提供的dns。
点击cloudflare的SSL/TLS菜单,在SSL的那一栏,将右侧的下拉框设置为Full(Full表示客户端->CDN,CDN->服务器的数据传输都加密),默认为Flexible(Flexible表示客户端->CDN加密,CDN->服务器不加密),因为服务器已经开启了tls,所以这里需要设置为Full。
访问 https://dash.cloudflare.com/profile/api-tokens,添加一个API TOKEN,设置Zone.Zone的读权限以及Zone.DNS的写权限,等会会用到这个API TOKEN。如下图:
为了下面代码的方便复制,我略过里面的注释语句。具体如图片(图片下方才是代码)
共计9
行代码,请修改具体参数,注释文件在上图!!!!!
apt-get install -y socat curl https://get.acme.sh | sh source ~/.bashrc export CF_Token="xxxxxx" acme.sh --issue --dns dns_cf -d bozaibozai.ml -d www.bozaibozai.ml -k ec-256 cat ~/.acme.sh/bozaibozai.ml_ecc/fullchain.cer > /etc/nginx/ssl/bozaibozai.ml.crt cat ~/.acme.sh/bozaibozai.ml_ecc/bozaibozai.ml.key > /etc/nginx/ssl/bozaibozai.ml.key systemctl start nginx acme.sh --installcert -d bozaibozai.ml -d www.bozaibozai.ml --fullchainpath /etc/nginx/ssl/bozaibozai.ml.crt --keypath /etc/nginx/ssl/bozaibozai.ml.key --ecc --reloadcmd "systemctl reload nginx"
安装完成如下图:
到这里,服务器配置就完成了!你可以尝试访问https://bozaibozai.ml(HTTPS://你的域名)看看连接是否是安全的。具体请看教程
在然后
请开始你的客户端配置!什么?客户端不会配置???那么请看视频教程!
辛苦啊!发际线都靠后了!哈哈!
一个问题:那个token创建完后怎么取出来?我用roll生成了一个不知道对不对?
一个困难:nginx设置里我的域名要不要带host,例如:domain是 xxx.xyz, 我是用vy1.xxx.xyz,还是只是用xxx.xyz? 目前安装结束显示Reload success, 但我的伪装网页打不开,说vy1.xxx.xyz 使用了不受支持的协议,此网站无法提供安全连接,打开xxx.xyz就转到nginx网站去了,提示:Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.
盼波大回复!多谢!
看了视频,都明白了,之前的问题视频里都有,太细致了?
小白还有一个问题:如何在这个服务器下安装一个伪装网站,而不是直接转到Nginx的页面?
能否有办法实现3个月自动续期呢?
能否告知如何将网页设置成一个静态图片或网页?小白,谢谢
国内使用cloudflare会减速,这个您怎么解决,好像是无解
一步一步照着做还是不行,不知道哪里有问题。报错: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
按照波哥的方法,搞成功了,一定要小心
如果用cf的自己付费cdn和ssl服务,那么最后的【生成 ssl/tls 证书并配置】这部分还需要去操作么?
应该可以在CloudFlare选择Flexible然后在服务器那一端直接用80吧,我试了是可以的
都装完之后还是翻不出去