身為一個工程師,當然不能無視這狀況,就稍微嘗試了一下,
使用指令 ftp ,結果卻出現了以下訊息:
ftp: Can't connect to `[ip address]': Connection refused
ftp: Can't connect to `[ip address]
接下來,為了求證問題發生原因,做了一些基本調查,
在此留下一些步驟與紀錄,希望能幫助到其他遇到相似問題的人。
(備註:目前環境是 Mac (linux), 如果用 Windows 要另外找對應指令。)
首先,第一步就是要看伺服器會不會回應,是死是活。
ping 這個指令相信大家應該都知道,最簡單的就是:
ping [ip address]
如果遠端伺服器沒有關閉回應,則會得到下面正常的結果:
64 bytes from [ip address]: icmp_seq=0 ttl=63 time=2.819 ms
bytes, TTL, time 等資訊代表的意義就不在此詳述。
(p.s. 沒有回應也不代表沒有活著喔,有可能是沒有開啟 ICMP)
這樣表示伺服器有活著,接下來,不管有沒有活著,
第二步就是檢查遠端 port 是否能正常連線。
第二步就是檢查遠端 port 是否能正常連線。
telnet 個指令相信大家也多少都用過,稍微加上連線埠號就是:
telnet [ip address] [port number]
假設我現在要查 FTP, 就是 telnet [ip address] 21 這樣的指令。
結果得到了相同的回應:
telnet: connect to address : Connection refused
telnet: Unable to connect to remote host
表示目前無法透過 21 這個連線埠,連線到指定的 IP 位置。
基本上到這邊,就已經知道可能需要朝向連線埠未開啟(防火牆),
或是服務尚未啟動這兩個方向去追查了。
或是服務尚未啟動這兩個方向去追查了。
為了確認實際狀況,這邊採用了第三個指令 nmap
(預設是沒有安裝的,找不到指令的請記得 brew install nmap)
nmap [ip address]
指令基本款就可以拿到全部的資訊:
Nmap scan report for [domain name]( [ip address])
Host is up (0.0100s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
80/tcp open http
3306/tcp open mysql
類似這樣,從中我可以再度確認,21, 22, 23 port 與服務都看不到。
如果要更精準地查看某一個已知的特定埠號,可以用以下指令:
nmap -A [ip address] -p [port number]
在這邊我針對 port 21 做查詢,得到以下結果:
Nmap scan report for [doman name]( [ip address])
Host is up (0.0049s latency).
PORT STATE SERVICE VERSION
21/tcp closed ftp
這也是另外一種確認方式,表示以我的環境來看,FTP 是無法使用的。
接下來就只能請有權限進入伺服器的相關人員,查看伺服器狀況了。
以上經驗分享,希望能對大家有幫助。(笑)
=============== 我是分隔線 ===============
補充說明一下,這邊請儘量以實體 ip 做檢測,
避免因為 DNS 設定產生的各種狀況,導致判斷錯誤。
如果要另外追查 DNS 相關資訊,可以使用 nslookup 等相關指令。
沒有留言:
張貼留言