01 / SSTP
SSTP服务器
SSTP 需要公共主机名、TCP 443 或其他可用的 TCP 端口、TLS 证书、PPP 身份验证以及服务器上的 IPv4 配置。如果 RouterOS、SoftEther 和 Windows RRAS 类型的部署提供兼容的 SSTP 服务,则它们是合适的。
RouterOS 风格示例
/ip pool
add name=your-pool ranges=10.20.30.10-10.20.30.200
/ppp profile
add name=sstp-profile \
local-address=10.20.30.1 \
remote-address=your-pool \
dns-server=1.1.1.1,8.8.8.8 \
use-encryption=yes
/ppp secret
add name=username password="strong-password" service=sstp profile=sstp-profile
/interface sstp-server server
set enabled=yes \
port=443 \
certificate=your-certificate-name \
authentication=mschap2 \
default-profile=sstp-profile
连接链接
sstp://username:strong-password@yourdomain.com:443?name=Office&cc=DE&label=Work
- 如果可能,请使用有效的公共 TLS 证书。
- 在防火墙中打开 SSTP TCP 端口。
- 为每个用户或设备创建唯一的凭据。
- 如果您的方案支持,让 PPP 服务器提供 IP 和 DNS 参数。
- 使用 RADIUS 或本机服务器限制来限制过期、记帐和并发会话限制。
02 / 检查
SSTP 诊断清单
| 症状 | 要检查什么 |
|---|---|
| TLS 立即关闭 | 证书链、SNI/主机名、防火墙、SSTP 之前不支持的 TLS 策略或代理。 |
| 认证错误 | 登录名和密码、PPP 身份验证方法、帐户状态、秘密到期日期和 RADIUS 响应。 |
| 已连接但无流量 | 路由、NAT/伪装、DNS、防火墙和服务器 IP 池中的转发规则。 |
| 更换网络时断线 | 服务器超时策略和客户端重新连接行为:当将 Wi-Fi/移动网络切换到 iOS 时,可能会重新创建路径。 |
03 / NAIVEPROXY
NaiveProxy 与 Caddy
常见的 NaiveProxy 方案使用 Caddy 和添加了转发代理的程序集。重要的部分是通过 TLS 进行身份验证的 HTTP CONNECT。 Caddy 和插件语法的确切构建可能有所不同,因此下面显示的部署模式不能保证是复制粘贴。
yourdomain.com {
tls admin@yourdomain.com
route {
forward_proxy {
basic_auth username strong-password
hide_ip
hide_via
probe_resistance
}
respond 204
}
}
naive+https://username:strong-password@yourdomain.com:443?sni=yourdomain.com&name=Office&cc=DE&label=Work
通常选择此选项来完成代理上的常见 TLS、自动证书和简单的基本身份验证。
04 / NAIVEPROXY
带单盒的 NaiveProxy
另一种选择是直接从 Naive inbound 运行 sing-box。当一个二进制文件必须同时拥有代理侦听器和路由逻辑时,这很方便。
{
"log": { "level": "warn" },
"inbounds": [
{
"type": "naive",
"tag": "naive-in",
"listen": "0.0.0.0",
"listen_port": 443,
"users": [
{ "username": "username", "password": "strong-password" }
],
"tls": {
"enabled": true,
"server_name": "yourdomain.com",
"certificate_path": "/etc/letsencrypt/live/yourdomain.com/fullchain.pem",
"key_path": "/etc/letsencrypt/live/yourdomain.com/privkey.pem"
}
}
],
"outbounds": [
{ "type": "direct", "tag": "direct" }
],
"route": { "final": "direct" }
}
[Unit]
Description=sing-box naive proxy
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/bin/sing-box run -c /etc/sing-box/config.json
Restart=on-failure
RestartSec=3
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.target
05 / 扩张
NaiveProxy 的 UDP-over-TCP
NaiveProxy主要是面向TCP的。如果用户需要通过 Naive 配置文件获得类似 UDP 的流量,MONO VPN 可以将 UDP 流路由到单独的 Naive TCP 侦听器。添加 uot 链接并在该端口上运行兼容的侦听器。
naive+https://username:strong-password@yourdomain.com:443?sni=yourdomain.com&uot=8443
{
"log": { "level": "warn" },
"inbounds": [
{
"type": "naive",
"tag": "naive-uot-in",
"listen": "0.0.0.0",
"listen_port": 8443,
"users": [
{ "username": "username", "password": "strong-password" }
],
"tls": {
"enabled": true,
"server_name": "yourdomain.com",
"certificate_path": "/etc/letsencrypt/live/yourdomain.com/fullchain.pem",
"key_path": "/etc/letsencrypt/live/yourdomain.com/privkey.pem"
}
}
],
"outbounds": [
{ "type": "direct", "tag": "direct" }
],
"route": { "final": "direct" }
}
仅在使用此模式时打开 UoT TCP 端口。如果 uot 如果不存在,MONO VPN 使用常规 NaiveProxy 分支来处理 TCP 流量,并且不需要额外的侦听器。
06 / 运营
安全与操作
- 不要发布真实密码、root 凭据或长期共享密钥。
- 向每个用户或设备颁发唯一的凭据。
- 当用户离开、链接泄露或访问权限过期时,调用并轮换数据。
- 更新 Caddy、sing-box、RouterOS、SoftEther 或您选择的 VPN 堆栈。
- 按 IP 源限制管理端口并将管理与 VPN/代理端口分开。
ufw allow 443/tcp
ufw allow 443/udp
ufw allow 8443/tcp
仅打开符合您设计的端口。 UDP 443 是可选的,取决于 QUIC/HTTP3 的使用。仅 UDP-over-TCP 示例需要 TCP 8443。
