我在我的fedora机器上有一个应用程序,它向服务器发送SIP TCP请求.应用程序选择随机源端口来发送请求.有什么方法可以强制应用程序使用特定端口(比如说15000).我可以阻止应用程序使用所有其他端口(然后它必须选择一个源端口)吗?
请注意,我无法更改SIP应用程序的代码以使用套接字的预定义源端口.
解决方法:
您可能需要查看命令行工具socat来模拟所有类型的连接(TCP,UDP等).这里有一个非常广泛的socat示例列表,标题为:Examples for using socat (and 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,或者在配置文件中有一行(如果有的话)就可以执行此操作.
我将看看这个特定工具的用法,以确定它提供的功能,或者如果有的话,可以查看其手册页.
标签:linux,tcp,fedora
来源: https://codeday.me/bug/20190815/1662327.html