k2s 服务端部署
在 Linux VPS 上一键安装并运行 k2s 服务端。零配置启动——自动生成密钥证书,k2cc 自动优化传输性能。
k2s 服务端部署
k2s 是 k2 协议的服务端程序,设计目标是零配置启动。您只需一条命令,服务端即可自动完成所有密钥生成和服务注册。k2cc 在服务端同步启用,自动优化传输性能。
系统要求
- 操作系统:Linux(x86_64 或 arm64)
- 端口:需要对外开放 443 端口(UDP + TCP)
- 权限:需要 root 权限(或具备
NET_BIND_SERVICE能力)
一键安装
curl -fsSL https://kaitu.io/i/k2s | sudo sh
安装完成后,验证安装:
k2s --version
启动服务
sudo k2s run
首次启动会在 /etc/k2s/ 目录下自动创建:
server.crt/server.key(EC 证书)server-rsa.crt/server-rsa.key(RSA 证书)echkey.pem(ECH HPKE 私钥)config.yml(服务端配置文件)
启动成功后,终端输出连接 URL:
k2s 已启动,监听 0.0.0.0:443
连接 URL:
k2v5://abc123:tok456@203.0.113.5:443?ech=AEX0...&pin=sha256:abc...
k2s 同时自动启用 k2cc 拥塞控制。无需任何手动调优。
查看连接 URL
如果您关闭了终端,可以随时再次查看:
sudo k2s run
或者查看配置文件:
cat /etc/k2s/config.yml
系统服务(自动启动)
首次启动时,k2s 会自动注册 systemd 服务:
# 查看服务状态
sudo systemctl status k2s
# 设置开机自启(默认已设置)
sudo systemctl enable k2s
# 手动停止/启动
sudo systemctl stop k2s
sudo systemctl start k2s
# 查看日志
sudo journalctl -u k2s -f
Docker 部署
项目内置 Docker Compose 配置,适合容器化环境:
git clone https://github.com/kaitu-io/k2.git
cd k2/docker/
docker compose up --build
默认端口映射:
- 443:k2s 服务端(UDP + TCP)
- 1080:k2 客户端 SOCKS5 代理
- 1777:k2 daemon API(本地管理)
高级配置
生成默认配置文件后手动编辑:
k2s config show > server.yml
常用配置项:
listen: 0.0.0.0:443 # 监听地址
public_name: example-cdn.com # ECH 外层域名(用于主动探测伪装,默认为某主流 CDN 域名)
reverse_proxy: auto # 非 ECH 连接反向代理目标(auto=自动从 DNS 解析)
cert_refresh_interval: 24h # TLS 记录填充模板刷新周期
防火墙配置
确保 443 端口的 UDP 和 TCP 流量都已放行:
# iptables(示例)
sudo iptables -A INPUT -p udp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# ufw(示例)
sudo ufw allow 443/udp
sudo ufw allow 443/tcp
常见问题
端口被占用怎么办?
检查是否有其他程序(如 Nginx)占用 443 端口:
sudo ss -tlunp | grep :443
可通过配置文件修改 k2s 监听端口(非标准端口会影响隐身效果)。
如何更新 k2s?
重新执行安装命令即可,新版本会覆盖旧版本但保留配置文件:
curl -fsSL https://kaitu.io/i/k2s | sudo sh
sudo systemctl restart k2s
k2s 需要多少服务器资源?
极少。k2s 编译为单个二进制文件(约 50MB),运行时内存占用通常在 50-100MB。单个 2 核 4GB 的 VPS 可支持 100+ 并发连接。比 Xray/V2Ray 等多进程方案更轻量。
服务端真的零配置吗?
是的。k2s 首次启动时自动生成 ECH 密钥对、自签名证书(EC + RSA 双证书)、HPKE 配置,并打印即用的连接 URL。整个过程无需编辑任何配置文件。Hysteria2 服务端也需要手动获取 ACME 证书或准备自签名证书。
ECH 外层域名可以自定义吗?
可以。在 /etc/k2s/config.yml 中修改 public_name 字段。建议选择你的服务器所在地区的主流 CDN 域名,以提高伪装可信度。
443 端口被其他服务占用怎么办?
可以修改监听端口,但强烈建议保持 443——非标准端口(如 8443)会降低隐身效果,因为 DPI 对非标准端口的 HTTPS 流量更加关注。如果 443 被占用,建议停用占用它的服务或使用端口转发。
支持 Docker 部署吗?
支持。k2s 提供官方 Docker 镜像,一条 docker run 命令即可启动。但对于大多数用户,直接安装二进制更简单——安装脚本自动注册 systemd 服务,支持开机自启。
接下来阅读: