2011-10-30 62 views
1

我想連接到一個具有多個偵聽端口的linux服務器,並且我的連接失敗(根據我的客戶端),因爲「主機關閉了」...但是,我知道主機已啓動。如何查看機器是否嘗試連接到我的(linux)服務器?

所以有一個腳本或日誌文件,我可以改變/檢查,看看被拒絕的連接在服務器端......更好,看看爲什麼連接失敗?

一般來說,我發現連接失敗可能會產生誤導性或模棱兩可的錯誤信息......所以我認爲這將徹底解決我的連接調試活動,以便我能夠直接測試終點拒絕實際服務器端的連接,而不是基於客戶端錯誤消息進行猜測。

這是關於hadoop的。

+1

您是否嘗試過使用數據包嗅探器,例如tcpdump的? –

回答

1

這聽起來像是防火牆問題。如果您使用的是Ubuntu,請運行sudo ufw disable並嘗試再次連接。如果可以連接,則再次啓用ufw:sudo ufw enable並添加一條規則,以允許您想要的端口上的傳入連接。

https://help.ubuntu.com/community/UFW

+0

嘗試過。沒有工作,但很好的建議。 – jayunit100

1

嘗試iptables的,例如:

iptables -I INPUT -m state --state NEW -j LOG --log-prefix "New Connection: " 
iptables -I OUTPUT -m state --state NEW -j LOG --log-prefix "New Connection: " 

再看看服務器日誌 - 從殼稱之爲 'dmesg的'。

+0

謝謝。什麼是iptables在做什麼?它只是看到每個網絡接口上的一切嗎? – jayunit100

2

使用tcpdump。

這個網站有很多的例子,其中一個會適合您的需求 - >http://linux.byexamples.com/archives/283/simple-usage-of-tcpdump/

我會先從:

tcpdump -i eth0 tcp port XXXX 
+0

我收到「tcpdump -w test.pcap -i eth10 port 50070」的語法錯誤...? – jayunit100

+0

@jayunit100。您應該在偵聽服務器上運行此命令。看着你的命令,我看到2個異常值。 'eth10'接口(如果您正在網絡網關服務器上進行測試,您可能會使用較高號碼的接口,通常它會是eth0或eth1)。另外,端口號非常高。基本上它在'DYNAMIC'範圍內,通常是OS分配給客戶端連接的端口。 –

+0

「由OS分配給客戶端連接的端口」。 - - 那是什麼意思 ?謝謝...這是幫助我...... – jayunit100

相關問題