netcat 無法連線到遠端主機

netcat 無法連線到遠端主機

我在 DigitalOcean 論壇上問過這個問題,但沒有聽到任何回應。我有一個運行 Debian 8.1 x64 的 Droplet,我正在嘗試建立一個基本的 netcat 連線(我在本機和遠端電腦上都使用 nc.openbsd)。我透過 ssh 進入我的伺服器並輸入

nc -l -v 5555

然後回來

Listening on [0.0.0.0] (family 0, port 5555)

然後我轉到本機並輸入

nc -v [domain.com] 5555

卻再也沒有收到任何回覆。輸入文字不會導致它出現在另一端。我已經在透過 LAN 連接的本機電腦上嘗試過這些確切的命令,並且工作正常。此外,即使在偵聽連接埠時,nmap 掃描也會將連接埠傳回為filtered.

有誰知道這可能是什麼原因造成的?在過去 24 小時內,我一直在查看每個教學並搜尋盡可能多的網站,但沒有成功。我猜這是一個簡單的修復,但我沒有輸入正確的搜尋字詞。

答案1

原因是防火牆。無論是在您的 Droplet 上還是在您的本機電腦上(您可以在 LAN 內使用此連接埠並不意味著允許外部連線使用它)。您可以使用以下命令來消除 Debian Droplet 的防火牆:

iptables -I INPUT -p tcp --dport 5555 -j ACCEPT
iptables -I OUTPUT -p tcp --sport 5555 -j ACCEPT

這為這個連接埠戳了一個洞,忽略了大多數其他 iptables 規則 - 特別是在 INPUT 和 OUTPUT 過濾器鏈中很可能出現的位置。

或者,如果 Debian 8.1 在防火牆上,請執行以下操作防火牆的事情

如果連接埠不是 5555,例如常見的 IRC 或 torrent 連接埠或其他端口,它實際上可能在資料中心被封鎖。不過,我不能說 DigitalOcean 是否做到了這一點。

相關內容