强制应用程序使用 Fedora 机器上的特定端口

强制应用程序使用 Fedora 机器上的特定端口

我的 Fedora 机器上有一个应用程序,用于向服务器发送 SIP TCP 请求。应用程序选择随机源端口来发送请求。有什么方法可以强制应用程序使用特定端口(例如 15000)。也许我可以阻止应用程序使用所有其他端口(然后它必须选择一个源端口)?

请注意,我无法更改 SIP 应用程序的代码以使用套接字的预定义源端口。

答案1

您可能想看看socat用于模拟各种连接(TCP、UDP 等)的命令行工具。这里有一个相当广泛的socat示例列表,标题为:使用 socat(和 filan)的示例

例子

$ socat - TCP:www.google.com:80 | head
GET /
HTTP/1.0 200 OK
Date: Tue, 26 Aug 2014 13:22:09 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Set-Cookie: PREF=ID=31cc21da7fe930ae:FF=0:TM=1409059329:LM=1409059329:S=w1SmnrWq9nT2Ear-; expires=Thu, 25-Aug-2016 13:22:09 GMT; path=/; domain=.google.com
Set-Cookie: NID=67=PU8zfz-m-jwq17Jm2aixtDA1zi4H9JLpp6fXYAMS9V8xWpjBquGtng88Lf8wO-n8dUTjtneA2zon405GDYiqzsss_-HT44S5WgExWu7IrsEcqfBeguWB_oUEqlblJICL; expires=Wed, 25-Feb-2015 13:22:09 GMT; path=/; domain=.google.com; HttpOnly
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
Server: gws
X-XSS-Protection: 1; mode=block
2014/08/26 09:22:09 socat[28871] E write(1, 0x7f1c063ad9b0, 1418): Broken pipe

上面显示了我在端口 80 上连接到 www.google.com 上的 Web 服务器,并向其发送GET /.这是您的浏览器在执行相同操作时会发出的标准查询。

至于强制您的客户端使用特定端口,应该是可能的,我们需要知道这是什么应用程序的具体信息。大多数情况下,服务守护进程都包含一个 cli 开关,例如,-p 5000或者它们的配置文件(如果有的话)中有一行来执行此操作。

我会看一下这个特定工具的用法,以确定它提供哪些功能,或者查看它的手册页(如果有)。

相关内容