HTTP2代理技术原理分享
本方法非商用-仅供学习参考-切勿用于违法行为-后果自负
本方法尽量选择服务器来运行
QA
问题1: 什么是Caddy配置Naive代理,以及为什么要使用它?
答案1: Caddy配置Naive代理是一种用于代理服务器的配置方法,它有助于实现网络流量的代理和加密。它通常用于绕过网络限制或提供更安全的网络连接。
问题2: 什么是BBR网络优化,它如何改善网络性能?
答案2: BBR网络优化是一种拥塞控制算法,用于改善TCP连接的性能。它能够更有效地管理网络拥塞,提高数据传输速度和稳定性。
问题3: 如何在VPS上解锁流量可以访问特定的网站?
答案3: 在VPS上解锁流量通常需要使用特定工具,如CFwarp.sh,并选择相应的配置选项来实现流量解锁。这有助于提高VPS的网络性能和稳定性。
一、Caddy配置Naive代理
升级系统
- apt update -y && apt install vim sudo -y
安装go
我的服务器是AMD芯片—根据自身选择
- wget https://go.dev/dl/go1.20.7.linux-amd64.tar.gz
- tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz
- echo “export PATH=$PATH:/usr/local/go/bin” >> ~/.bashrc
- source ~/.bashrc
- go version
- go clean -modcache 清除缓存
安装xcaddy
- go clean -modcache 清除缓存
- go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
- echo “export PATH=$PATH:/root/go/bin” >> ~/.bashrc
- source ~/.bashrc
- apt install git -y
- xcaddy build --with github.com/caddyserver/forwardproxy@caddy2=github.com/klzgrad/forwardproxy@naive --with github.com/caddy-dns/cloudflare(安装两个模块 如果失败 可以下载到本地 下载地址为:https://github.com/klzgrad/forwardproxy)
- cp caddy /usr/bin/
- caddy version
- caddy list-modules (查看模块)
两个非标准模块
本地安装
- 克隆存储库:git clone https://github.com/klzgrad/forwardproxy.git
- 切换到目录:cd forwardproxy
- 安装球童服务器 xcaddy:go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
- 使用转发代理构建球童:xcaddy build --with github.com/caddyserver/forwardproxy@caddy2=$PWD
- 结果是一个可执行文件,您可以直接启动(在同一目录中创建您的)caddy sudo ./caddy runCaddyfile
- 参考命令 xcaddy build --with github.com/caddyserver/forwardproxy@caddy2=$PWD–withgithub.com/caddy-dns/cloudflare
配置 Caddyfile 文件
- mkdir /etc/caddy/
- vim /etc/caddy/Caddyfile #文件 语法解释,官方地址 https://caddyserver.com/docs/json/
- 格式如下:一下内容中:acme_dns cloudflare 和 dns cloudflare 后面跟着的是 cloudflare API Token
{
acme_dns cloudflare xxxxxxxxx【xxxxx是TOKEN值 cloudflare API Token】
}
:80 {
route {
file_server {
root /var/www/html
}
}
}
:443, 网址 {
tls {
dns cloudflare xxxxxxxxx【xxxxx是TOKEN值 cloudflare API Token】
}
route {
forward_proxy {
basic_auth 账号 密码
hide_ip
hide_via
# probe_resistance
# upstream socks5://127.0.0.1:40000 #可不加
}
file_server {
root /var/www/html
}
}
}
账号、密码 自己设置
token 需要获取cloudflare的token
cloudflare API Token的获取方式
- dash.cloudflare.com个人资料 -> api令牌 -> 创建令牌 -> 自定义令牌
- 权限选择两个 如下:
DNS 防火墙:这个权限让Caddy可以查看和修改DNS记录,这是进行DNS验证所必需的。
帐户:SSL 和证书:这个权限让Caddy可以管理SSL/TLS证书,这也是Caddy需要的。 - 选择继续 保存好自己的 API Token 这个不能再次查看
- 贴上去即可 ixXPE0FdgCV6kSgawkfJnVMLVzYGCRYd1OFGT-ZA
- new
- create Custom Token
- zone,zone,read
- zone,dns,edit
- 以上即可
这个token只能出现一次,千万不要忘记备份了
两种启动方式
- (第一种 前台运行)caddy run --config “/etc/caddy/Caddyfile”
这个启动方式用来让caddy自动配置证书检查是否出现问题。确认没有问题后选择第二种方式来运行 - (第二种 可以后台运行)vim /etc/systemd/system/caddy.service
第二种格式如下:
[Unit]
Description=Caddy
Documentation=https://caddyserver.com/docs/
After=network.target network-online.target
Requires=network-online.target
[Service]
Type=notify
User=root
Group=root
ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/Caddyfile #(注意Caddyfile这个文件要和你上面创建的文件名字一致)
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile #(记得把中文和括号全部删除)
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE
Environment=CLOUDFLARE_EMAIL=自己的邮箱
Environment=CLOUDFLARE_API_KEY=刚刚的token
[Install]
WantedBy=multi-user.target
加载服务 systemctl daemon-reload
开机运行 systemctl enable caddy
启动方式 systemctl start caddy
查看状态 systemctl status caddy
重新启动 systemctl restart caddy
停止运行 systemctl stop caddy
添加HTML网页—这里可以选择添加,非必要
可以自己编写html
- mkdir -p /var/www/html
- apt install wget zip unzip -y
- git clone https://github.com/smaranjitghose/awesome-portfolio-websites.git
- cp -rf awesome-portfolio-websites/* /var/www/html/ (这里的路径和Caddyfile配置的file_server一致)
以上服务端配置完毕
BBR网络优化
- Use BBR congestion control 使用 BBR 拥塞控制
sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
- 关闭tcp_slow_start_after_idle
sudo sysctl -w net.ipv4.tcp_slow_start_after_idle=0
- (仅限服务器)考虑设置tcp_notsent_lowat-谨慎使用
sudo sysctl -w net.ipv4.tcp_notsent_lowat=16384
VPS解锁流量
- 下载CFwarp.sh
wget -N https://gitlab.com/rwkgyg/CFwarp/raw/main/CFwarp.sh
- 运行
bash CFwarp.sh
- 选择
1. warp-go 安装
2. 双栈ipv4+6
测试
- 可以打开网址 ip 来测试是否成功
表明成功