购买 VPS 主机部署 V2Ray 并配置 CloudFlare 拯救被墙的 IP

您所在的位置:网站首页 vps梯子和网站放一起会怎么样 购买 VPS 主机部署 V2Ray 并配置 CloudFlare 拯救被墙的 IP

购买 VPS 主机部署 V2Ray 并配置 CloudFlare 拯救被墙的 IP

2023-11-29 09:53| 来源: 网络整理| 查看: 265

0 写在前面

在之前的《2021-09-06 随笔》中有讲到,在用了两年机场之后,考虑种种原因,现在还是打算自己买主机部署服务。

10 月份的时候,抽了几天时间,参考了一些网上的教程,先领了谷歌云(下文简称 GCP)的 300 刀赠金,买了一台便宜的主机,部署了 V2Ray 服务。

接着从 freenom 申请了一个免费域名,准备在 CloudFlare 配置一下 CDN 转发,不过那段时间 freenom 有问题,导致 CloudFlare 无法添加(现在已经恢复了)。网上看了一下确实有这个问题,而且短期内貌似无法解决,于是转向 GoDaddy,花了 15 块买一个先用着。

之后这两个月还算风平浪静,除了每天到晚上的时候确实网速略微堪忧,白天使用 Google 和 YouTube 还是很正常的。

直到。。。12 月月初继续看 GCP 的账单时,猛然发现 300 刀的赠金原来只有 3 个月有效期,而下个月就要到期了!衡量了一下 GCP 每个月 9 刀左右的消费(流量另算这点确实是个不小的问题),准备再看看其他更主流的“更适合梯子的” VPS 产品,降低点开销。

于是有了本文,一方面随手记录下整个过程,一方面把自己在用的 V2Ray 服务的配置也记录一下,省得以后再有重新部署的时候还要翻看别人的教程。

注:

本文不是严肃的教程,本人对这些技术没有深入的研究,纯粹是参考了别人的教程及一部分官方的文档来搭建了 V2Ray + Nginx + CloudFlare 这一套,不保证文中的操作/设置都是最佳的(因为我没刻意关注有哪些必须要做的优化),有需要改进的地方欢迎评论指出/讨论,谢谢。

1 挑一个 VPS

在简单的搜索之后,暂定了两款待选产品:DigitalOcean 和 Vultr,看中的都是最便宜的 VPS 一个月只要 5 刀,免费的流量也完全够我日常使用。

1.1 DigitalOcean 开幕暴击

打开首页,赫然发现有个活动,新注册的账号给一个有效期 60 天的 100 刀赠金,三下五除二注册了一个新号,注册时还顺便预充了 5 刀,然后,跳转到控制台,然后就傻眼了。

按提示,打开工单,想看看到底是什么原因,可实际是没有工单,也没有站内信、提醒之类的,去 Google 了一下才发现,DigitalOcean 为了防止薅羊毛,限制了只能使用真实 IP 注册,而我刚才是挂着代理操作的,输的信用账单地址也是生成的假地址。

还看到一些帖子在说要去跟客服扯皮,才能把账号解锁,一下子没了耐心,懒得费心去折腾,就开了一个工单,让他们退还刚才充的 5 刀,我也懒得用了(第二天收到回信,钱也退了)。

1.2 Vultr 不香嘛

打开首页,直接注册,注册完后,在控制台绑了一个付款的信用卡,先充 10 刀在账户里(这次账单地址也懒得生成一个假的了,直接用中文填了一个近似真实的)。

在选择云主机参数时,在网上先找了个测试 Vultr 各机房速度的 ping 脚本,看看我这里的网络连哪个机房会好一些,后面发现北美的机房甚至比东亚的机房还稳定,于是果断抛弃了东亚机房。主机的系统还是选了和之前 GCP 一样的 Ubuntu 18.04。

最后主机的规格选择最便宜的每个月 5 刀的配置,1 CPU + 1 G 内存 + 1 T 流量。后面其他的配置就添加了一个 SSH 密钥,其他默认都没选,直接下单部署。

部署成功后,打开 MobaXterm 准备登上去部署服务,想起来先测一下 IP,ping 了一下,呵呵,果然也是被屏蔽的。。刚才加密钥有点想当然了。没办法还是只能在网页上直接打开控制台操作了,Vultr 的 web 版控制台比 GCP 的延迟高很多,用起来很是不爽。

