uredir
v3.3
uredir
是一个小型 Linux 守护进程,用于重定向 UDP 连接。它可用于在没有(或想要使用)iptables 的小型嵌入式系统上转发连接。
uredir
可以与 Finit 中的内置 inetd 服务一起使用,以在某些(安全)接口上侦听(例如 SNMP 连接)并在环回上转发到 SNMP 守护程序。
uredir
在转发回复后会停留三 (3) 秒。这是为了防止 inetd 为多个连接生成新实例,例如 SNMP 遍历。对于 TCP 端口重定向器,请参阅 redir。
uredir [-hinsv] [-I NAME] [-l LEVEL] [-t SEC] [SRC:PORT] DST:PORT
-h Show this help text
-i Run in inetd mode, get SRC:PORT from stdin, implies -n
-I NAME Identity, tag syslog messages with NAME, default: uredir
-l LVL Set log level: none, err, info, notice (default), debug
-n Run in foreground, do not detach from controlling terminal
-s Use syslog, even if running in foreground, default w/o -n
-t SEC Timeout for connections, default 3 seconds
-v Show program version
Bug report address: https://github.com/troglobit/uredir/issues
这个简单的 UDP 代理示例将任何接口上的入站 DNS 请求转发到 192.168.0.1 上的外部 DNS 服务器:
uredir :53 192.168.0.1:53
要从 Finit 或 systemd 等进程监视器运行uredir
,请告诉它本身不要后台运行,并且仅使用 syslog 来记录日志消息:
uredir -ns :53 127.0.0.1:53
要在 inetd 模式下运行uredir
,例如重定向 SNMP 请求,请尝试以下操作。根据 inetd 服务的需要在前台运行,并使用 syslog 进行日志记录:
snmp dgram udp wait root uredir -i 127.0.0.1:16161
uredir
是为 Linux 系统量身定制的,应该针对任何(旧的)C 库进行构建。但是, uredir
v3.0 及更高版本需要外部库 libuEv。安装它应该不会让人感到意外,因为它也使用标准configure
脚本并支持pkg-config
。 uredir
构建使用后者来定位库和头文件。
因此,常规./configure && make
通常足以构建uredir
。但如果 libuEv 安装在非标准位置,您可能需要提供路径:
PKG_CONFIG_PATH=/opt/lib/pkgconfig:/home/ian/lib/pkgconfig ./configure
make
uredir
项目是在 ISC 许可下开源的,并在 GitHub 上积极维护。请使用其界面来报告错误和拉取请求。
uredir
很大程度上受到 Sam Creasey 的 redir(1) 的启发。