7 个版本
0.3.2 | 2024年4月4日 |
---|---|
0.3.2-alpha.2 | 2023年11月16日 |
0.3.1 | 2023年4月6日 |
0.2.0 | 2022年10月11日 |
0.1.0 | 2022年9月13日 |
#1076 在 网络编程
每月下载量 399
25KB
281 行
portproxy
简单的端口转发工具,使用 tokio-rs 🦀 构建
它做什么?
基本上与 Windows 的 netsh interface portproxy
或 Linux 的 iptables
转发相同 - 它将来自 listen
本地地址和端口的传入连接映射到远程 connect
地址和端口。
目前仅支持 TCP 端口转发。
此工具目前没有提供比原生操作系统工具更多功能,可能除了统一和简化映射定义之外。另一个值得注意的用例是那些原生端口转发工具无法使用的罕见情况(例如,Windows 的 netsh portproxy
需要系统启用 IPv6)。
安装
Cargo
cargo install portproxy
从源代码
克隆仓库并编译
git clone https://github.com/spitfire05/portproxy.git
cd portproxy
cargo install
预编译的二进制文件
此仓库的发布部分提供 Windows 二进制文件。
配置
配置以 TOML 语言指定。
portproxy
将尝试以下顺序读取配置路径
--config
CLI 参数,如果设置- 环境变量
PORTPROXY_CONFIG
的值,如果设置 ~/.config/portproxy.toml
配置应包含一个或多个 [[proxy]]
元素,这些元素定义端口映射
[[proxy]]
listen = "localhost:8080" # local address to listen on
connect = "some-server.lan:8485" # remote (or local) address to connect to
运行
运行很简单 - 只需调用 portproxy
二进制文件。还有一些可选的标志/参数
Usage: portproxy [OPTIONS]
Options:
-c, --config-path <CONFIG_PATH> Path to read the config from. If not set, will fall back to value of $PORTPROXY_CONFIG, and "~/.config/portproxy.toml", in that order
-l, --log-level <LOG_LEVEL> [default: info] [possible values: error, warn, info, debug, trace]
-d, --log-dir <LOG_DIR> Directory to write the log files to. Logging to file will be disabled if this is not set
-h, --help Print help
-V, --version Print version
作为服务/守护进程
Windows
使用 Shawl 创建 portproxy
的 Windows 服务。
shawl add --no-restart --no-log --name portproxy -- C:\full\path\to\portproxy.exe --log-level debug --log-dir C:\full\path\to\logs\directory <optional args>
依赖关系
~143MB
~2.5M SLoC