9个版本 (2个稳定版)
1.1.0 | 2024年2月11日 |
---|---|
0.1.6 | 2024年1月16日 |
0.1.5 | 2023年10月20日 |
0.1.3 | 2023年7月15日 |
0.1.0 | 2023年1月21日 |
#423 在 网络编程
21KB
376 行
Koblas
- 多用户
- 可配置
- IPv4 & IPv6
- 黑名单 & 白名单
- 无认证
- 用户名/密码认证
安装
Cargo
确保已安装Rust的当前稳定版本。
注册表
cargo install koblas
手动
git clone https://github.com/ynuwenhof/koblas.git
cd koblas
cargo install --path .
运行以下命令以哈希密码
koblas hash "correct-horse-battery-staple"
这将返回一个Argon2id密码哈希。
安装后,您可以使用以下命令运行服务器
koblas -a 0.0.0.0 --auth -c /path/to/config.toml
这将使服务器绑定到0.0.0.0:1080
。
Docker
确保已安装Docker Engine。
使用以下命令从Docker Hub注册表拉取最新镜像
docker pull ynuwenhof/koblas:latest
运行以下命令自行构建镜像
git clone https://github.com/ynuwenhof/koblas.git
cd koblas
docker build -t ynuwenhof/koblas:latest .
运行以下命令以哈希密码
docker run -it --rm ynuwenhof/koblas:latest hash "correct-horse-battery-staple"
这将返回一个Argon2id密码哈希。
拉取或构建镜像后,您可以使用以下命令运行服务器
docker run -d -p 1080:1080 \
-v /path/to/config.toml:/etc/koblas/config.toml \
-e RUST_LOG=debug \
-e KOBLAS_NO_AUTHENTICATION=false \
-e KOBLAS_ANONYMIZE=false \
--name koblas ynuwenhof/koblas:latest
这将使服务器绑定到0.0.0.0:1080
。
使用Docker Compose部署服务器
version: "3.8"
services:
koblas:
image: ynuwenhof/koblas:latest
container_name: koblas
restart: unless-stopped
ports:
- 1080:1080
environment:
RUST_LOG: debug
KOBLAS_LIMIT: 256
KOBLAS_NO_AUTHENTICATION: false
KOBLAS_ANONYMIZATION: true
volumes:
- /path/to/config.toml:/etc/koblas/config.toml
配置
Koblas可以通过环境变量或命令行参数进行配置。
缺失的键将回退到它们的默认值。
键 | 描述 | 默认 |
---|---|---|
KOBLAS_ADDRESS |
监听传入TCP连接的地址 | 127.0.0.1 |
KOBLAS_PORT |
监听传入TCP连接的端口 | 1080 |
KOBLAS_LIMIT |
一次可处理的最大客户端数量 | 255 |
KOBLAS_NO_AUTHENTICATION |
不需要客户端使用用户名/密码组合进行认证 | false |
KOBLAS_ANONYMIZATION |
从日志中排除敏感信息 | false |
KOBLAS_CONFIG_PATH |
配置文件的文件路径 | None |
⚠️默认配置要求每个人都必须使用预先存在的用户名/密码组合连接。
Koblas没有默认的配置文件位置,但我们建议以下位置
- Linux:
/etc/koblas/config.toml
- MacOS:
/etc/koblas/config.toml
- Windows:
%ProgramData%\koblas\config.toml
示例
# All matching IPs will be automatically blocked
blacklist = [
# Blacklist all IPs between
# 192.168.2.0 and 192.168.2.255
"192.168.2.0/24",
# Blacklist a single IP
"192.168.3.0/32",
]
# All non matching IPs will be automatically blocked
# Keep empty to disable the whitelist
whitelist = [
# Whitelist all IPs between
# 192.168.0.0 and 192.168.0.255
"192.168.0.0/24",
# Whitelist a single IP
"192.168.1.0/32",
]
[users]
# Username = "alice", password = "QDuMGlxdhpZt"
alice = "$argon2id$v=19$m=8,t=2,p=1$bWUwSXl2M2pYNU9xcVBocw$f4gFaE7p0qWRKw"
# Username = "bob", password = "ceQvWaDGVeTv"
bob = "$argon2id$v=19$m=8,t=2,p=1$ZExzaTM3aks1WjU1a3g4UA$J+EiueHYuR/dlA"
许可证
该项目可以选择以下任一许可证进行授权:
依赖项
约10-20MB
~258K SLoC