udp replicator
1.0.0
一种小型 UDP 代理,可以将流量复制到一个或多个端点。
我们需要一种方法来获取单个 Netflow 流并将其发送到多个端点。由于这是一个通用的 UDP 复制器,因此它可用于任何流量,例如网络流、系统日志等。
您可以使用 iptables,例如 Zapier,但我们想要一些可以轻松部署到 kubernetes 集群中的东西。还有许多现有的 UDP 代理,但流行的代理都不支持复制。还有少量的复制器,但这些似乎大多是未经维护/未经测试的玩具项目,几乎没有文档。
./replicator --listen-port=9500 --forward=192.0.2.1 --forward=198.51.100.5:9100
time="2019-09-23T14:29:50+01:00" level=info msg="Server started" ip=0.0.0.0 port=9500
time="2019-09-23T14:29:50+01:00" level=info msg="Forwarding target configured" addr="192.0.2.1:9500" num=1 total=2
time="2019-09-23T14:29:50+01:00" level=info msg="Forwarding target configured" addr="198.51.100.5:9100" num=2 total=2
上述命令将:
0.0.0.0
(默认)端口9500
192.0.2.1:9500
(使用配置中未指定的listen-port
作为目标端口)198.51.100.5:9100
服务器将开始侦听0.0.0.0:9500
,它收到的任何数据包都将被复制并发送到192.0.2.1:9500
和198.51.100.5:9100
docker run -e FORWARDS=$'192.0.2.1n198.51.100.5:9100' thomseddon/udp-replicator:1
version: '3'
services:
udp-replicator:
run: thomseddon/udp-replicator:1
environment:
DEBUG: "true"
FORWARD: "192.0.2.1n198.51.100.5:9100"
usage: replicator [<flags>]
Flags:
--help Show context-sensitive help (also try --help-long and --help-man).
--debug Enable debug mode
--listen-ip=0.0.0.0 IP to listen in
--listen-port=9000 Port to listen on
--body-size=4096 Size of body to read
--forward=ip:port ... ip:port to forward traffic to (port defaults to listen-port)
所有配置参数都可以作为参数传递,如上所示,或作为环境变量(如上面的用法所示)传递 - 其中环境变量是大写的蛇形字母,例如LISTEN_IP
2019 汤姆·塞登
麻省理工学院