首頁 > 網路管理 > ssh-socks

ssh-socks: SOCKS 代理設置

ssh-socks 是透過 SSH 連線設定本地 SOCKS 代理伺服器的概念或腳本。它允許您透過遠端伺服器安全地隧道化本地應用程式的網路流量。它主要用於繞過防火牆、增強安全性以及存取特定網路環境。

概述

ssh-socks 利用 SSH 的動態連接埠轉發(-D 選項)功能,在本地機器上建立一個 SOCKS 代理。透過此代理,您可以將網頁瀏覽器或其他應用程式的流量透過遠端 SSH 伺服器轉發到網際網路。這就像從遠端伺服器存取網際網路一樣。

主要用途

  • 存取地理限制內容
  • 在公共 Wi-Fi 上增強安全性
  • 存取公司內部網路資源
  • 繞過防火牆

主要選項

ssh-socks 主要利用 'ssh' 命令的選項。以下是設定 SOCKS 代理時常用的 'ssh' 選項。

代理設定

生成的命令:

請試著組合命令。

這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。

`ssh-socks` 執行命令。

請將上述選項組合在一起,與 AI 一同虛擬執行命令。

使用範例

ssh-socks 的一般使用範例。請將 [user] 和 [remote_host] 替換為實際的使用者名稱和遠端伺服器位址。

基本 SOCKS 代理設定

ssh -D 8080 user@remote_host

在本地連接埠 8080 上設定 SOCKS 代理,並連接到遠端伺服器。此命令會佔用終端機。

在背景執行 SOCKS 代理

ssh -fN -D 8080 user@remote_host

在背景執行代理,以便您可以繼續使用終端機。-N 阻止執行遠端命令,-f 將其放到背景。

透過代理存取網頁 (curl)

curl --socks5-hostname localhost:8080 http://example.com

使用 curl 命令透過先前設定的 SOCKS 代理 (localhost:8080) 存取網頁。

透過代理存取網頁 (wget)

wget -e use_proxy=yes -e http_proxy=socks5://localhost:8080 http://example.com

使用 wget 命令透過先前設定的 SOCKS 代理 (localhost:8080) 存取網頁。

安裝

ssh-socks 通常不是一個需要獨立安裝的命令。相反地,您可以利用 'ssh' 命令的功能自行設定,或者為了方便起見,可以將其建立為 shell 別名 (alias) 或簡單的腳本。

設定為 Shell 別名 (Alias)

alias ssh-socks='ssh -fN -D 8080'

您可以將以下行添加到您的 ~/.bashrc 或 ~/.zshrc 檔案中來定義 'ssh-socks' 命令。更改後需要執行 'source ~/.bashrc' 或 'source ~/.zshrc' 來套用。

使用方法

設定別名後,您可以像這樣使用它:'ssh-socks user@remote_host'。如果您想更改連接埠號碼,則需要修改別名定義。

設定為簡單腳本

#!/bin/bash

PORT=${1:-8080}
HOST=$2

if [ -z "$HOST" ]; then
  echo "使用方法: ssh-socks [連接埠] user@remote_host"
  echo "預設連接埠: 8080"
  exit 1
fi

shift
if [ $# -eq 1 ]; then
  HOST=$1
else
  HOST=$2
fi

ssh -fN -D $PORT "$HOST"

echo "SOCKS 代理正在 localhost:$PORT 上執行。 (PID: $(pgrep -f "ssh -fN -D $PORT $HOST"))"

您可以將可執行腳本創建到類似 /usr/local/bin/ssh-socks 的路徑。這種方法可以讓您更靈活地將連接埠或其他選項作為參數傳入。

腳本使用方法

創建腳本後,使用 'chmod +x /usr/local/bin/ssh-socks' 授予執行權限,然後可以使用 'ssh-socks user@remote_host' 或 'ssh-socks 9000 user@remote_host' 等方式使用。

提示與注意事項

使用 ssh-socks 時的實用提示和注意事項。

網頁瀏覽器設定

大多數網頁瀏覽器都支援 SOCKS 代理設定。您需要在瀏覽器的網路設定中將「SOCKS Host」設定為「localhost」,將「Port」設定為您指定的連接埠(例如:8080)。

  • Firefox: 設定 -> 網路設定 -> 手動代理設定 -> SOCKS 主機
  • Chrome/Edge: 使用系統代理設定(取決於作業系統設定)

利用 SSH 設定檔 (~/.ssh/config)

透過在 ~/.ssh/config 檔案中預先定義遠端主機的設定,可以讓命令使用起來更簡潔。

  • Host myproxy Hostname remote_host User user DynamicForward 8080 ExitOnForwardFailure yes ServerAliveInterval 60 ServerAliveCountMax 3

SSH 設定檔使用範例

ssh -fN myproxy

設定後,您可以使用 'ssh -fN myproxy' 命令來執行代理。

終止代理

若要終止在背景執行的 SSH SOCKS 代理,您需要找到並終止相應的 SSH 進程。

  • ps aux | grep 'ssh -fN -D 8080' (確認進程 ID)
  • kill [PID]

安全性考量

由於所有流量都將透過遠端伺服器進行代理,因此確認該伺服器的安全性和可信度非常重要。透過不可信的伺服器使用代理可能會導致資料被攔截或篡改的風險。


相同類別命令