websocket+tls+caddy 伪装抗干扰强,被GFW墙的几率大大减少。 Caddy Web服务反向代理手把手搭建,比Nginx简单好用。
一、本视频用到的 V2Ray 服务器端配置文件 config.json:
{
“inbounds”: [{
“port”: 24400,
“protocol”: “vmess”,
“settings”: {
“clients”: [
{
“id”: “ad8f4190-1c15-472e-a177-88d5d6df2076”,
“level”: 1,
“alterId”: 64
}
]
}
}, {
“port”: 24500,
“protocol”: “shadowsocks”,
“settings”: {
“method”: “aes-128-gcm”,
“ota”: true,
“password”: “sspasswd”
}
},{
“port”: 24600,
“listen”:”127.0.0.1″,
“protocol”: “vmess”,
“settings”: {
“clients”: [
{
“id”: “ad8f4190-1c15-472e-a177-88d5d6df2076”,
“alterId”: 64
}
]
},
“streamSettings”: {
“network”: “ws”,
“wsSettings”: {
“path”: “/ray”
}
}
}],
“outbounds”: [{
“protocol”: “freedom”,
“settings”: {}
},{
“protocol”: “blackhole”,
“settings”: {},
“tag”: “blocked”
}],
“routing”: {
“rules”: [
{
“type”: “field”,
“ip”: [“geoip:private”],
“outboundTag”: “blocked”
}
]}
}
二、本视频搭建 Caddy 服务用到命令及详解:
$ sudo chown -R root:www-data /etc/caddy
==== 除了配置文件,caddy 会自动生成 ssl 证书,需要一个文件夹放置 ssl 证书。因为 ssl 文件夹里会放置私钥,所以权限设置成 770 禁止其他用户访问。 ====
$ sudo mkdir /etc/ssl/caddy
$ sudo chown -R www-data:root /etc/ssl/caddy
$ sudo chmod 0770 /etc/ssl/caddy
==== 再创建一个存储日志的路径 ====
$ sudo mkdir -p /var/log/caddy/
$ sudo chmod 777 /var/log/caddy/
==== Caddyfile 是 Caddy 的配置文件,下面执行 import ./conf/* 命令,表示将 /etc/caddy/conf/ 下的所有文件都导入到配置文件中。 ====
$ sudo su
# cd /etc/caddy
# echo ‘import ./conf/*’ 》》 /etc/caddy/Caddyfile
4. 从官方仓库中下载 caddy 的 systemctl 守护脚本并对其挂载启动。
$ sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service
$ sudo systemctl daemon-reload
$ sudo systemctl enable caddy
==== 如果你是自动从 “Let’s Encrypt” 自动获取证书,那么先确认下域名是否已绑定到VPS IP地址了,然后再确认下是否已经按下面的 “5” 小节配置了,
接着确定VPS 443、80端口是否放通了。
因为 “Let’s Encrypt” 有速率限制。每个账户每小时每域名有最多验证失败 5 次的限制。连续5次申请证书失败的话,1小时内你无法再申请了。 ====
$ sudo systemctl start caddy
$ sudo systemctl stop caddy
$ sudo systemctl restart caddy
$ sudo systemctl status caddy
注:Caddy启动后,默认端口是 2015。
5. 使用 systemctl 服务启动 caddy,需要注意访问小于1000端口,会报错:Could not start HTTP server for challenge -》 listen tcp :80: bind: permission denied。
必须设置 cap_net_bind_service,否则没权限。解决方法:
$ sudo apt-get install libcap2-bin
$ setcap cap_net_bind_service=+eip /usr/local/bin/caddy
备注:
(1)如果不适用 systemctl,你也可以使用 “caddy -conf /usr/local/caddy/Caddyfile” 这个命令启动 Caddy。
(2)配置文件默认加载路径:/etc/caddy/Caddyfile,最好也放在这里,因为如果使用服务启动,就不会指定 -conf 了。所以会报错:
loading Caddyfile via flag: open /etc/caddy/Caddyfile: no such file
三、本视频用到的 Caddy 配置文件 Caddyfile:
ec2.appletrees.cn
{
gzip
tls [email protected]
log /var/log/caddy/caddy.log
proxy /ray localhost:24600 {
websocket
header_upstream -Origin
}
}
▬ ▬ ▬ ▬ ▬ ▬ ▬ ▬ ▬ ▬ ▬ ▬ ▬
欢迎订阅频道
https://www.youtube.com/channel/UCgo7XWK6MQBgKt0gBI6x3CA?sub_confirmation=1
技术交流互动电报群
t.me/shinianlaocheng .
VPS的系统有要求吗?centOS7可以吗
你这普通话是闽江牌的吧?
你的caddy配置是不是少了个伪站的路由啊, root /var/www ?
如何设置强制tls1.3?
谢谢老板,最终搞成功了,视频教程没问题,文字代码有点遗漏 比如$ sudo curl -s https://raw.githubusercontent.com/mho... -o /etc/systemd/system/caddy.service这段代码不完整,还是要看视频补漏掉的地址