【更新服务器部署脚本】由近期GFW疯狂禁IP而催生的CDN翻墙方法

由于近期GFW的大肆封锁IP,想必不少人想开始寻找下一代翻墙方法了吧。







以我个人经历来说,6.1 使用shadowsocks的搬瓦工ip被墙,6.2更换新的ip,开始使用无防护版v2ray。结果没一天,新的ip又被墙。 无奈之下本人开始寻求下一代翻墙方法。



6.4成功利用cloudflare的免费cdn服务,完成了翻墙升级,现把简略步骤发于品葱,自由必胜。







前提条件:



1.拥有境外vps



2.拥有个人域名(免费或付费均可)



3.注册cloudflare免费账号(当然,如果有不差钱的小伙伴,可以考虑cloudflare的付费服务)







域名操作方面:



1.把个人域名的dns解析更改为 你注册cloudflare的dns服务器。



2.在cloudflare上面添加自己vps的ip地址记录



3.开启cloudflare的dns解析和http解析,并在crypto里面把加密方式设置为full(strict)







vps操作方面:



1.开放防火墙https 443端口



2.配置https守护进程服务(Apache  nginx  caddy均可)



3.将cloudflare生成的免费https证书配置到vps



可参考 https://devanswers.co/configure-cloudflare-origin-ca-apache/



4.配置https守护进程的proxy web socket代理







v2ray方面:



1.在vps上面安装v2ray



2.设置web socket代理转发



可参考



https://ferrummagnus.com/2017/12/22/v2ray-websocket-tls-apache/







自由万岁







########################################



6.5更新







域名管理



1.注册免费域名



https://www.vpscn.net/197.html







2.注册cloudflare账号并修改域名解析



cloudflare入门三部曲



https://support.cloudflare.com/hc/zh-cn/categories/200275218-%E5%85%A5%E9%97%A8







3.开启cloudflare dns和http解析代理



在DNS选项里面填写自己域名对应的VPS地址



https://ibb.co/qMsZnkv







在Crypto选项里选择full(strict)



https://ibb.co/fGQ0qgL







4.将cloudflare生成的CA证书保存至VPS服务器



https://ibb.co/dpTtt2c



Create Certificate







Next







https://ibb.co/ws5nmPK



将Origin Certificate里面的内容复制 保存到VPS的/etc/cloudflare/example.com.pem文件(example.com为你自己的域名)







将Private Key里面的内容复制 保存到VPS的/etc/cloudflare/example.com.key文件(example.com为你自己的域名)







使用VPS apache服务器
登录到自己的VPS服务器(以CentOS 7为例)



1.



安装apache服务器



yum install httpd -y





设置开机启动apache



systemctl enable httpd 





安装Apache ssl模块



yum install mod_ssl -y





将以下配置信息复制到VPS的/etc/httpd/conf.d/example.com(你的域名).conf文件



<VirtualHost *:80>

        Servername example.com(你自己的域名)

        RewriteEngine on

        RewriteCond %{SERVER_NAME} =example.com(你自己的域名)

        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URL} [END,NE,R=permanent]

</VirtualHost>

<VirtualHost *:443>

        Servername example.com(你自己的域名)

        SSLEngine on

        SSLCertificateFile /etc/cloudflare/example.com(你自己的域名).pem

        SSLCertificateKeyFile /etc/cloudflare/example.com(你自己的域名).key

        RewriteEngine On

        RewriteCond %{HTTP:Upgrade} =websocket [NC]

        RewriteRule /(.*)      ws://localhost:12345/$1 [P,L]

        RewriteCond %{HTTP:Upgrade} !=websocket [NC]

        RewriteRule /(.*)      http://localhost:12345/$1 [P,L]

        SSLProxyEngine On

        ProxyPass /ws http://localhost:12345

        ProxyPassReverse /ws http://127.0.0.1:12345

</VirtualHost>









重启apache daemon



systemctl restart httpd









2.



配置防火墙规则



firewall-cmd --permanent --add-service=https
firewall-cmd --reload





3.



安装curl工具



yum install curl -y





安装v2ray



bash <(curl -L -s https://install.direct/go.sh)





设置开机启动v2ray daemon



systemctl enable v2ray





将/etc/v2ray/config.json文件修改为以下内容(注:ID部分不要修改)



{
  "inbounds": [{
    "port": 12345,
    "listen": "127.0.0.1",
    "protocol": "vmess",
    "settings": {
      "clients": [
        {
          "id": "你自己的ID", //此处不要修改
          "level": 1,
          "alterId": 64
        }
      ]
    },
    "streamSettings": {
        "network": "ws",
        "wsSettings": {
            "path": "/ws"
        }
    }
  }],
  "outbounds": [{
    "protocol": "freedom",
    "settings": {}
  },{
    "protocol": "blackhole",
    "settings": {},
    "tag": "blocked"
  }],
  "routing": {
    "rules": [
      {
        "type": "field",
        "ip": ["geoip:private"],
        "outboundTag": "blocked"
      }
    ]
  }
}





重启v2ray daemon



systemctl restart v2ray





恭喜!到现在我们已经完成了v2ray在服务器端的配置











-----------------客户端配置-------------------



Linux



1.安装v2ray



bash <(curl -L -s https://install.direct/go.sh)









2.修改/etc/v2ray/config.json文件为以下内容



{
  "inbounds": [{
    "port": 1080,
    "listen": "127.0.0.1",
    "protocol": "socks",
    "settings": {
      "udp": true
    }
  }],
  "outbounds": [{
    "protocol": "vmess",
    "settings": {
      "vnext": [{
        "address": "example.com(填写你自己的域名)",
        "port": 443,
        "users": [{ "id": "你自己在VPS服务端的ID",
                        "level": 1, "alterId": 64, "security": "auto"  }]
      }]
    },
    "streamSettings": {
        "network": "ws",
        "security": "tls",
        "tlsSettings": {
            "serverName": "example.com(你自己的域名)",
            "allowInsecure": true
        },
        "wsSettings": {
            "path": "/ws"
        }
    },
    "mux": { "enabled": true }
  }, {
    "protocol": "freedom",
    "tag": "direct",
    "settings": {}
  }],
  "routing": {
    "domainStrategy": "IPOnDemand",
    "rules": [{
      "type": "field",
      "ip": ["geoip:private"],
      "outboundTag": "direct"
    }]
  }
}









3.配置v2ray daemon



systemctl enable v2ray

systemctl start v2ray





4.设置proxy socks 5代理



https://ibb.co/vzXdQ0w











---------------------------------------------------------------------



######################################

6.11更新

感谢各位葱友对我的支持,谢谢大家!

脚本已经上传到GitHub  https://github.com/KonaisPC/v2ray-apache-ws



使用之前

1.依据前文在cloudflare上配置好域名

2.已经保存好SSL .key 和 .pem文件到VPS服务器(需指定.key和.pem文件的绝对路径)



欢迎大家一起帮助改进脚本

All men are created equal



自由希望不可磨灭





#####################################

6.12更新

脚本现已支持Ubuntu和CentOS,并自动输出对应的客户端配置文件到./client.json

谢谢!
57
分享 2019-06-06

54 个评论

作为小白,我觉得太难了。实在没办法,我会选择Tor浏览器看看新闻就算了。

要发言请先登录注册

要发言请先登录注册