2026년 SSH SOCKS5 프록시: macOS, Linux, Windows 및 sshuttle 완전 가이드

발행: (2026년 3월 12일 오전 06:08 GMT+9)
6 분 소요
원문: Dev.to

Source: Dev.to

SSH SOCKS5 터널 만들기

-D 플래그는 동적 포트 포워딩을 생성합니다: SSH가 로컬 포트에서 수신 대기하고 SOCKS5 프록시 역할을 합니다. 트래픽은 SSH 서버의 네트워크를 통해 나갑니다.

Your app → localhost:1080 (SOCKS5) → SSH (encrypted) → remote server → internet

터널을 백그라운드에서 시작하기

ssh -D 1080 -f -C -q -N user@your-server.com

실행 중인지 확인하기

pgrep -a ssh

서버를 통한 트래픽 라우팅 확인

curl --socks5 127.0.0.1:1080 https://ipinfo.io/ip

플래그 의미

플래그설명
-D 1080로컬 포트 1080에서 SOCKS5 프록시
-f인증 후 백그라운드로 포크
-Cgzip 압축 활성화
-q조용한 모드
-N원격 명령을 실행하지 않음 (터널만)

macOS 시스템 전역 SOCKS 프록시 스크립트

아래 스크립트를 ~/bin/tunnel 로 저장하고 실행 권한을 부여한 뒤(chmod +x ~/bin/tunnel), sudo 로 실행하세요.

#!/usr/bin/env bash
NET_SERVICE="Wi‑Fi"   # run: networksetup -listallnetworkservices
PORT=1080
SERVER="user@your-server.com"

if [[ "$EUID" -ne 0 ]]; then
  echo "Run as root: sudo $0"
  exit 1
fi

PID=$(pgrep -f "ssh -D ${PORT}")

if [[ -n "$PID" ]]; then
  echo "Disconnecting (PID $PID)..."
  kill -9 "$PID"
  networksetup -setsocksfirewallproxystate "${NET_SERVICE}" off
  echo "Tunnel closed."
else
  echo "Connecting to ${SERVER}..."
  ssh -D "${PORT}" -f -C -q -N "${SERVER}"
  networksetup -setsocksfirewallproxy "${NET_SERVICE}" 127.0.0.1 "${PORT}"
  networksetup -setsocksfirewallproxystate "${NET_SERVICE}" on
  echo "Connected. System SOCKS proxy active on :${PORT}."
fi

networksetup 은 macOS 시스템 전역 SOCKS 프록시를 설정하므로, 시스템 프록시를 따르는 모든 애플리케이션이 터널을 통해 트래픽을 라우팅합니다.

Linux: ProxyChains 사용하기

설치

# Debian/Ubuntu
sudo apt install proxychains4

# Fedora
sudo dnf install proxychains-ng

/etc/proxychains4.conf 구성

# Comment out the default Tor line:
# socks4 127.0.0.1 9050

# Add your SSH SOCKS5 proxy:
socks5 127.0.0.1 1080

SSH 터널 시작 (위와 동일한 명령어)

ssh -D 1080 -f -C -q -N user@your-server.com

프록시를 통해 모든 CLI 도구 라우팅

proxychains4 curl https://ipinfo.io/ip
proxychains4 git clone https://github.com/someorg/private-repo

sshuttle를 이용한 투명 TCP 프록시 (Linux/macOS)

설치

# macOS (Homebrew)
brew install sshuttle

# Ubuntu
sudo apt install sshuttle

모든 트래픽 라우팅 (루프 방지를 위해 SSH 서버 제외)

sshuttle -r user@your-server.com 0.0.0.0/0 --exclude your-server.com

서버 뒤의 사설 서브넷만 라우팅

sshuttle -r user@your-server.com 10.0.0.0/8

Ctrl+C를 눌러 중지합니다. 브라우저 설정이 필요하지 않으며, 모든 TCP 연결이 투명하게 가로채집니다.

윈도우 클라이언트

ToolSteps
Bitvise SSH Client1. Bitvise를 설치합니다.
2. Services → SOCKS/HTTP Proxy Forwarding을 엽니다.
3. 127.0.0.1:1080에서 SOCKS5를 활성화합니다.
4. 서버에 연결합니다.
Proxifier1. Proxifier를 설치합니다.
2. 새 프록시를 추가합니다: 주소 127.0.0.1, 포트 1080, 유형 SOCKS5.
3. 라우팅하려는 애플리케이션을 대상으로 규칙을 생성합니다 (예: chrome.exe).

Keep the Tunnel Alive (SSH Config)

유휴 기간 동안 연결을 유지하기 위해 ~/.ssh/config에 호스트 항목을 추가합니다.

Host tunnel-server
  HostName your-server.com
  User youruser
  IdentityFile ~/.ssh/id_ed25519
  ServerAliveInterval 60
  ServerAliveCountMax 3
  Compression yes

별칭을 사용하여 터널을 시작합니다:

ssh -D 1080 -f -C -q -N tunnel-server

Feature Comparison

FeatureSSH -DsshuttleWireGuard
설정 복잡도낮음낮음보통
전체 트래픽 라우팅아니오 (앱별 SOCKS)예 (전체 TCP)예 (전체 프로토콜)
UDP 지원아니오아니오
서버 전제조건SSH만SSH만wireguard-tools
속도좋음좋음우수
추천 용도단일 앱 라우팅전체 TCP 프록시영구 VPN

SSH 서버 강화

  • 키 기반 인증만 사용

    ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519
  • 특정 사용자로 접근 제한/etc/ssh/sshd_config에 추가

    AllowUsers youruser
  • 비표준 포트 사용 자동화된 무차별 대입 시도 감소

    Port 2222
  • SSH 키를 매년 교체하고 ~/.ssh/authorized_keys에서 오래된 키를 삭제합니다.


이 단계들을 통해 macOS, Linux, Windows에서 SSH SOCKS5 프록시를 빠르게 실행하고, 애플리케이션별 또는 시스템 전체에 적용할 수 있으며, 필요에 따라 sshuttle이나 WireGuard와 같은 전체 트래픽 솔루션으로 교체할 수 있습니다.

0 조회
Back to Blog

관련 글

더 보기 »

트라비고

Gemini와 함께 말하는 속도만큼 빠르게 여행하세요! 라이브 에이전트가 몰입형 스토리텔링 및 3D 내비게이션과 만나는 곳. 이 프로젝트는 Gemini Live Ag...에 진입하기 위해 만들어졌습니다.