


系统:debian10.3+bbr2
面板:s-ui
协议1:hysteria 2(高速)
协议2:vless+reality(防封)

1.系统为debian10.3 自带bbr2
2.查看系统正在使用的算法
sysctl net.ipv4.tcp_congestion_control
3.debian系统版本低,官方源无法升级
# 1️⃣ 备份旧的软件源配置
mv /etc/apt/sources.list /etc/apt/sources.list.bak
# 2️⃣ 写入 Debian 10 的归档源
cat <<EOF > /etc/apt/sources.list
deb http://archive.debian.org/debian buster main contrib non-free
deb-src http://archive.debian.org/debian buster main contrib non-free
deb http://archive.debian.org/debian-security buster/updates main contrib non-free
deb-src http://archive.debian.org/debian-security buster/updates main contrib non-free
EOF
# 3️⃣ 禁用过期校验
echo 'Acquire::Check-Valid-Until "false";' > /etc/apt/apt.conf.d/99disable-check-valid-until
# 4️⃣ 更新并安装 curl
apt update -y
apt install -y curl
4.一键安装s-ui
bash <(curl -Ls https://raw.githubusercontent.com/alireza0/s-ui/master/install.sh)
5.设置面板端口、面板路径、账号密码
6.打开sui的web面板中需要设置3个内容,用户管理+入站管理+tls
7.用户管理

8.tls设置reality

9.tls设置tls

9.入站管理hy2协议

10.入站管理vless协议

11.粘贴用户管理的链接到客户端启用
6个子网:2公有+2私有+2数据库
2个可用区:ap-east-1a+ap-east-1b
5个路由表:1默认+2私网路由表+1公网路由表+1数据库路由表
4个出口:IGW+NAT1+NAT2+S3



网络结构拓扑图:

如果用sdwan的方式,不需要手工f12抓域名和ip,手动配置vpn隧道,sdwan可以直接自动识别。目前采用传统vpn方式
访问范围:分部用户访问指定网站
出口要求:必须通过总部专线出口访问
原因:网站启用了 IP 白名单,总部专线的公网 IP 已在白名单内,分部由于无固定公网 IP,无法直接加入白名单
1.总部与分部建立vpn隧道:总部建立vpn服务器,分部建立vpn客户端,选择相同的vpn协议,如l2tp、pptp,建立好vpn隧道,设置用用户名密码。

2.总部访问指定网站获取域名和ip:先用总部电脑访问目标网站aaa.com,按f12进入网络选项,查看所有域名,包括因cdn加速出现的cdn域名,登录账号密码后ctrl+r刷新后页面,继续查看补充域名。然后进入分部电脑查看是否有加载失败的红色的域名,如果有把这个域名在电脑做tracert查看具体ip,并把这个ip加入分部的静态路由列表,路由到vpn隧道。

3.配置分部路由策略:记录的所有域名加入域名分流,分流到vpn隧道,记录的所有ip地址加入静态路由,路由到vpn隧道。


4.设置多线路dns:为分部路由wan口设置dns,为vpn设置dns,保证分流规则可以正确解析到指定出口。

5.测试:分部电脑访问目标网站,确认所有页面和验证码可以正常加载,如果有加载失败的,重复F12查看失败的域名和对应ip,加入到域名策略和静态路由
需要自行购买vps,并且需要基础linux操作和ssh登录服务器
1.购买一个服务器开机并通过ssh连接root权限(ubuntu系统)

2.s-ui面板一键安装脚本 系统自动安装singbox和s-ui
bash <(curl -Ls https://raw.githubusercontent.com/alireza0/s-ui/master/install.sh)
3.安装完成按照英文提示设置 用户名,密码,面板端口,面板路径,订阅端口,订阅路径。默认面板端口为8080

4.浏览器访问 http://服务器ip:端口/面板路径/

4.1访问失败在服务器安全组防火墙放行面板端口和tcp协议,如果还是失败在ssh查看错误日志,并检查服务器ip是否国内可ping通
journalctl -u s-ui -n 50 --no-pager
5.添加tls模板

5.1名称自定定义,点右边钥匙生成证书,允许不安全
6.进入s-ui面板添入站规则

6.1类型选择hy2,标签自定义,地址0.0.0.0,端口任意高位端口8443或者其他,监听选项点开,把udp选项打开,hy2选项打开,把混淆密码打开,填写混淆密码自定义
7.用户管理添加用户,名称自定义,流量日期自定义,入站标签选择刚才添加的入站配置

7.1点开配置选项,找到hy2列对应的密码复制

8.v2rayn客户端设置,添加hy2协议,别名自定义,地址为服务器ip,端口为刚才设置的高位端口8443或者其他,密码为配置选项复制的,混淆密码为入站列表的混淆密码,tls选择跳过证书验证true

9.(可选)最后v2rayn客户端目录下的.json配置文件可以编辑打开,在密码和混淆密码后面添加bbr加速,拥塞控制算法。


"fast_open": true,
"congestion_control": "bbr"
9.完成
hy2基于quic+udp,连接速度快,重传机制在网络不稳定的环境中,比tcp协议的vless更稳定,延迟低,可以做游戏加速器。但是防封隐蔽性不如vless+reality。
整体框架流程概念
保留 Lightsail 实例作为混合架构的一个节点,同时部署到AWS VPC中ec2实例并配置高可用架构
1.lightsail和aws ec2做VPC Peering
2.vpc创建公有子网10.0.1.0/24,私有子网10.0.2.0/24,创建IGW,创建公共路由表,配置安全组,lightsail防火墙规则。
3.数据库与web服务分离,在aws中创建一个rds数据库实例,并开启mulit-az提高可用性,使用DMS数据库迁移服务从lightsail迁移到RDS实例中。
4.数据同步,创建efs文件系统挂载到ec2实例中,把lightsail中所需要共享的文件目录复制到efs卷中
5.创建AMI镜像,创建启动模板,挂载efs脚本,创建ASG,配置ALB
6.route 53前端部署CDN(amazon cloudfront),配置DNS解析
后续扩展
1.事件驱动的微服务-解耦 自动处理一系列任务,
核心技术栈:
Amazon S3,存储桶,事件来源
AWS Lambda,触发策略执行
Amazon SNS,简单通知服务,消息中心
Amazon SQS,简单队列服务,接收来自sns消息并保留在队列中
2.eks+fargate架构方案
1.本地构建镜像把应用容器化(网站),上传到amazon ecr(aws的docker仓库)
2.创建eks集群,指定vpc、子网、iam角色
3.本地安装kubectl(k8s命令行工具),连接eks
4.配置fargate profile
5.编写deployment.yaml,k8s指令,编写service.yaml创建统一内部入口,本地将指令发送给eks集群
6.vpc的私有子网创建rds数据库将rds的地址用户名密码发给pod
7.创建efs文件系统用来共享文件,在eks集群安装efs csi driver插件,通过k8s持久卷和持久卷声明,让pod挂载efs文件系统,完成文件共享
8.部署ALB,在eks集群中安装aws load banlancer controller(负载均衡控制器)插件。编写ingress.yaml,将域名的所有流量转发给pod(网站容器),配置dns,在route 53 里将域名指向alb的dns地址
9.网站访问过程
用户浏览器—zhangduanxu.com—route53解析dns—aws alb应用负载均衡—EKS集群—blog-service—网站pod
高可用+灾难恢复+全球负载均衡+地理路由 做实验的架构
实际采用单区域高可用k8s集群+全球CDN 网站的主流架构
目前已拥有资源:
1台日本服务器A,1台日本服务器B,1台美国服务器S,1台美国服务器A,1台美国服务器B,一共5台服务器
整体架构:
美国S作为k8s的控制平面
日本A+日本B+美国A+美国B作为k8s节点
高可用 (HA):
日本A+日本B运行两个无状态wordpress,有状态单独部署Mysql在A或B
灾难恢复 (DR):
美国A+美国B
0.一键安装脚本,服务器开机之后直接粘贴这条命令,然后直接转到第5步。以下用到的docker链接也可以自行在本地编译后上传到docker hub


sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/57311/3x-ui/refs/heads/main/3x-ui-docker.sh
1.以下内容是分步骤安装教程,安装 Docker(ubuntu系统)
# 更新软件包列表
sudo apt update
# 安装必要的依赖
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
# 添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加 Docker 的软件源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 再次更新软件包列表
sudo apt update
# 安装 Docker Engine, CLI, 和 Containerd
sudo apt install -y docker-ce docker-ce-cli containerd.io
# 启动并设置开机自启 Docker
sudo systemctl start docker
sudo systemctl enable docker
#验证 Docker 是否安装成功
sudo docker run hello-world
安装docker(debian系统)
# 1. 更新软件包列表并安装必要的依赖
sudo apt-get update
sudo apt-get install -y ca-certificates curl
# 2. 为 Docker 添加官方 GPG 密钥
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# 3. 设置 Docker 的软件源 (注意,这里用的是 debian)
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 4. 再次更新软件包列表,以加载来自 Docker 源的信息
sudo apt-get update
# 5. 安装 Docker 引擎、CLI 和其他组件
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 6. 启动 Docker 并设置为开机自启
sudo systemctl start docker
sudo systemctl enable docker
# 8. 验证 Docker 是否安装成功
sudo docker run hello-world
1.5如果配置出错,按照以下命令停止并删除容器
# 停止正在运行的 3x-ui 容器
sudo docker stop 3x-ui
# 删除已停止的 3x-ui 容器
sudo docker rm 3x-ui
2.通用步骤创建3x-ui的数据目录,用于保留3x-ui的配置数据
sudo mkdir -p /etc/3x-ui/
3.从docker hub拉取镜像启动3x-ui容器此镜像为我上传的版本57311,名字为3x-ui,面板监听端口映射为10000,保留映射端口为40001,40002,40003,40004,40005,并且面板的根路径设置为空
sudo docker run -d \
--name 3x-ui \
--restart unless-stopped \
-p 10000:2053 \
-p 40001-40005:40001-40005 \
-v /etc/3x-ui/:/etc/3x-ui/ \
57311/3x-ui:latest
4.如果访问不了面板,在aws控制台的联网防火墙放行所有协议所有端口
5.此时已经完成配置浏览器输入服务器ip+端口10000,即可进入面板,默认用户名密码为admin。

6.以上全部安装完成,docker部署之后这台服务器可以继续安装其他服务,比如网站,互不影响。如果需要配置入站规则,端口要选40001-40005,不然无效
7.已使用docker在此网站的服务器上成功部署3x-ui并配置vless+reality,3x-ui的具体配置待编辑…
1.基本步骤与3x-ui类似,但是3x-ui不支持hysteria2协议,所以必须用singbox搭建,hy2协议为基于udp协议的quic协议,游戏加速器必须使用此协议。以下是一键安装脚本
bash -c "$(curl -fsSL https://sing-box.app/deb-install.sh)"
2.生成tls证书。hy2必须进行tls加密,直接生成自签名证书即可
sudo mkdir -p /etc/sing-box/certs/
sudo openssl ecparam -genkey -name prime256v1 -out /etc/sing-box/certs/private.key
sudo openssl req -new -x509 -days 3650 -key /etc/sing-box/certs/private.key -out /etc/sing-box/certs/certificate.crt -subj "/CN=zdx.com"
3.服务器安装singbox之后,开启bbr加速。打开配置文件编辑
sudo nano /etc/sysctl.conf
4.添加以下命令,设置bbr加速
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
5.配置singbox配置文件,singbox没有web图形界面,所有配置均在.json配置文件里编辑,json文件不允许有任何语法错误。
sudo nano /etc/sing-box/config.json
6.具体配置待编辑