首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在装入应用程序linux中修改源端口

如何在装入应用程序linux中修改源端口
EN

Stack Overflow用户
提问于 2014-06-11 14:01:14
回答 2查看 996关注 0票数 0

我需要修改挂载应用程序,这样我就可以指定源端口为一个特定的端口,而不是操作系统随机生成的端口。

例如,假设我们试图在ip 10.0.0.55的计算机中挂载文件系统,而我们要执行挂载的计算机是10.0.0.40

因此,当您执行命令时,目标端口(即端口10.0.0.55正在侦听)很好,但是当您执行命令时,源端口是由os随机生成的,也就是说,端口10.0.0.55用于回复另一台pc,即pc位于路由器后面,因此必须有一个特定的端口。

我尝试过修改函数bindresvport()调用的地方并将该套接字绑定到特定端口的任何想法,但它似乎不起作用

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-03 12:57:11

我已经解决了这个问题,答案是创建一个新的sockaddr,为该结构打开一个套接字,将其绑定到您想要的端口,然后调用连接到挂载客户端正在使用的结构以及您的套接字。这样,您就可以强制内核不为您选择src端口。请注意,当您要向服务器(您试图挂载的文件系统在哪里)请求文件句柄时,您必须做同样的事情。在挂载结束时,客户端从内核调用挂载函数,它再次为src端口设置一个随机端口,所以如果您也想修改内核,这种方法是很好的。

当我提出这个问题时,也许我没有很好地解释自己,但我想要完成的是从计算机B安装一个文件系统。计算机A在路由器后面,计算机B在路由器的外部网络上,或者类似于isp网络。

例如

计算机A将让said 192.168.1.99路由器(网关) 192.168.1.1路由器万叶10.0.0.26计算机B 10.0.0.55

因此,为了让计算机B与计算机A对话,必须在路由器中打开一个端口,以允许流量通过。当您发出挂载时,src端口将在512-1023范围内随机生成,并且恰好是计算机B发送信息到的相同端口。我通过打开路由器上的范围来解决这个问题,这不是我修改内核的一个选项。我希望这能帮到@mikea

票数 0
EN

Stack Overflow用户

发布于 2014-06-11 14:12:09

假设这是NFS挂载,您可以使用以下文档中的指导方针设置端口:

Guide/s2-nfs-nfs-firewall-config.html

诚然,这是为红帽,但应该很容易适应其他变体。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24164925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档