アプリケーションが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のウェブサーバーに接続して送信することを示していますGET /。これは、同じ操作を実行したときにブラウザによって発行される標準クエリです。

クライアントが特定のポートを使用するように強制する場合は、これが可能であり、これがどのアプリケーションであるかを具体的に知る必要があります。ほとんどのサービスデーモンには、-p 5000これを実行するためのcliスイッチまたは設定ファイル(存在する場合)の行が含まれています。

この特定のツールの使い方を見て、それが提供する機能を決定するか、そのツールがある場合はマンページを確認します。

関連情報