流量伪装需要用到Web+WebSocket+TLS和Apache/Nginx做反向代理,伪装成https流量的数据能够非常有效地进行翻墙/科学上网。当然,一个没有被标记为机场或者敏感节点的IP也是重点(被照顾到了就套一层CDN)
在这个实例中,博主用自己的服务器(Debian)和家庭网络(NBN,静态IP,端口全开)搭建v2ray服务端,使用Web+WebSocket+TLS+Apache+CDN
准备工作
Linux服务器(CentOS,Debian,Ubuntu)
官方安装脚本(非一键脚本)官方下载 OR 伸手就有🤣
能够正常解析到您的web服务器的域名(过不过CDN都行)
服务器 - v2ray
Hint:修改配置文件之后需要重启或者重载v2ray
将安装脚本上传到服务器,unzip
命令解压后会得到2个.sh
文件,执行sudo bash ./脚本名
进行安装v2ray服务端,如图:
启动/停止/重载/重启/开机自启 命令
sudo systemctl start/stop/reload/restart/enable v2ray
配置文件路径
/usr/local/etc/v2ray/config.json (其他版本的配置文件路径需自行分析安装输出信息)
服务器 - Apache
一般来说Linux发行版都自带Apache或者Nginx,基本不需要再去安装
安装命令
虽然没用但是还是写写吧🤣🤣
Debian:sudo apt-get install apache2
CentOS/Ubuntu:sudo yum install apache2
启动/停止/重载/重启/开机自启 命令
sudo systemctl start/stop/reload/restart/enable apache2
配置文件路径
(其他版本的配置文件路径需自行阅读说明文档)
apache总配置文件:/etc/apach2/apache2.conf
启用TLS站点配置文件:/etc/apache2/sites-available/default-ssl.conf
启动本次示例中所需的Apache模块
sudo a2enmod ssl
sudo a2enmod proxy
sudo a2enmod proxy_wstunnel
sudo a2enmod proxy_http
sudo a2enmod rewrite
sudo a2enmod headers
Hint:开启上述所有模块或者修改配置文件之后需要重启或者重载Apache
配置Apache反向代理和v2ray
Apache反向代理信息
<VirtualHost *:443>
ServerName 【您的域名】
SSLCertificateFile 【网站的TLS证书】
SSLCertificateKeyFile 【网站的TLS私钥】
SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2
SSLCipherSuite HIGH:!aNULL
<Location "/【v2ray的WebSocke路径】">
ProxyPass ws://127.0.0.1:10000/【v2ray的路径】 upgrade=WebSocket
ProxyAddHeaders Off
ProxyPreserveHost On
RequestHeader append X-Forwarded-For %{REMOTE_ADDR}s
</Location>
</VirtualHost>
v2ray配置信息
{
"inbounds": [
{
"port": 10000,
"listen":"127.0.0.1",
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "这里使用生成的ID",
"alterId": 64
}
]
},
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/【Apache中TLS网站配置的v2ray的路径】"
}
}
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
}
]
}
博主的配置的效果
这里需要注意的细节是,无论在服务端还是客户端,Apache和v2ray的WebSocket路径都要完全一样,斜杠既不能多也不能少;在博主的这个例子中,每一个路径都是/Uxxxf
服务端
Widnows客户端
OpenWrt软路由