由于GFW的原因,IP被封,所以只能另辟蹊径:
- v2ray是一个集成了各种科学上网协议的软件,包括socks(目前接触到的是本机到本机)、http、SS(目前接触到的是本机到远程)、vmess等,传输载体可以是tcp、mkcp、websocket等
- 使用websocket:因为cdn可以转发ws流量
- 使用https(tls)伪装网站,请求流量数据
- 使用cdn转发流量,同时作为连接vps的跳板,使vps复活和隐藏
- 使用nginx代理v2ray
准备工作
- 一台vps (IP被墙,IP假设为:99.99.99.99)
- 域名:www.xyz.com
- 免费cdn:cloudfare
- 相关知识:nginx配置,ssl配置,域名配置等
安装nginx
添加yum源:
1 | rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm |
安装:
1 | yum install nginx |
相关服务命令:
1 | 设置开机启动 |
编辑配置文件:
相关配置文件位置/etc/nginx/
下,替换server_name为
1 | xyz.com www.xyz.com; |
然后启动nginx服务。
申请证书
申请免费https证书(Let’s Encrypt),先在域名注册商那里(GoDaddy)修改dns,添加两个a记录,解析到vps的ip 99.99.99.99,修改的原因是要向let‘s encrypt要发起挑战,证明你拥有这个域名。
下载certbot:
1 | git clone https://github.com/certbot/certbot |
生成免费证书:
1 | ./certbot-auto certonly --webroot --agree-tos -v -t --email 邮箱地址 -w 网站根目录 -d 网站域名 |
注:生成过程中会自动生成
/网站根目录/.well0known/acme-challenge
,然后脚本会挑战这个路径,所以需要保证这个地址能被访问,才能正常生成免费的证书。
为了保证能访问,需要开启nginx,同时,需要关闭dns(箭头不穿过小云朵)。
生成的证书地址:
1 | /etc/letsencrypt/live/www.xyz.com/fullchain.pem |
配置nginx证书:
1 | listen 443 |
cdn设置
设置完证书后,就可以设置cdn
注册cloudfare账号,选择一个免费站点
更换godaddy处的nameserver为cloudfare的nameserver,把解析工作转移给cloudfare
等待cloudfare网站变为active状态
安装v2ray
vps安装配置v2ray
安装v2ray:
1 | # 官方一键安装脚本 |
编辑配置文件:
1 | vi /etc/v2ray/config.json |
在inbound的最后(settings之后)追加如下配置,记住path路径:
1 | "listen": "0.0.0.0", |
重启v2ray:
1 | systemctl restart v2ray |
继续设置nginx:
继续设置nginx,反向代理到v2ray
编辑nginx配置文件
1 | # 添加类似如下设置 |
重启nginx:
1 | systemctl restart nginx |
客户端配置
macos客户端选择v2rayx:
https://github.com/cenmrev/v2rayx
最终配置如下:
1 | { |
相关链接
https://blog.sprov.xyz/2019/03/11/cdn-v2ray-safe-proxy/#i-9
https://www.dazhuanlan.com/2019/10/04/5d962810eb6c8/