哪个进程拥有给定的端口(Linux 内核)?

2024-04-18

我正在为 Linux 编写一个简单的应用程序层防火墙(目前没什么特别的,只是我需要的东西)。由于 iptables 的所有者模块不够,我决定使用 libnetfilter_queue 来实现。在我的防火墙(C/C++ 应用程序)中的某个时刻,我需要决定是否接受具有给定 src/dest 端口的数据包。现在问题来了。有没有简单/快速的方法可以知道哪个进程拥有给定的端口?

基本上,我需要一个函数

pid_t port2pid(u_int16_t port)

似乎在用户空间中执行此操作的唯一方法是解析/proc等级制度。我不想这样做,因为所有临时端口可能会很慢。内核必须在 TCP 堆栈中具有某种映射端口->进程。是否可以通过自定义内核模块来实现这一点?也许有人可以指出我完成同一任务的另一种方法?


回答自己。

文件proc/net/tcp由内核模块提供tcp_diag。它提供了所有 TCP 套接字及其状态的可用列表。

将套接字映射到进程的最佳方法是通过文件描述符/proc/*/fd/*,因为套接字可能被同时使用它们的许多进程/线程共享。来源为ssiproute2 包中的实用程序是学习这些内容的好地方。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

哪个进程拥有给定的端口(Linux 内核)? 的相关文章

  • C++ 析构函数和函数调用顺序

    假设我有以下代码片段 Foo foo return bar 现在 C 标准是否保证 bar 将在 foo Foo 之前调用 或者这是编译器 实现的选择 Thanks 这是有保证的行为 实际执行过程如下 0 enter block scope
  • 如何在 wpf 密码框设置一些默认文本? [复制]

    这个问题在这里已经有答案了 可能的重复 WPF 中的水印文本框 https stackoverflow com questions 833943 watermark textbox in wpf 我可以知道如何在 WPF 的密码框中放入一些
  • 为多线程 UDP 客户端执行“close ()”时套接字描述符未释放

    我在下面编写了 UDP 客户端 它基本上生成一个单独的线程来接收数据报 但是数据报仅在主线程中发送 现在 在 Linux 发行版上实例化 udpClient 1 UDP 客户端后按 ctrl D 实现退出循环 围绕 getline 调用 并
  • return 语句是否为按值返回的函数创建临时对象?

    当我学习 C 11 右值引用和移动语义时 我开始对函数如何返回值来初始化变量感到困惑 看下面的例子 Widget makeWidget Widget w return w Widget w1 makeWidget 这里我假设没有 RVO 即
  • 在运行时配置 ASP.NET 会话状态

    我们有一个使用 SQL Server 会话状态的 ASP NET 网站 状态配置在Web config like
  • 如何解决“HTTP 错误 404.3 - 未找到”错误?

    简单的问题 我启动 VS2008 并创建一个新的 WCF 服务应用程序 这将创建一个默认应用程序 并使用一些测试方法来显示它的工作原理 我按 CTRL F5 确实有效 伟大的 但是 它使用 Visual Studio 开发服务器 我不想支持
  • Lambda、封闭变量、显示类、可序列化性和流行层

    我已经为 Compact Framework 实现了一个流行层 包括BinaryFormatter 类似序列化器 我希望能够在适当的情况下序列化编译器生成的类 这些类是由 lambda 和迭代器等产生的 这样如果 例如 lambda 及其封
  • C# 按下按钮时跳出循环

    我有一个简单的 C foreach 循环 如何在按下按钮时跳出循环 它不在backgroundWorker线程中 所以我不能使用backgroundWorker Cancellation Pending 在表单中创建一个布尔标志 将事件处理
  • 如何设置属性选择器的值 Expression>

    我需要使用模式工厂的想法将 Person 类实体中的实体属性 Address 与 FactoryEntities 类中的表达式 linq 相关联 看看这就是我所拥有的并且我想要做的 Address address new Address a
  • 在 C++ 中重用异常处理代码

    我有这两个函数 具有重复的异常处理 其唯一目的是显示错误消息 void func1 noexcept try do task do another task catch const std out of range e show msg O
  • std::atomic 是否会阻止非原子变量对原子变量进行重新排序

    问题很简单 问 如果我有 settings N STNGS used by many threads std atomic
  • 委托:方法名称预期错误

    我正在尝试让以下简单的委托示例正常工作 根据我从中取出的一本书 应该没问题 但我得到了Method name expected error namespace TestConsoleApp class Program private del
  • 枚举和枚举类之间的区别[重复]

    这个问题在这里已经有答案了 谁能解释一下两者之间的区别 enum Type1 type2 And enum class Type1 type2 我经常使用前者 可能太频繁而没有足够的封装 但我从未使用过第二个例子 Thanks enum A
  • ASP.NET MVC - 路由 - 具有文件扩展名的操作

    有没有办法实现调用URLhttp mywebsite myarea mycontroller myaction xml这基本上是 假 请求文件 但结果将是一个为动态创建的文件提供服务的操作操作 我试过这个 context MapRoute
  • 宏中 do { } while(0) 与 ({ }) 的优点?

    Stack Overflow 上有很多关于使用的问题do while 0 在宏中 但这有点不同 我明白为什么do while 0 用于将多行代码包装在宏扩展中 但我经常看到另一种形式 The form 的优点是它是一个表达式并且可以有 返回
  • 如何将 typedef 结构传递给函数?

    此刻我正在努力 void avg everything 但这给了我错误 error subscripted value is neither array nor pointer 当我今天早些时候收到此错误时 这是 因为我没有正确地将 2D
  • GridView,在代码中添加标题行第 2 部分

    这是这篇文章的延续 但添加了完整的代码 ASP NET GridView 在代码中添加标题行 https stackoverflow com questions 19119004 asp net gridview adding header
  • 对 MFC UI 应用程序进行单元测试吗?

    如何对大型 MFC UI 应用程序进行单元测试 我们有一些大型 MFC 应用程序已经开发了很多年 我们使用一些标准的自动化 QA 工具来运行基本脚本来检查基础知识 文件打开等 这些由 QA 小组在日常构建后运行 但我们希望引入一些程序 以便
  • Web 服务无法使用 GAC 中的类型创建类型错误

    遇到一个不寻常的问题时 我似乎喜欢做一些不常见的事情 我有一个复合控件 它检查给定的 Web 服务文件是否存在于我的应用程序的根目录中 如果不存在 它会在标记中创建带有必要指令的文件以进行滚动 如下所示 反过来 它被保存到输出中 完成此步骤
  • 有C语言的解释器吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话

随机推荐

  • 任务未等待完成

    我试图了解等待和异步 所以我编写了这个小测试应用程序 但我预期的情况并没有发生 程序不会等待任务完成 而是继续执行 class Program static void Main string args var task new Task R
  • .net core在linux平台哪里搜索证书

    在 Windows 上 对于 NET Framework 类 我们可以指定sslkeyrepository作为 SYSTEM USER Onlinux NET Core 类在哪里搜索certificates默认情况下以及可能的值是多少ssl
  • 如何将列表转换为数据表[重复]

    这个问题在这里已经有答案了 我有一个包含某些属性的数据列表 我想将该列表数据转换为数据表 如何将列表转换为数据表 添加这个函数并调用它 它会转换列表到数据表 public static DataTable ToDataTable
  • JDBC 将时间戳转换为 NULL(zeroDateTimeBehavior 问题)

    我正在使用 Pentaho 数据集成 表输入步骤 从 MySQL 服务器提取数据 有几个字段的类型为 时间戳 Pentaho 不断抛出错误 因为时间戳为 NULL 0000 00 00 00 00 00 000000 我添加了一个zeroD
  • baseR - 如何在 x 行之后添加空行[重复]

    这个问题在这里已经有答案了 我需要一些帮助来找到一种在每 x 行之后将单个空行添加到数据帧中的 baseR 方法 有人知道我该怎么做吗 非常感激任何的帮助 谢谢 例如 如果 x 64 则在数据框中每 64 行后添加一个空行 DATA df1
  • 动物园管理员:java.lang.ClassNotFoundException:org.apache.zookeeper.admin.ZooKeeperAdmin

    我有一个版本为3 4 10的zookeeper和版本为2 12 0的curator 但版本低于3 5 8的zookeeper对log4j1有严格的传递依赖 我想使用 log4j2 这就是为什么需要更新 Zookeeper 版本 我尝试了不同
  • 意外的令牌导入/导出 - typescript

    我第一次尝试 typescript 对我习惯在 es6 中使用的导入 导出过程感到困惑 这是我试图导出到一个名为的文件中的接口transformedRowInterface ts export interface TransformedRo
  • 使用 python ElementTree 解析 xml 文件中的未知元素

    我希望从一个多用途 xml 文件中提取所有标签名称及其相应的数据 然后将该信息保存到 python 字典中 例如标签 键 数据 值 问题是标签名称和值未知且数量未知
  • 即使 IDP 使用 SAML 成功登录后,获取身份验证对象仍为空

    我已经在我的应用程序中配置了 spring saml 和 spring security 我给出了不同的 url 模式来识别请求 如果我追加 rest在应用程序 URL 中 它将创建具有基本身份验证的 spring security 上下文
  • Java 中子字符串与字符串的比较

    所以基本上 用户输入 2 个字符串 CATSATONTHEMAT AT 我们需要计算第二个字符串在第一个字符串中出现的次数 所以这里的答案是 3 这就是我到目前为止所拥有的 而且它一直在说 线程 主 中的异常 java lang Strin
  • Android中如何实现羽化效果?

    我正在尝试创建一个椭圆形位图 并且需要在边缘周围获得羽毛效果 有谁知道我如何才能实现这一目标 谢谢 您可以将 羽化效果 视为渐变 其中alpha从 100 褪色到 0 Android 提供了径向渐变 http developer andro
  • Haskell:通过 Lens、lens-aeson 和嵌套 JSON 重用 FromJSON 实例

    我一直在使用 Aeson 和镜头包 lens aeson 从核心镜头包迁移而来 并且一直在努力让它们一起工作 作为一个玩具示例 我有一个类型 data Colour Yellow Green Blue 和 FromJSON 实例 insta
  • 扫雷板标签(初级)

    我们得到了一份家庭作业 其中我们得到了一个类似扫雷的样本板 其中有空格而不是数字 板是 String 形式 并且已经放置了地雷 我们需要的是创建一个函数 用数字替换所有空格 数字等于相邻地雷的数量 除了删除所有带零的空格之外 我无法取得任何
  • Credential Providers V2 - 提交后添加代码并检查用户密码

    单击提交按钮并检查用户密码后如何添加我的代码 成功调用 KerbInteractiveUnlockLogonPack 和 RetrieveNegotiateAuthPackage 后 我在 GetSerialization 函数中添加代码
  • Javascript 中的内联 `++` 不起作用

    惊讶地发现这样一行 TextBox val parseInt TextBox val 不管用 我做了一些测试 得出的结论是内联 不起作用 在整个 Javascript 中 或者只是在我的示例中 这是一个用三段代码进行测试 http jsfi
  • Python Matplotlib 点颜色

    我一直在研究使用传感器绘制的温度图 并想知道如何构建轮廓 热图或基于 cmap 编辑点的颜色 我有以下非常基本的情节 import matplotlib pyplot as plt import matplotlib image as mp
  • 如何查看Azure应用服务内存使用情况?

    我们通过云服务提供商 CSP 订阅了 Azure 这对我们在 Azure 中获取和查看的内容造成了一些限制 尽管如此 我们还是可以看到每个CPU和内存的使用情况应用服务计划 我们如何才能看到特定的相同内容应用服务根据计划 如果我发现计划的
  • 无法在 Ajax post 请求中创建新的 Django 模型对象

    这是一种 我已经在调试这个问题上损失了 x 小时 的问题 问题 以下 jQuery js 代码在单击按钮时启动 POST 请求 btn create tag click function evt post tag createAjax ta
  • 获取两个字符串之间的文本 Regex VB.Net

    我对正则表达式确实有严重的问题 我需要获取两个字符串之间的所有文本 在这种情况下 字符串是 span class user user role registered member and span 我用谷歌搜索了很多问题 其中一些在 Sta
  • 哪个进程拥有给定的端口(Linux 内核)?

    我正在为 Linux 编写一个简单的应用程序层防火墙 目前没什么特别的 只是我需要的东西 由于 iptables 的所有者模块不够 我决定使用 libnetfilter queue 来实现 在我的防火墙 C C 应用程序 中的某个时刻 我需