2010-12-10 46 views
0

有些人使用防火牆對他們的筆記本電腦,不僅阻礙了他們自己的當地傳入端口(除了那些他們需要爲他們的應用程序),而且還阻止消息,除非他們是從鮮明的端口號發出。我們正在談論一個正在監聽UDP廣播的本地UDP服務器。 問題是遠程客戶端使用一個隨機端口(1024),除非它告訴防火牆接受它,否則它將被阻止。防火牆中的遠程端口阻塞?

令我百思不解的是,據我從我的程序使用套接字知道的是,通常客戶會從操作系統的端口號,而只有當你有一個服務器,您將套接字綁定到不同的港口,對嗎?

在我的文獻中,在網上的教程和代碼片段中,我還沒有發現任何線索,即客戶端應該使用固定端口號。

那麼現實如何呢?我可能錯過了一點? 是否有客戶端應用程序使用固定端口? 實際上是有用阻止遠程端口與防火牆? 如果是的話,這會給你什麼樣的附加安全級別?

感謝您事先啓蒙......

回答

0

儘管默認API允許網絡堆棧爲客戶端連接選擇本地端口,但客戶端可能會出於各種原因指定固定端口。

  • 某些規範(FTP)爲客戶端指定一個固定端口。大多數服務器不關心客戶是否正確。
  • 某些客戶端使用固定的端口池從LAN出口到Internet。這允許防火牆規則更完全地鎖定出站流量。
  • 源端口有時被用作弱類型的「通過默默無聞的安全性」。
+0

感謝Darron。給你一個更詳細的圖片:客戶端是嵌入式設備,筆記本電腦是從服務部門偶爾連接到設備。我正在寫客戶端的軟件。 所以我擔心的是,我必須以某種方式告訴我的套接字類綁定到一個我不願意做的端口號,因爲我覺得這很不尋常。或者我需要告訴OS /網絡堆棧來縮小可用端口的範圍。 – minastaros 2010-12-11 11:14:24

0

你總是得到一個隨機地址和/或端口時,沒有明確已經在發送之前綁定到一個。

守護進程是通常綁定到固定端口,以便:

  • 你可以不必嘗試所有可能的端口或利用二次分解實際上與他們聯繫
  • (記得SUNRPC端口映射廢話?)
  • ,因爲如果TCP套接字未綁定到端口IIRC,則不允許偵聽()。

是否有客戶端應用程序圍繞使用固定端口?

有些可以像BIND9那樣配置。

用於阻止遠程端口與防火牆?

不,因爲你的同伴可以選擇他的任何端口。阻止他,你會失去一個客戶,可以這麼說。

+0

關於服務器/守護進程,很明顯,如何連接到它們。 ;-)好吧,我剛剛讀了一些關於「端口敲門」的文章,非常有趣的東西,但似乎只適用於非常專業化的客戶端/服務器對。 我只是想知道爲什麼點「固定端口的客戶端套接字」沒有在編程教程中觸及。如果我知道這是「網絡世界」中的一個選項,我不會感到驚訝。這就是爲什麼我問是否完成了。 (請參閱我寫給Darron的回答的評論) – minastaros 2010-12-11 11:45:07