如今,VPN 和代理技术的需求日益增长。用户利用它们来安全地访问互联网、绕过审查以及抵御外部威胁。连接到此类服务器后,所有流量都会通过加密隧道传输,该服务器就成为了您连接网络的网关。
像 OpenVPN 或 WireGuard 这样的传统协议在稳定的网络环境下表现良好,但在连接质量差、丢包率高的情况下(例如移动网络、公共 Wi-Fi、网络审查严格的国家/地区),速度往往会下降。这时,像 Hysteria2 和 TUIC 这样的现代协议就派上了用场。它们基于 QUIC 协议构建,能够像普通的 HTTPS (HTTP/3) 一样提供高速、低延迟和有效的流量混淆功能。
Hysteria2 采用“残酷”算法,能够充分利用可用带宽。TUIC(版本 5)的特点是开销极低、UDP 支持出色,并且连接建立时间 (RTT) 为 0。
本文将介绍如何在 Ubuntu/Debian 上设置服务器以及如何从 Windows 连接。
你需要准备:一台运行Ubuntu 22.04/24.04或Debian 12的VPS服务器、root权限以及服务器的IP地址。无需域名。
连接到服务器
Windows(PuTTY):打开 PuTTY,输入 YOUR_SERVER_IP 作为主机,22 作为端口,然后使用 VPS 提供商电子邮件中的密码以 root 用户身份登录。
Linux/macOS(终端):
ssh root@YOUR_SERVER_IP
以下所有命令均在服务器上的同一会话中运行。
服务器准备(Ubuntu / Debian)
启用IP转发
这样服务器就可以将客户端数据包转发到互联网上。
nano /etc/sysctl.conf
输入或创建密码(仅使用英文字母和数字,不含空格)。
找到并取消注释(删除开头的 # 号)或添加以下行:
net.ipv4.ip_forward=1
保存文件(Ctrl+O,Enter),然后退出(Ctrl+X)。无需重启即可应用更改:
sysctl -p
NAT 设置(伪装)
此设置允许客户端使用服务器的 IP 地址访问互联网。
找出你的外部网络接口(连接互联网的接口)的名称:
ip link show
通常情况下,这是 eth0、ens3 或 enp1s0。复制或记住它,然后将伪装规则添加到 iptables 中——将 eth0 替换为您自己的接口名称:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
保存 iptables 规则
为防止服务器重启后规则被重置,需要保存这些规则。
apt update
apt install iptables-persistent -y
netfilter-persistent save
安装过程中,您可能会看到保存当前 IPv4/IPv6 规则的提示——两次都回答“是”。
防火墙设置(UFW)
我们立即打开所有需要的端口,这样以后就无需再返回此步骤:22 用于 SSH(跳过此步骤会将您锁定在服务器之外),443/udp 用于 Hysteria2,8443/udp 用于 TUIC。
apt install ufw -y
ufw allow 22/tcp
ufw allow 443/udp
ufw allow 8443/udp
ufw --force enable
ufw status
ufw status 命令的输出应该显示所有三条规则都处于活动状态。
歇斯底里2
安装 Hysteria2 服务器
chmod +x hysteria-linux-amd64
mv hysteria-linux-amd64 /usr/local/bin/hysteria
hysteria version
确保版本输出没有错误——这可以确认二进制文件运行正常。
创建自签名 SSL 证书
我们需要自己的加密密钥来保护您的计算机和服务器之间的通信流量。由于我们没有域名,我们将生成一个有效期为 365 天的自签名证书。因此,您稍后需要在客户端启用“跳过证书验证”。
mkdir -p /etc/hysteria
chmod 755 /etc/hysteria
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/hysteria/private.key \
-out /etc/hysteria/cert.crt \
-subj "/CN=YOUR_SERVER_IP"
ls -la /etc/hysteria/
cert.crt 和 private.key 都应该列出。
创建配置文件
nano /etc/hysteria/config.yaml
请粘贴以下内容,并将 YOUR_PASSWORD 替换为您自己的密码(仅限英文字母和数字,不含空格):
listen: :443
tls:
cert: /etc/hysteria/cert.crt
key: /etc/hysteria/private.key
auth:
type: password
password: "YOUR_PASSWORD"
masquerade:
type: proxy
proxy:
url: https://cloudflare.com
rewriteHost: true
伪装模块可以让服务器看起来像一个普通的网站,当有人在浏览器中打开其 IP 地址时,不会暴露代理的迹象。
保存(Ctrl+O,Enter)并退出(Ctrl+X)。
设置自动启动
nano /etc/systemd/system/hysteria.service
Hysteria2 自动启动的 systemd 单元文件。
[Unit]
Description=Hysteria2 Server
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/hysteria server --config /etc/hysteria/config.yaml
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now hysteria.service
systemctl status hysteria.service
状态应显示为“活动(正在运行)”。如果控制台卡在日志视图,请按 Q 键退出。
TUIC v5
下载并安装TUIC
mkdir -p /usr/local/sbin/tuic
查看已发布的版本:
curl -s https://api.github.com/repos/tuic-protocol/tuic/releases | grep -Po '"tag_name": "\K[^"]*' | head -10
下载服务器二进制文件——将 1.0.0 替换为当前版本号:
wget https://github.com/tuic-protocol/tuic/releases/download/1.0.0/tuic-server-1.0.0-x86_64-unknown-linux-gnu \
-O /usr/local/sbin/tuic/tuic-server
chmod +x /usr/local/sbin/tuic/tuic-server
/usr/local/sbin/tuic/tuic-server --version
为TUIC创建自签名证书
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /usr/local/sbin/tuic/privkey.pem \
-out /usr/local/sbin/tuic/fullchain.pem \
-subj "/CN=YOUR_SERVER_IP"
ls -la /usr/local/sbin/tuic/
生成 UUID
apt install uuid-runtime -y
uuidgen
复制生成的 UUID——您需要在下面的服务器配置和客户端设置中使用它。
创建配置文件
TUIC 服务器的最终 config.json 文件:
nano /usr/local/sbin/tuic/config.json
{
"server": "[::]:8443",
"users": {
"YOUR_UUID": "YOUR_TUIC_PASSWORD"
},
"certificate": "/usr/local/sbin/tuic/fullchain.pem",
"private_key": "/usr/local/sbin/tuic/privkey.pem",
"congestion_control": "bbr",
"alpn": ["h3"],
"log_level": "warn"
}
这里我们使用 8443 端口,因为 443 端口已被 Hysteria2 占用。请将 YOUR_UUID 替换为步骤 4.3 中的值,并将 YOUR_TUIC_PASSWORD 替换为您自己的密码。
保存(Ctrl+O,Enter)并退出(Ctrl+X)。
测试手动启动
/usr/local/sbin/tuic/tuic-server -c /usr/local/sbin/tuic/config.json
如果没有出现错误,则配置有效。按 Ctrl+C 停止程序,然后继续设置自动启动。
设置自动启动
nano /etc/systemd/system/tuic-server.service
[Unit]
Description=TUIC Server
After=network.target nss-lookup.target
[Service]
User=root
WorkingDirectory=/usr/local/sbin/tuic
ExecStart=/usr/local/sbin/tuic/tuic-server -c config.json
Restart=on-failure
RestartPreventExitStatus=1
RestartSec=5
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now tuic-server.service
systemctl status tuic-server.service
状态应显示为活动(正在运行)。
现在,两种最好、最快的现代协议正在服务器上并行运行,它们都伪装成常规的 QUIC/HTTPS 流量:Hysteria2 在标准端口 443/udp 上,TUIC v5 在端口 8443/udp 上。
从 Windows 连接
安装 Hiddify
从官方网站 https://hiddify.com 下载并安装适用于 Windows 的 Hiddify。点击“下一步”/“安装”完成安装程序。如果出现 Windows SmartScreen,请选择“更多信息”→“仍然运行”。
Hysteria2 简介
点击“+(新建配置文件)”→“手动输入”→协议Hysteria2,并填写:
|
领域 |
价值 |
|
配置文件名称 |
我的 Hysteria2 服务器 |
|
地址 |
您的服务器IP |
|
港口 |
443 |
|
密码 |
第 3.3 步中的密码 |
|
SNI |
您的服务器IP |
|
跳过证书验证 |
On |
需要启用“跳过证书验证”,因为该证书是自签名证书——它背后没有受信任的证书颁发机构。
TUIC v5 配置文件
点击“+(新建配置文件)”→“手动输入”→协议TUIC,并填写:
|
领域 |
价值 |
|
配置文件名称 |
我的TUIC服务器 |
|
地址 |
您的服务器IP |
|
港口 |
8443 |
|
UUID |
第 4.3 步中的 UUID |
|
密码 |
第 4.4 步中的密码 |
|
拥塞控制 |
BBR |
|
SNI |
您的服务器IP |
|
跳过证书验证 |
On |
连接并验证
选择一个用户配置文件,然后点击大的圆形“连接”按钮。状态应该会变为“已连接”。
要确认流量确实通过您的服务器路由,请在浏览器中打开任何 IP 查询服务——显示的地址应与 YOUR_SERVER_IP 匹配。
结语
完成本指南后,您的服务器上将并行运行两种高速下一代协议:端口 443/UDP 上的 Hysteria2 和端口 8443/UDP 上的 TUIC v5。这两种协议都将传输流量伪装成标准的加密 QUIC 连接 (HTTP/3),即使在极其不稳定的网络信道上也能确保连接的稳定性。
配置好的配置文件不仅可以在 Windows 上使用,还可以导入到 Hiddify 的 Android 或 iOS 移动应用程序中,并进行类似的设置。
如果遇到连接问题,请先使用 `systemctl status hysteria.service`(或 `tuic-server.service`)命令检查服务状态,确保防火墙规则已启用(`ufw status`),并仔细检查 IP 地址、UUID 和密码是否输入正确。请注意:自签名证书的有效期为 365 天,因此一年后需要使用相同的 `openssl req` 命令进行续订。