免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 5875 | 回复: 25
打印 上一主题 下一主题

请问在如何在NF_LOCAL_IN获得TCPv4包的目标(本机)端口? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-27 16:05 |只看该作者 |倒序浏览
请问在如何在NF_LOCAL_IN获得TCPv4包的目标(本机)端口?因为本机的TCP服务是监听并fork新的进程的,所以在netfilter里面拿到的只是监听端口而不是真正的端口。

如果不行,有什么办法获得呢?目标是尽量减少对内核的改动。谢谢!

论坛徽章:
0
2 [报告]
发表于 2008-06-29 09:12 |只看该作者
>>因为本机的TCP服务是监听并fork新的进程的,所以在netfilter里面拿到的只是监听端口而不是真正的端口。

监听端口也是真正的端口

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
3 [报告]
发表于 2008-06-29 11:36 |只看该作者
在LOCAL_IN这个hook点上,直接察看数据包的TCP端口,不就可以看到了么。

论坛徽章:
0
4 [报告]
发表于 2008-06-30 11:48 |只看该作者
我的意思是说要拿到fork以后的端口, 因为我的程序要对不同的连接进行不同的地址修改。如果用监听端口,就没办法分辨了。另外HOOK里面拿到的TCP端口是监听端口而不是fork以后的端口,所以没用。

论坛徽章:
0
5 [报告]
发表于 2008-06-30 11:57 |只看该作者
>>因为我的程序要对不同的连接进行不同的地址修改。

怎么改的?

>>另外HOOK里面拿到的TCP端口是监听端口而不是fork以后的端口,

fork以后的端口?是什么?

论坛徽章:
0
6 [报告]
发表于 2008-06-30 13:34 |只看该作者
我相信楼主肯定混淆了某些概念.

论坛徽章:
0
7 [报告]
发表于 2008-07-01 16:43 |只看该作者
查了一下,TCP监听端会为每一个连接fork()一个新的套接字,可是没有提到会使用一个新的端口。是我记错了。我以为会使用一个新的端口。

如果这样的话,我想在netfilter里面分辨不同的TCP连接改怎么办呢?我的程序要对不同的连接进行地址修改,有点像本地的NAT。 谢谢了!

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
8 [报告]
发表于 2008-07-01 18:34 |只看该作者
原帖由 piaobo79 于 2008-7-1 16:43 发表
查了一下,TCP监听端会为每一个连接fork()一个新的套接字,可是没有提到会使用一个新的端口。是我记错了。我以为会使用一个新的端口。

如果这样的话,我想在netfilter里面分辨不同的TCP连接改怎么办呢?我的 ...


我猜想你是想分辨具体的数据报的功能,然后采取相应处理这样一个需求吧。如果这样,你从判断数据报的一些特殊关键字或者域来做相应处理不就行了,你前面说到的端口不就相当于你的一个判断条件吗?

论坛徽章:
0
9 [报告]
发表于 2008-07-02 12:08 |只看该作者
原帖由 dreamice 于 2008-7-1 18:34 发表


我猜想你是想分辨具体的数据报的功能,然后采取相应处理这样一个需求吧。如果这样,你从判断数据报的一些特殊关键字或者域来做相应处理不就行了,你前面说到的端口不就相当于你的一个判断条件吗?


我是要分辨不同的TCP连接,可是这些连接都是连到本地同一个监听端口上的。原来的设计是使用本地端口作为哈希表的索引,这样查表效率也比较高,可是这种设计对于fork出来的连接就不管用了。 另外,我本来是可以使用远程地址+远程端口作为关键字的,可是因为我做的是移动IP方面的东西,也就是说远程IP地址在一段时间以后可能会被分配给不同的节点,如果它们再使用同样的端口,那么我这边就有问题了。虽然这种情况的概率比较小,但也不可以忽略。

所以我想知道的是在网络层有没有可能分辨这类fork出来的连接呢?

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
10 [报告]
发表于 2008-07-02 14:24 |只看该作者
远程地址+端口,作为这一条连接来说,它是不会改变的,如果改变,那这条连接也就断了,需要重新建立。即使你说的假如可以使用本地端口作为判断,那远程地址或者端口变了,你这条连接也得重新建立。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP