原理
一直以来都是文字工作不咋地的人。很多东西只能教,不会说!!!!
理论上来说,证书不是必须的。但没有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://你的域名)看看连接是否是安全的。具体请看教程
在然后
请开始你的客户端配置!什么?客户端不会配置???那么请看视频教程!