这似乎是一个微不足道的问题,但经过一番搜索后,我仍然想不出答案。可以使用“any”作为接口描述来运行 tcpdump,即:
# tcpdump -i any -n host 192.168.0.1
Run Code Online (Sandbox Code Playgroud)
有什么方法可以强制 tcpdump 显示在哪个接口上显示的数据包被捕获?
更新:
随着越来越多的人确认使用 vanilla tcpdump 可能无法做到这一点,有人可以提出解决上述问题的方法吗?也许不同的嗅探器?
一般问题如下:在具有 50 个接口的系统上,确定来自特定 IP 地址的数据包的入站接口是什么。
好的,从我的角度来看,这是一个非常实用的用例。
假设我有一个简单的 shell oneliner,它将输出记录到一个文件中。这可以是任何东西,例如 tcpdump。是否有任何通用和简单的方法来确保输出文件不会超过给定的大小?
这背后的共鸣是防止错误地填充安装点上的整个可用空间。如果我忘记了脚本,或者它每小时会产生 GB 的数据,那么这个简单的调试任务可能会导致潜在的系统崩溃。
现在,我知道一些工具中内置的选项(例如 tcpdump 中 -W/-C 的组合)。我需要的是一个非常通用的故障保护。
长话短说 - 当我运行一个脚本时:
% this -is --my=very|awsome|script >> /var/tmp/output.log
Run Code Online (Sandbox Code Playgroud)
如何确保 output.log 永远不会超过 1GB。
脚本可能会崩溃、被杀死或其他什么。
我正在寻找的解决方案应该简单易行,仅使用流行发行版(如 ubuntu/debian/fedora)中可用的工具。一般来说,一些广泛可用的东西。无论语言/技术如何,复杂的多行程序都不是这里的选择。
著名的 PaaS 提供商Heroku为 SSL 问题提供了多种解决方案。其中之一是名为Hostname Based SSL的产品
这不是 SNI。他们声称它适用于任何配置的每个浏览器,但还有其他缺点,主要是(引用文档):
基于主机名的 SSL 不适用于根域,因为它依赖于自定义域名的 CNAME 别名。
主机名 SSL 仅适用于一个域。例如,www.domain.com 可以工作,但如果将 secure.domain.com 的第二个证书添加到应用程序中,它将无法工作。
我们基于主机名的 SSL 产品目前去除了一些 HTTP 标头;例如,当您的应用程序需要查看客户端的 IP 时,这可能是一个问题。
使用这个自定义构建解决方案,Heorku 可以在一个 IP 地址上为多个 SSL 站点提供服务,并且正如他们声称的那样,它可以跨任何地方工作。
谁能解释这个解决方案的技术方面和这个产品背后的技术?
我有非常复杂和长的 iptables 脚本。无法通过手动插入/替换或删除操作现有的 iptables 配置。我有一个脚本,它只是刷新所有规则和自定义链,然后从头开始重新加载所有内容。在某种程度上,这种方法效果很好。
我有很多敏感流量,比如封装到 IP 数据包中的 E1 线路等等。我不能放弃所有规则并重新插入它们,因为这太慢了。如果没有超过 50 毫秒的规则,很多东西都会中断。除此之外,一些高吞吐量流量进入部分恢复的防火墙,最终导致非常糟糕的 conntrack 条目,需要手动干预才能恢复功能。
解决方案是在当前的末尾附加新规则,然后删除旧规则,这在理论上可以导致连续的规则集就位。问题是,带有自定义链、ipset 等的脚本变得非常复杂且容易出错。
问题是 - 你知道任何现有的解决方案(iptables 之上的额外层),它处理我在这里提到的问题?
提前致谢。