您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么設置SSH 隧道”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么設置SSH 隧道”吧!
SSH 端口轉發有三種類型:SSH轉發對于傳輸使用未加密協議(如VNC或FTP),訪問地理限制內容或繞過中間防火墻的服務的網絡數據非常有用。 基本上,您可以轉發任何TCP端口并通過安全的SSH連接隧道傳輸流量。
本地端口轉發。 - 將連接從客戶端主機轉發到 SSH 服務器主機,然后轉發到目標主機端口。
遠程端口轉發。 - 將端口從服務器主機轉發到客戶端主機,然后轉發到目標主機端口。
動態端口轉發。 - 創建 SOCKS 代理服務器,允許跨一系列端口進行通信。
在本文中,我們將討論如何設置本地,遠程和動態加密的 SSH 隧道。
本地端口轉發
本地端口轉發允許您將本地 (ssh 客戶端)計算機上的端口轉發到遠程 (ssh 服務器)計算機上的端口,然后將其轉發到目標計算機上的端口。
在這種類型的轉發中, SSH 客戶端偵聽給定端口,并將與該端口的任何連接隧道連接到遠程 SSH 服務器上的指定端口,然后該端口連接到目標計算機上的端口。目標計算機可以是遠程 SSH 服務器或任何其他計算機。
本地端口轉發主要用于連接內部網絡(如數據庫或 VNC 服務器)上的遠程服務。
在 Linux , macOS 和其他 Unix 系統中創建本地端口轉發將 -L 選項傳遞給 ssh 客戶端:
ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION:DESTINATION_PORT [USER@]SSH_SERVER
使用的選項如下:
[LOCAL_IP:]LOCAL_PORT - 本地機器的 ip 和端口號。當 LOCAL_IP 省略 SSH 客戶端會連接本地主機。
DESTINATION:DESTINATION_PORT - 目標計算機的 IP 或主機名和端口。
[USER@]SERVER_IP - 遠程 SSH 用戶和服務器 IP 地址。
LOCAL_PORT 可以使用任何大于 1024 的端口號。端口號小于 1024 特權端口,只能由 root 用戶使用。如果您的 SSH 服務器正在偵聽 22 以外的端口(默認值),請使用該 -p [PORT_NUMBER] 選項。
目標主機名必須可從 SSH 服務器解析。
假設您在內部(專用)網絡上的計算機 db001.host 上運行 MySQL 數據庫服務器,在端口 3306 上可以從計算機訪問,并且您希望使用本地計算機 pub001.host 上的 mysql 客戶端連接到數據庫服務器。為此,您可以轉發連接,如下所示:
ssh -L 3336:db001.host:3306 user@pub001.host
運行該 命令后,系統將提示您輸入遠程 SSH 用戶密碼。輸入后,您將登錄遠程服務器并建立 SSH 隧道。建立基于 SSH 密鑰的身份驗證連接到服務器而不輸入密碼是更好的選擇。
現在,如果您將本地計算機數據庫客戶端指向 127.0.0.1:3336 ,則連接將 db001.host:3306 通過 pub001.host 將充當中間服務器的計算機轉發到 MySQL 服務器。
您可以在單個 ssh 命令中將多個端口轉發到多個目標。例如,您在計算機上運行另一個 MySQL 數據庫服務器, db002.host 并且您希望從您將運行的本地客戶端連接到兩個服務器:
ssh -L 3336:db001.host:3306 3337:db002.host:3306 user@pub001.host
要連接到您將使用的第二臺服務器 127.0.0.1:3337 。
目標主機與 SSH 服務器相同時,而不是指定可以使用的目標主機 IP 或主機名 localhost 。
假設您需要通過在同一服務器上運行的 VNC 連接到遠程計算機,并且無法從外部訪問它。您將使用的命令是:
ssh -L 5901:127.0.0.1:5901 -N -f user@remote.host
該 -f 選項告訴 ssh 命令在后臺運行而 -N 不是執行遠程命令。我們正在使用, localhost 因為 VNC 和 SSH 服務器在同一主機上運行。
如果您在設置隧道時遇到問題,請檢查遠程 SSH 服務器配置并確保 AllowTcpForwarding 未設置為 no 。默認情況下,允許轉發。
遠程端口轉發
遠程端口轉發與本地端口轉發相反。它允許您將遠程 (ssh 服務器)計算機上的端口轉發到本地 (ssh 客戶端)計算機上的端口,然后將其轉發到目標計算機上的端口。
在這種類型的轉發中, SSH 服務器偵聽給定端口,并將與該端口的任何連接隧道連接到本地 SSH 客戶端上的指定端口,然后該端口連接到目標計算機上的端口。目標計算機可以是本地計算機或任何其他計算機。
在 Linux , macOS 和其他 Unix 系統中創建遠程端口轉發將 -R 選項傳遞給 ssh 客戶端:
ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT [USER@]SSH_SERVER
使用的選項如下:
[REMOTE:]REMOTE_PORT - 遠程 SSH 服務器上的 IP 和端口號。空 REMOTE 表示遠程 SSH 服務器將在所有接口上綁定。
DESTINATION:DESTINATION_PORT - 目標計算機的 IP 或主機名和端口。
[USER@]SERVER_IP - 遠程 SSH 用戶和服務器 IP 地址。
本地端口轉發主要用于從外部向某人提供對內部服務的訪問。
假設您正在本地計算機上開發 Web 應用程序,并且希望向其他開發人員顯示預覽。您沒有公共 IP ,因此其他開發人員無法通過 Internet 訪問該應用程序。
如果您可以訪問遠程 SSH 服務器,則可以按如下方式設置遠程端口轉發:
ssh -L 8080:127.0.0.1:3000 -N -f user@remote.host
上面的命令將使 ssh 服務器偵聽端口 8080 并將從該端口到端口的本地計算機的所有流量隧道傳輸 3000 。現在您的開發人員可以輸入 the_ssh_server_ip:8080 他/她的瀏覽器并預覽您的應用程序。如果您有麻煩設置遠程端口轉發,確保 GatewayPorts 被設置為 yes 在遠程 SSH 服務器配置。
動態端口轉發
動態端口轉發允許您在充當 SOCKS 代理服務器的本地 (ssh 客戶端)計算機上創建套接字。當客戶端連接到此端口時,連接將轉發到遠程 (ssh 服務器)計算機,然后將其轉發到目標計算機上的動態端口。
這樣,使用 SOCKS 代理的所有應用程序將連接到 SSH 服務器,服務器將所有流量轉發到其實際目的地。
在 Linux , macOS 和其他 Unix 系統中創建動態端口轉發 (SOCKS) 將 -D 選項傳遞給 ssh 客戶端:
ssh -R [LOCAL_IP:]LOCAL_PORT [USER@]SSH_SERVER
使用的選項如下:
[LOCAL_IP:]LOCAL_PORT - 本地機器的 ip 和端口號。當 LOCAL_IP 省略 SSH 客戶端結合在本地主機。
[USER@]SERVER_IP - 遠程 SSH 用戶和服務器 IP 地址。
動態端口轉發的典型示例是通過 SSH 服務器隧道傳輸 Web 瀏覽器流量。
以下命令將在端口上創建 SOCKS 隧道 9090 :
ssh -D 9090 -N -f user@remote.host
建立隧道后,您可以配置應用程序以使用它。本文介紹如何配置 Firefox 和 Google Chrome 瀏覽器以使用 SOCKS 代理。必須為要對其進行隧道傳輸的每個應用程序單獨配置端口轉發。
在 Windows 中設置 SSH 隧道
Windows 用戶可以使用 PuTTY SSH 客戶端創建 SSH 隧道。你可以在這里下載 PuTTY 。
啟動 Putty 并在 Host name (or IP address) 字段中輸入 SSH 服務器 IP 地址。
在 Connection 菜單下,展開 SSH 并選擇 Tunnels 。檢查 Local 單選按鈕以設置本地, Remote 遠程和 Dynamic 動態端口轉發。
如果設置本地轉發,請在該 Source Port 字段中 Destination 輸入本地轉發端口,然后輸入目標主機和 IP ,例如 localhost:5901 。
對于遠程端口轉發,請在該 Source Port 字段中 Destination 輸入遠程 SSH 服務器轉發端口,然后輸入目標主機和 IP ,例如 localhost:3000 。
如果設置動態轉發,則僅輸入 Source Port 字段中的本地 SOCKS 端口。
單擊 Add 按鈕,如下圖所示。
返回 Session 頁面以保存設置,這樣您每次都不需要輸入它們。在 Saved Session 字段中輸入會話名稱,然后單擊 Save 按鈕。
選擇已保存的會話,然后單擊 Open 按鈕登錄遠程服務器。
將顯示一個詢問您的用戶名和密碼的新窗口。輸入用戶名和密碼后,您將登錄到服務器并啟動 SSH 隧道。
設置公鑰驗證將允許您在不輸入密碼的情況下連接到服務器。
到此,相信大家對“怎么設置SSH 隧道”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。