前言

reality

目前安全性最高也是自建最多人使用的协议,能有效消除服务端 TLS 指纹特征,隐藏和保护流量的特征。

域名选择

reality只需要获取域名即可使用,目标网站必须满足 5 个条件:

  1. 使用 TLS 1.3 协议
  2. 使用 X25519 签名算法
  3. 支持 HTTP/2 协议(H2)
  4. 不使用 CDN - 如果 Reality 目标网站使用 CDN,数据将转发到 CDN 节点,使你的 Reality 节点成为别人的反向代理加速节点
  5. 中国境内不依赖任何代理可以直接访问

域名推荐度:偷自己 > 偷邻居 > 偷服务器所在地图书馆、大学、旅游局 > 偷测试出来的 > 偷大厂

一键脚本

1
2
3
4
# 首次运行
bash <(wget -qO- -o- https://github.com/233boy/Xray/raw/main/install.sh)
# 再次运行
xray

面板部署

1
2
3
4
# 首次运行
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
# 再次运行
x-ui

shadowsocks

最简单、最快速、延迟最低的加密代理协议,但极易遭到封锁。历经波折,目前更新到shadowsocks 2022

shadowsocks 2022声称提升了性能并带有完整的重放保护和防止TCP主动探测,但仍有较大封锁风险谨慎使用

一键脚本

部署shadowsocks 2022

1
2
3
4
# 首次运行
bash <(wget -qO- -o- https://github.com/233boy/Xray/raw/main/install.sh)
# 再次运行
xray

面板部署

shadowsocks 2022 + http混淆

1
2
3
4
# 首次运行
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
# 再次运行
x-ui

hysteria

UDP协议,基于魔改的 QUIC 协议,垃圾线路的救星,部分地区容易Qos出现断流情况

URI 格式:hysteria2://[auth@]hostname[:port]/?[key=value]&[key=value]…

例如:hysteria2://rR9YCGYaY0LpP7BLswTSzQ==@47.76.67.1:30000/?sni=hy.test.com&insecure=0#🇭🇰 Test

性能优化

1
2
3
# 将发送、接收两个缓冲区都设置为 16 MB
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216

官方一键脚本

1
2
3
4
# 安装/升级
bash <(curl -fsSL https://get.hy2.sh/)
# 卸载
bash <(curl -fsSL https://get.hy2.sh/) --remove

证书设置

可使用acme申请的域名证书或自签证书

1
2
# 写入Bing自签证书
openssl req -x509 -nodes -newkey ec:<(openssl ecparam -name prime256v1) -keyout /etc/hysteria/server.key -out /etc/hysteria/server.crt -subj "/CN=bing.com" -days 36500 && sudo chown hysteria /etc/hysteria/server.key && sudo chown hysteria /etc/hysteria/server.crt

修改配置文件

1
vim /etc/hysteria/config.yaml

config.yaml文件,最小化配置文件,更多功能参考官网

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
listen: :30000 #默认端口443,可以修改为其他端口

tls:
cert: /etc/hysteria/fullchain.cer
key: /etc/hysteria/private.key

auth:
type: password
password: rR9YCGYaY0LpP7BLswTSzQ== #认证密码

masquerade:
type: proxy
proxy:
url: https://www.paypal.com/ #伪装网址
rewriteHost: true

服务启动

1
2
3
4
5
6
# 开放对应端口
ufw status
ufw allow 30000
# 重启并开机自启
systemctl restart hysteria-server.service
systemctl enable hysteria-server.service

端口跳跃

运营商会阻断或限速 UDP 连接。不过,这些限制往往仅限单个端口。端口跳跃可用作此情况的解决方法。

注意:设置 iptables 规则网卡名称 eth0 要根据具体情况更改,可用命令 ip a 查看网卡名称!

常见以太网接口命名:eth0 /eth1 /eth2 /ens33 /ens5 / enp0s3

1
2
3
4
5
6
7
8
# 安装软件包用于保存和恢复 iptables 规则
apt install iptables-persistent
# IPv4
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 30001:32000 -j REDIRECT --to-ports 30000
# IPv6
ip6tables -t nat -A PREROUTING -i eth0 -p udp --dport 30001:32000 -j REDIRECT --to-ports 30000
# 保存当前 iptables 规则
netfilter-persistent save

在该示例中,服务器以太网卡名称 eth0 监听 30000 端口,但客户端可以通过 30001-32000 范围内的任何端口连接。

证书错误

如果显示:{"error": "invalid config: tls: open /etc/hysteria/server.crt: permission denied"} 或者 failed to load server conf 的错误,则说明 Hysteria 没有访问证书文件的权限,需要执行下面的命令将 Hysteria 切换到 root 用户运行

1
2
3
4
sed -i '/User=/d' /etc/systemd/system/hysteria-server.service
sed -i '/User=/d' /etc/systemd/system/hysteria-server@.service
systemctl daemon-reload
systemctl restart hysteria-server.service

snell

Surge团队开发的私有专属协议,媲美甚至超越shadowsocks,最新版仅限于Surge使用。

一键脚本

1
wget -O snell.sh --no-check-certificate https://git.io/Snell.sh && chmod +x snell.sh && ./snell.sh

Docker部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 创建文件夹
mkdir snell && cd snell
# 写入 Docker Compose 文件
cat > docker-compose.yaml << EOF
services:
snell:
image: vocrx/snell-server:alpine
container_name: snell
restart: always
network_mode: host
environment:
- PORT=65110
- PSK=jy7jbw6yFWikg2uS
- DNS=1.1.1.1,8.8.8.8
EOF
# 自定义 SNELL 配置参考
services:
snell:
image: vocrx/snell-server:alpine
container_name: snell
restart: always
network_mode: host
environment:
- PORT=自定义使用的端口, 仅host模式下生效, 不写则随机。
- PSK=节点密码, 不写则随机。
- IPV6=true/false, 不写默认为false
- DNS=8.8.8.8,1.1.1.1, 不写为系统默认
- VERSION=v4.1.1, 自定义二进制文件版本, 不写则默认最新版
- OBFS=http,默认为空,写此条必须配置HOST
- HOST=icloud.com,默认为空
# 启动
docker compose up -d