概述
SSH 隧道透過本地埠、遠端埠或動態埠轉發,可在各種網路情境下使用。這是增強資料安全性和繞過網路限制的強大方法。
主要特點
- **安全通訊**:所有流量都透過加密的 SSH 連線傳輸。
- **繞過防火牆**:協助在受限的網路環境中存取特定服務。
- **遠端服務存取**:從本地安全地存取遠端網路的服務。
- **資料加密**:增強在公共網路傳輸資料時的安全性。
主要選項 (透過 SSH 命令進行隧道設定)
SSH 隧道是使用「ssh」命令的特定選項來實現的。以下是主要的埠轉發選項和相關選項。
本地埠轉發
遠端埠轉發
動態埠轉發 (SOCKS 代理)
其他實用選項
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`ssh-tunnel` 執行命令。
請將上述選項組合在一起,與 AI 一同虛擬執行命令。
使用範例
SSH 隧道的多種應用情境範例。
本地埠轉發 (存取網頁伺服器)
ssh -L 8080:192.168.1.100:80 user@remote_server
透過本地的 8080 埠,存取遠端伺服器 (remote_server) 內部 192.168.1.100:80 的網頁伺服器。
遠端埠轉發 (暴露本地服務)
ssh -R 8080:localhost:80 user@remote_server
允許透過遠端伺服器 (remote_server) 的 8080 埠存取本地網頁伺服器 (localhost:80)。
動態埠轉發 (設定 SOCKS 代理)
ssh -D 1080 user@remote_server
將本地的 1080 埠設定為 SOCKS 代理,透過該埠將所有流量隧道到遠端伺服器 (remote_server)。在網頁瀏覽器設定中將 SOCKS 代理設為 localhost:1080 即可使用。
在背景維持隧道
ssh -Nf -L 8080:localhost:80 user@remote_server
在背景執行本地埠轉發,並且不執行遠端命令。即使關閉終端機,隧道也會維持。
安裝
「ssh-tunnel」本身並非獨立命令,而是利用「ssh」命令的埠轉發功能的概念。「ssh」命令是大多數 Linux 發行版預設安裝的 OpenSSH 客戶端套件的一部分。
- 預設安裝情況: 大多數 Linux 系統都預裝了 OpenSSH 客戶端。
- 檢查安裝: 可以使用 `which ssh` 或 `ssh -V` 命令檢查是否已安裝。
- 安裝命令 (Debian/Ubuntu): `sudo apt update && sudo apt install openssh-client`
- 安裝命令 (CentOS/RHEL): `sudo yum install openssh-clients`
提示與注意事項
有效使用 SSH 隧道的提示和注意事項。
實用提示
- **持續隧道**:可以與 `screen` 或 `tmux` 等終端機多工處理器一起使用,或建立 `systemd` 服務,以便在背景持續執行隧道。
- **SSH 設定檔**:將隧道設定儲存在 `~/.ssh/config` 檔案中,可以簡化複雜的命令。例如,可以在 `Host mytunnel` 段落中新增 `-L` 選項。
- **自動重連**:可以使用 `autossh` 等工具,設定在 SSH 隧道斷開時自動重連。
注意事項
- **安全性**:請注意,用於隧道的埠不要與其他服務衝突,不必要的埠轉發可能會增加安全風險,因此請僅在需要時使用。
- **防火牆設定**:需要確認本地或遠端伺服器的防火牆是否允許 SSH 連線和用於埠轉發的埠。
- **除錯**:如果隧道無法正常工作,請使用 `ssh -v` 選項查看詳細的除錯訊息,並使用 `netstat -tuln` 或 `lsof -i :<埠號>` 命令確認埠是否正確監聽。