網路常見軟體、協定(FTP、TELNET 等)
網路常見軟體、協定(FTP、TELNET 等)
Hello Guys, I’m LukeTseng. 本篇將來介紹 ip-address 跟 mac-address 的原理,若本篇文章有誤,歡迎各位指正,若你也喜歡這篇文章,不妨按下愛心跟追蹤我的個人頁面吧!
另外本篇文章主要針對上課內容製作筆記,斟酌參考~
FTP(File Transfer Protocol)
FTP(File Transfer Protocol)直接翻譯就是檔案傳輸協定,專門用來在兩台電腦之間上傳和下載檔案。
假設你在學校寫好程式作業,想傳到家裡的電腦繼續改,就可以用 FTP。
FTP 使用明文傳輸,意思就是資料沒有加密。因此現代比較少單獨使用 FTP,反而搭配 SSH 使用 SFTP(Secure FTP)來加密傳輸。
而 FTP 採用主從式(Client-Server)架構,也就是客戶端對到一台伺服端。有一台主機作為 FTP 伺服器(用來儲存檔案),客戶端則用電腦(用戶端)連線並操作這台伺服器。
接下來 FTP 雙通道設計不像 HTTP 只用一個連線,FTP 同時開啟兩個 TCP 連線:
- 控制通道(port 21):負責傳送指令與回應(如登入、切換目錄、開始下載/上傳)。
- 資料通道(port 20 / 動態 port):只用來真正傳檔案的資料。
FTP 傳輸流程
- 建立連線:用戶端啟動 FTP 軟體,輸入伺服器位址、帳號和密碼,連到 FTP 伺服器。
- 認證登入:輸入正確帳密後,登入成功。
- 目錄導航:可透過 cd(切換目錄)、ls(檢視目錄)等指令查找和切換資料夾。
- 檔案操作:
- 上傳(put 指令)
- 下載(get 指令)
- 結束連線:當資訊傳輸完成,送出 quit 指令斷開連線。
FTP 使用方式
- 圖形化介面:如 FileZilla、WinSCP 等軟體,透過拖拉可直接操作檔案。或是部分瀏覽器有支援 FTP,但要打指令,經過實測發現 chrome 可以做到。
- cmd 操作:
開啟 cmd,輸入 ftp [伺服器網址]([] 不用打)。
若想要試試看的話,以下這個網址可以測試 ftp 功能:https://www.smartftp.com/zh-tw/support/kb/2779
假設我輸入 ftp ftp.cs.brown.edu,會出現以下畫面,提示你輸入帳號:

輸入完後會有 ftp> 提示可輸入指令:

接下來就可以試試看啦:

