2011-05-05 52 views
0

我有一个传统源文件,它描述了RPC文件的扩展名为.x的文件,该文件被提供给rpcgen为协议生成必要的存根文件。但是,当前在生成的存根文件中,RPC客户端可以自由地连接(或侦听)任何端口。因为在生成的文件,我看到下面的如何指定客户端仅从一系列本地端口连接到RPC语言的服务器

transp = svctcp_create(RPC_ANYSOCK, 0, 0); 

我是一个新手,RPC和相关的东西,但无论如何试图修改它....因为我知道服务器的特定端口上侦听,我推断上述行是什么导致客户端从任意端口连接。现在我知道如何解决它..我将不得不尝试打开一堆套接字,其端口将在给定的端口范围内,直到我成功并将它作为第一个参数传递给svctcp_create ... 但是这将不得不在rpcgen生成的文件,这并不让我感到很舒服。我想修改“.x”文件以便一劳永逸。有人可以帮助我吗? 谢谢, Sunil

回答

0

为什么你需要限制本地端口范围? TCP网络API的任何层都不支持这一点。客户端端口范围有时被不知道实现不可行性的netadmins指定为防火墙规则,以及认为他们正在增加安全性的人,他们也认为它们是错误的。你的情况是什么原因?

+0

问题是我们有我们自己的软件许可证管理器。它使用RPC实现。我们的一位客户说,由于客户端试图从随机端口连接到许可证服务器,因此系统出现故障。这显然是从系统管理的角度来说是一个禁忌。因为他们应该设置一个防火墙来阻止客户端从任意端口连接。但从你所说的看来,系统管理员似乎无法强制执行此客户端端口范围,并且问题在别处。你有评论吗?谢谢 – 2011-05-07 04:30:43

+0

@Sunil S Nandihalli:正如我所说。我没有说管理员*不能*执行这个规则,我说他们*不应该。*问题在这里。问题是*为什么*你的netadmins施加了这个规则?它不会增加任何安全性,并且会造成实施不可行性。让他们删除规则。让他们停下来,你会感觉更好。 – EJP 2011-05-07 08:21:00

+0

oh ic我认为,澄清事情感谢您的回应.. – 2011-05-17 08:07:13