在 Icecast 中添加自定义 Header 以注销
Adding Custom Header to Logout in Icecast
是否可以让 icecast 的日志输出从 header 中读取一个变量发送到服务器?目前我正在 Kuberenetes 中设置一个 icecast 服务器,我正在尝试将源 IP 保存到流中以分析日志数据。然而,即使在 kubernetes 方面采取了必要的步骤,我也没有看到 icecast 的日志有源 IP。我是如何嗅探传入请求的,我看到了:
X-Real-IP: 142.x.x.x
X-Forwarded-For: 142.x.x.x
随着 header 进入服务器。
是否可以通过某种方式将它们写入日志?
暂时没有。
我们计划在 2.5 版中支持反向代理。
我们目前的一般建议是不要反向代理 Icecast,因为除了丢失原始 IP 地址之外还有许多可能的问题。
只需将 Icecast 端口直接暴露给互联网,例如通过端口转发。
编辑: You can just declare protocol: TCP
ports for your service. 也 "Proxy-mode: iptables"
如果您不介意稍微修改一下,您可以这样做。
克隆 source
在源文件中找到这些行,它们定义了记录为侦听器 ip 的内容:
./src/logging.c:159: client->con->ip,
./src/admin.c:700: xmlNewTextChild(node, NULL, XMLSTR(mode == OMODE_LEGACY ? "IP" : "ip"), XMLSTR(client->con->ip));
添加此代码段以定义新变量,这将设置为 X-Real-IP
header 的值(如果存在)或客户端 IP(如果不存在):
const char *realip;
realip = httpp_getvar (client->parser, "x-real-ip");
if (realip == NULL)
realip = client->con->ip;
更改前面提到的行以引用新变量:
./src/logging.c:163: realip,
./src/admin.c:700: xmlNewTextChild(node, NULL, XMLSTR(mode == OMODE_LEGACY ? "IP" : "ip"), XMLSTR(realip));
按照说明从源代码构建 Icecast
是否可以让 icecast 的日志输出从 header 中读取一个变量发送到服务器?目前我正在 Kuberenetes 中设置一个 icecast 服务器,我正在尝试将源 IP 保存到流中以分析日志数据。然而,即使在 kubernetes 方面采取了必要的步骤,我也没有看到 icecast 的日志有源 IP。我是如何嗅探传入请求的,我看到了:
X-Real-IP: 142.x.x.x
X-Forwarded-For: 142.x.x.x
随着 header 进入服务器。
是否可以通过某种方式将它们写入日志?
暂时没有。
我们计划在 2.5 版中支持反向代理。
我们目前的一般建议是不要反向代理 Icecast,因为除了丢失原始 IP 地址之外还有许多可能的问题。
只需将 Icecast 端口直接暴露给互联网,例如通过端口转发。
编辑: You can just declare protocol: TCP
ports for your service. 也 "Proxy-mode: iptables"
如果您不介意稍微修改一下,您可以这样做。
克隆 source
在源文件中找到这些行,它们定义了记录为侦听器 ip 的内容:
./src/logging.c:159: client->con->ip,
./src/admin.c:700: xmlNewTextChild(node, NULL, XMLSTR(mode == OMODE_LEGACY ? "IP" : "ip"), XMLSTR(client->con->ip));
添加此代码段以定义新变量,这将设置为 X-Real-IP
header 的值(如果存在)或客户端 IP(如果不存在):
const char *realip;
realip = httpp_getvar (client->parser, "x-real-ip");
if (realip == NULL)
realip = client->con->ip;
更改前面提到的行以引用新变量:
./src/logging.c:163: realip,
./src/admin.c:700: xmlNewTextChild(node, NULL, XMLSTR(mode == OMODE_LEGACY ? "IP" : "ip"), XMLSTR(realip));
按照说明从源代码构建 Icecast