概要
VPSを経由するSSHをSOCKSプロキシとして使うには?
ご自身のコンピュータから ssh -D 127.0.0.1:1080 -N user@your-vps を実行し、アプリケーションを SOCKS5 プロキシ 127.0.0.1:1080 に向けます。トラフィックはVPSのアドレスから出ます。Gloamport Emberプラン(1 vCPU, 1 GB RAM, 20 GB NVMe, 1 TB traffic)は、12か月契約で月額$3.74で、これを運べます。OpenSSHはサーバーに既にあるからです。
SOCKSプロキシはどのSSHオプションを使いますか?
| オプション | 場所 | 働き |
|---|---|---|
| -D [bind_address:]port | sshのコマンドライン | ローカルの動的転送:ssh はそのポートでSOCKS4/SOCKS5サーバーとして動く |
| -N | sshのコマンドライン | リモートコマンドは実行せず、転送のみ行う |
| -f | sshのコマンドライン | 認証の後にバックグラウンドへ移行する |
| -o ExitOnForwardFailure=yes | sshのコマンドライン | 転送を設定できない場合は接続を終了する |
| DynamicForward | ~/.ssh/config | -D と同じ。設定ファイルに保存する |
| ServerAliveInterval | ~/.ssh/config | 無通信がこの秒数続いたら、サーバーに応答を要求します。初期値の0に設定すると、この機能は無効になります。 |
オプションの意味は、OpenSSHのssh と ssh_config のマニュアルページによる。
SSHのSOCKSプロキシは何をして、何をしませんか?
SSHのSOCKSプロキシは、そこに向けたアプリケーションのトラフィックを、VPSへの暗号化されたSSH接続を通して送り、VPSが実際の接続を開きます。sshマニュアルは -D を、sshがSOCKS4またはSOCKS5サーバーとして動く、ローカルの動的転送と説明しており、リモートのマシンはアプリケーションのプロトコルから宛先を読み取ります。
アクセスしたWebサイトからは、ご自身の自宅のアドレスではなくVPSのアドレスが見えます。それでも3つは変わりません。プロキシに設定されたアプリケーションだけがそれを使い、システムの残りは通常どおり出ます。VPSの提供事業者は、ご自身のアドレスからVPSへの接続を見ることができます。そしてサインインするサイトは、依然としてご自身が誰かを知っています。SOCKSプロキシは要求の発信元を移すだけで、サインインするサービスからご自身の身元を隠すものではありません。デバイス上のすべてのアプリケーションを経路に通す必要がある場合は、代わりにトンネルを使ってください:VPSでWireGuardを設定するには?。
VPSを経由するSSHをSOCKSプロキシとして使う方法
すでにSSHでVPSにログインできる必要があります。鍵がまだなければ、鍵のガイドから始めてください。
アクセスを確認するために一度ログインする
ssh root@YOUR_VPS_IP で、または作成したユーザーで接続します。Gloamportは、SSHで root を渡します。チェックアウトで貼り付けた鍵、または鍵欄を空欄にした場合は一時的なrootパスワードです。初回ログインの時にそのパスワードを変更してください。
動的転送を開く
ご自身のコンピュータで、下のコードブロックの最初のコマンドを実行します。ターミナルは占有されたままで、何も表示しません。実行している間、プロキシが開いています。127.0.0.1にバインドすることで、ポートはご自身のコンピュータからだけ到達できます。
curlでテストする
2つ目のターミナルで、コードブロックの curl コマンドを実行します。--socks5-hostname を指定すると、プロキシが名前を解決するため、DNSの問い合わせもVPSを通ります。example.org は、VPSのアドレスを表示するアドレス確認ページに置き換えてください。
ブラウザーをプロキシに向ける
ブラウザーのネットワーク設定で、手動プロキシを選びます:SOCKSホスト 127.0.0.1、ポート 1080、SOCKS v5。ブラウザーのプロキシ経由でDNSを解決するオプションをオンにしてください(Firefoxでは「Proxy DNS when using SOCKS v5」と表示されます)。これで、名前の問い合わせがローカルのリゾルバーに漏れません。
必要ならバックグラウンドで実行する
コマンドに -f と -o ExitOnForwardFailure=yes を追加してください。転送が確立すると、sshはバックグラウンドに移り、ポートが使われている場合はエラーで止まります。後で止めるには、コードブロックの kill コマンドを使ってください。
~/.ssh/config に保存する
SSHの設定に、DynamicForward と ServerAliveInterval を指定したHostエントリを追加し、ssh -N gloam-proxy でプロキシを起動します。生存確認のメッセージにより、アイドル状態の接続が気付かれずに切れることを防ぎます。
# Foreground: the proxy lives as long as this command runs
ssh -D 127.0.0.1:1080 -N root@YOUR_VPS_IP
# Test from a second terminal; the proxy resolves the name too
curl --socks5-hostname 127.0.0.1:1080 https://example.org/
# Background version
ssh -f -N -o ExitOnForwardFailure=yes -D 127.0.0.1:1080 root@YOUR_VPS_IP
# Stop the background proxy
pkill -f "ssh -f -N -o ExitOnForwardFailure=yes -D 127.0.0.1:1080"Host gloam-proxy
HostName YOUR_VPS_IP
User root
DynamicForward 127.0.0.1:1080
ServerAliveInterval 30
ExitOnForwardFailure yesSSHプロキシにはどのGloamportプランで足りますか?
サーバーはバイトを中継するだけなので、最小のプランで十分です。Emberは12か月期間で月額$3.74のもと1 vCPU, 1 GB RAM, 20 GB NVMe, 1 TB trafficを提供し、さらに3か月で$22.44です。CPUより重要なのはトラフィック量です。閲覧したものはすべて、プランの月間トラフィック上限に含まれます。VPSごとに、IPv4アドレス1つとIPv6 /64を提供し、ポートは1 Gbit/sです。プランのトラフィックは送信データのみを数え、通信しただけで自動的に料金が発生することはありません。
複数人で1つのプロキシを共有するなど、より多くの利用には、月額$5.25のDuskへの変更が適しています。DuskはVPNに加えて、Torリレーまたはオニオンサイト向けに設計されています。プランは1、3、6、12か月の期間があり、EmberとDuskは最低3か月です。プランと期間をご覧ください。
トラフィックを通す前に、SSHの側を安全にするには?
パスワードではなく鍵を使い、鍵が動いたらパスワードログインをオフにしてください。これにより、VPSで唯一開いているポートが、推測の標的になることを防げます。手順はVPS用のSSH鍵を生成するには?と新しいVPSでSSHを強化するには?にあります。
2つ目の要点はバインドアドレスです。sshマニュアルによると、アドレスを指定しない限り -D のポートは GatewayPorts の設定に従い、空のアドレスまたは * を指定するとすべてのインターフェースにポートが公開されます。上のコマンドのように、ポートの前には必ず 127.0.0.1 を書き、ネットワーク上の他の人がプロキシを使えないようにしてください。
SSHのSOCKSプロキシはVPNより良いですか?
SSHプロキシは設定が速く、VPNはより多くをカバーします。プロキシは1つのコマンドで済み、サーバー側のソフトウェアは不要ですが、SOCKSに対応したアプリケーションしか扱えません。VPNトンネルは機器からのすべてのトラフィックを運びます。Gloamportが2026年11月10日について行った調査によると、挙げられた49件のプロバイダーのうち28件が登録時に身分証明書類を求めないため、プロキシを動かすサーバーのために書類を差し出す必要はありません。より長い比較については、自前のVPNをVPSで動かすのは、VPNサービスより優れていますか?をご覧ください。
まとめ
- ssh -D 127.0.0.1:1080 -N user@vps を実行すると、VPSから出るローカルのSOCKS5プロキシができます。
- サーバーには余分なものは入りません。OpenSSHだけで十分です。
- curl --socks5-hostname を使うと、DNSの名前解決もプロキシを通ります。
- 127.0.0.1にバインドしてください。バインドアドレスが空だと、ポートがすべてのインターフェースに公開されます。
- プロキシを使うように設定したアプリケーションだけがそれを通ります。VPNはすべてを運びます。
- Emberは12か月契約で月額$3.74で動作します。
- 鍵でログインし、その後パスワードログインをオフにしてください。
SSHのSOCKSプロキシ:よくある質問
ssh -D はSOCKS4とSOCKS5で動きますか?
はい。sshマニュアルによると、-D のとき ssh はSOCKS4またはSOCKS5のサーバーとして動きます。アプリケーションが対応していればSOCKS5を使ってください。ホスト名をプロキシに渡せるためです。
ブラウザーがまだローカルのDNSを使うのはなぜですか?
ブラウザーは、プロキシ経由での名前解決を指定しない限り、自分で名前を解決します。SOCKS v5のリモートDNSオプションをオンにし、テストには curl --socks5-hostname を使ってください。
アイドル時にプロキシが閉じないようにするには?
~/.ssh/config で ServerAliveInterval を、例えば30に設定してください。既定値の0は、生存確認のメッセージを一切送りません。
プロキシを同じネットワークの他の機器と共有できますか?
バインドアドレスを変えれば可能ですが、そのポートに到達できるすべての機器にプロキシが公開されます。ファイアウォールでポートを守らない限り、127.0.0.1のままにしてください。
別のホストを経由してつなげますか?
はい。ssh -J(ProxyJump)を使うと、まず1つ以上の踏み台ホストに接続します。踏み台ホストは ~/.ssh/config に設定してください。コマンドラインのオプションは接続先にのみ適用されるためです。
出典 (3)
- ssh(1)マニュアルページ:-D、-N、-f、-J — OpenBSD / OpenSSH (checked 2026-11-10)
- ssh_config(5)マニュアルページ:DynamicForward、ExitOnForwardFailure、ServerAliveInterval — OpenBSD / OpenSSH (checked 2026-11-10)
- curlマニュアル:--socks5-hostname — curl project (checked 2026-11-10)