在登入以後,可以用:
ls:列出檔案cd [目錄名]:切換目錄get [檔名]:下載檔案put [檔名]:上傳檔案bye或quit:離開
TELNET
TELNET 是最早期的遠端連線技術,使用 TCP port 23。讓你可透過網路連線到遠端電腦,並在上面執行指令。
他同樣也是採用主從式架構,電腦執行 TELNET 軟體(用戶端),連線到遠端伺服器(TELNET 伺服器,通常開啟 TCP port 23)。
在 TELNET 用戶端連到伺服器後,伺服器可能會傳送歡迎訊息。
接下來還會做身份驗證,請求用戶端送出帳號密碼(都是明文,沒加密的)。
在上面輸入的每個字元、按鍵,TELNET 都會即時送到遠端伺服器。伺服器處理命令後,把結果回傳,會在電腦上看到結果。
TELNET 預設用 ASCII Code,但可以協商其他編碼(如 UTF-8),如果兩端設定不同,會出現亂碼問題。
在安全性問題上,TELNET 所有資料都是用明文傳送,包括輸入的帳號、密碼和指令。只要中途網路被監控,就會被第三方竊聽。所以後來都由 SSH(Secure Shell)來取代了。
如何用 TELNET?
在 Windows 開啟 TELNET 的功能可至:https://unauna1129.medium.com/windows-%E9%96%8B%E5%95%9Ftelnet%E5%8A%9F%E8%83%BD-484e9f03f9b4
同樣打開 cmd,連線指令打:telnet [伺服器 IP] [port,預設23]
然而因為現在完全沒人再用這東西了,所以也成為時代的眼淚,接下來就不會實際操作,而是稍作說明。
常見指令流程:
open [伺服器位址]:建立連線quit:離開 TELNET- 直接輸入命令操作遠端主機(如 Linux 指令:
ls, cd, cat...)
而 TELNET 還能用來測試伺服器端口(如 Web 服務是否活著),直接用 telnet 指令,輸入 IP+port,觀察回應即可。例如:
1 | telnet www.example.com 80 |
SSH(Secure Shell)
SSH 基本上就是 TELNET 的替代版本,因為 SSH 安全,有個 Secure。
SSH(Secure Shell,安全殼層協定)是一種可以安全遠端連線與操作伺服器的網路協定,在類 Unix 系統中應用最廣泛,也支援在 Windows、macOS 及多種設備。
SSH 為所有資料傳輸提供加密、身分驗證和完整性保護,廣泛應用於遠端維運、檔案傳輸、隧道加密等。
SSH 預設用 TCP port 22。
SSH 運作原理
- 非對稱式加密:Asymmetric Encryption(公鑰 / 私鑰)
當連線伺服器時,伺服器先送出「公鑰」。
用戶端用公鑰加密敏感資料(如登入密碼或用來協議的對稱金鑰),只有伺服器能用「私鑰」解開這些資料。
主要目的是驗證伺服器身分、協商會話(Session)金鑰。
- 對稱加密(Session Key)
連線後,雙方用協議產生的「會話(Session)金鑰」,
所有後續資料通訊都用對稱加密(如 AES、ChaCha20)。
- 資料完整性與驗證
利用雜湊演算法(如 SHA-2、HMAC)確保資料沒被竄改,也會反覆校驗封包。
SSH 使用
一般來說格式都長這樣:
1 | ssh [username]@[ip address] |
第一次連線時需要輸入密碼。
若使用公鑰認證登入的話(無密碼),則是以下流程:
會先在本機端生成金鑰:
1 | ssh-keygen |
會得到 ~/.ssh/id_rsa(私鑰)與 ~/.ssh/id_rsa.pub(公鑰)。
然後將這組金鑰傳給 server:
1 | ssh-copy-id tom@192.168.1.10 |
之後使用私鑰就可安全登入,不用每次都要輸密碼。
SFTP
SFTP(SSH File Transfer Protocol),稱為 SSH 檔案傳輸協定,是一種基於 SSH 協定的安全檔案傳輸方式。實際上就是 FTP 的安全版啦。
有什麼差異呢?除了安全以外。
SFTP 的 Port 全都使用 22,而連線通道從原本的 FTP 的雙通道,降到 1 通道,就這樣。
而 SFTP 的連線語法跟 SSH 是一樣的:
1 | sftp user@server.example.com |
若用的不是標準的 Port,可額外寫:
1 | sftp -P 2222 user@server.example.com |
而一旦進入到互動式介面時,操作就跟原本的 FTP 是一樣的了。
總結
FTP(File Transfer Protocol)
FTP 是早期用於兩台電腦間傳送檔案的協定,採主從式架構,使用明文傳輸,因此不安全。
採雙通道設計:
- 控制通道:port 21,用於指令與回應。
- 資料通道:port 20 或動態埠,用於傳輸檔案。
基本流程包含:建立連線 → 登入 → 瀏覽目錄 → put/get 上傳下載 → quit 離開。
可用圖形化工具(FileZilla、WinSCP)或 cmd 操作。
由於明文不安全,現代多以 SFTP 取代。
TELNET
TELNET 是早期的遠端文字介面登入技術,使用 TCP port 23。
採主從式架構,所有資料(包含帳密)皆為 明文,容易遭竊聽,因此已被淘汰。
用法為:telnet [IP] [port]。
除遠端登入外,也常用來測試伺服器埠是否開啟。
已全面被 SSH 取代。
SSH(Secure Shell)
SSH 是安全版的 TELNET,使用 TCP port 22。
提供加密、身份驗證與資料完整性保護,是現代標準的遠端連線方式。
運作方式:
- 非對稱加密(公私鑰)用於身分驗證與協商金鑰。
- 對稱加密(Session Key)負責後續傳輸。
- 雜湊驗證確保資料未被竄改。
登入方式:ssh user@ip。
也可使用 key pair(ssh-keygen + ssh-copy-id)達成免密碼安全登入。
SFTP(SSH File Transfer Protocol)
SFTP 是 FTP 的安全版本,基於 SSH 建立,使用 單一 port 22。
語法與 SSH 類似:sftp user@server。
進入後的 put/get/ls 指令與 FTP 類似。
參考資料
Telnet,Mstsc,SSH,FTP之间的比较和区别 - 上善若泪 - 博客园