混入防转防爬防抄袭声明:本文《购买 VPS 主机部署 V2Ray 并配置 CloudFlare 拯救被墙的 IP》首发且仅发布于没有名字的博客 2 VPS 的一些额外设置 2.1 时间校准 # 启用 NTP 服务 sudo timedatectl set-ntp true # 将时区设为“亚洲/上海” sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 将硬件时钟调整到与当前系统时间一致 sudo hwclock --systohc 2.2 更新软件包 sudo apt update && sudo apt upgrade && sudo apt autoremove sudo apt install curl openssl 2.3 开启 BBR sudo bash -c "echo 'net.core.default_qdisc=fq' >> /etc/sysctl.conf" sudo bash -c "echo 'net.ipv4.tcp_congestion_control=bbr' >> /etc/sysctl.conf" # 重载生效 sudo sysctl --system # 检查 sudo sysctl net.core.default_qdisc # 结果是:net.core.default_qdisc = fq sudo sysctl net.ipv4.tcp_congestion_control # 结果是:net.ipv4.tcp_congestion_control = bbr lsmod | grep bbr # 可以看到 tcp_bbr 3 安装/部署 V2Ray 3.1 安装

参考 V2Fly 项目的文档:

bash 源服务器菜单中,打开“经过身份验证的源服务器拉取”

同时将 CF 的证书(证书见官方文档)扔到服务器上。

vi /etc/ssl/cloudflare.crt

回到 SSL/TLS -> 概述,将模式改为“完全”。

在 SSL/TLS -> 边缘证书,将最低 TLS 版本改为 1.2。

6 配置 Nginx

在上述 CF 一堆证书设置的基础上,配置 Nginx,vi /etc/nginx/conf.d/my.conf

server { listen 80 default_server; listen [::]:80 default_server; charset utf-8; server_name YOUR_HOST_NAME; return 301 https://$host$request_uri; } server { listen 443 ssl http2; listen [::]:443 ssl http2; charset utf-8; server_name YOUR_HOST_NAME; ssl_certificate /etc/ssl/cert.pem; ssl_certificate_key /etc/ssl/key.pem; ssl_client_certificate /etc/ssl/cloudflare.crt; ssl_verify_client on; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; # about 40000 sessions ssl_session_tickets off; # intermediate configuration ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; # HSTS (ngx_http_headers_module is required) (63072000 seconds) add_header Strict-Transport-Security "max-age=63072000" always; root /var/www/html; index index.html index.htm; location / { try_files $uri $uri/ =404; } location /ray { if ($http_upgrade != "websocket") { return 404; } proxy_redirect off; proxy_pass http://127.0.0.1:18964; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }

这里的配置要注意的有:

server_name:要匹配自己的域名

proxy_pass:指向前面 V2Ray 配置中的端口

ssl相关的配置:要和前面在服务器上保存的文件匹配

除此之外,为了让服务看起来像个正常的网站,/var/www/html/index.html 可以随便写入一些 HTML 修饰一下。

7 启动服务

设置自启,并启动服务:

sudo systemctl enable v2ray nginx --now 8 CloudFlare 配置反代(可以试试)

这个是在网上瞎逛的时候搜到的一个做法,这玩意儿到底能不能以及什么原理就没详细了解了,反正参考了一些教程配置试了一下。

在菜单 Workers 中使用免费的服务,点创建后,服务名称可以随意,反正是拿来配在 V2Ray 客户端里的,启动器也可以随意,点创建后可以再改代码。

addEventListener( "fetch", event => { let url = new URL(event.request.url); url.hostname = "YOUR_HOST_NAME"; url.protocol = "https"; let request = new Request(url, event.request); event.respondWith( fetch(request) ) } )

把 url.hostname 改成真实的域名地址就可以。

之后,在 V2Ray 客户端里,服务器地址和伪装域名都填这个新的地址就可以了。使用这个所谓的反代跟真实域名,在我自己日常的使用里暂时是没发现什么区别。

9 最后

部署的步骤整体参考了博文 V2Ray (WebSocket + TLS + Web + Cloudflare) 手动配置详细说明,正如开头所讲,这些东西理解的不多,照葫芦画瓢居多,有什么配置是不对的,或者可以优化的,欢迎评论讨论。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3