文章remote-home-server-ssh-clash-proxy-traffic-management.md

SSHとClashで自宅サーバーにリモートプロキシを構築する

// 默认分类 · 2025-02-08 · 阅读 5 分钟 · 174 次阅读

最近ちょっとした悩みがありました。以前は自宅の内網マシンのIPで直接サーバーにアクセスできて便利だったんですが、外出先だとSSHしか使えません。でも、考えてみたら、SSHでSocks5プロキシをトンネルして、Clashでトラフィックを管理すれば、いい解決策になりそうです。

設計案

SSHでSocks5プロキシを設定し、クライアントに自宅サーバーへアクセスするための経路を提供することにしました。そして、Clashを使ってトラフィックをスマートに管理し、Socks5が有効かどうかを検出して、プロキシ経由にするか決めます。手順は実はそんなに複雑じゃないので、見てみましょう。

1. SSHでSocks5プロキシを設定する

まず、SSHでリモートサーバーに接続し、Socks5プロキシを設定します。

ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=3 -o TCPKeepAlive=yes -o ForwardAgent=no -o ForwardX11=no -N -D 127.0.0.1:8080 -p 221 root@*******.cn

このコマンドのパラメーターを説明します:

  • -D 127.0.0.1:8080:ローカルポート8080で動的ポート転送を開始し、Socks5プロキシとして機能させます。
  • -o ServerAliveInterval=60:60秒ごとに空のパケットを送信し、接続を維持します。
  • -o ServerAliveCountMax=3:接続が応答しない場合、最大3回再試行します。
  • -o TCPKeepAlive=yes:TCP接続のキープアライブ機能を有効にします。
  • -N:ポート転送のみを行い、リモートコマンドは実行しません。
  • -p 221:SSH接続のポートを指定します(サーバーがデフォルトの22番ポートでない場合に指定します)。

これで、ローカルの127.0.0.1:8080ポートを通過するすべてのトラフィックがリモートサーバーに転送されるようになります。

2. Clashを設定してトラフィックを管理する

次に、Clashにプロキシルールを設定し、このSocks5プロキシを経由するかどうかを判断します。Clashのfallback機能を使うと、自動的にトラフィックを切り替えることができます。

ノード:

append:
  - name: 'SSH Tunnel'
    type: 'socks5'
    server: '127.0.0.1'
    port: 8080
    username: ''
    password: ''

ルール:

prepend:
  - 'IP-CIDR,192.168.10.0/24,Proxy-local,no-resolve'

プロキシグループ:

prepend:
  - type: 'fallback'
    name: 'Proxy-local'
    interval: 5
    timeout: 5000
    max-failed-times: 1
    lazy: false
    proxies:
      - 'SSH Tunnel'
      - 'DIRECT'

この設定の意味は:

  • Clash内でSocks5プロキシを定義し、127.0.0.1:8080を指定します。
  • fallbackプロキシグループを使用し、Socks5プロキシが有効と検出された場合、トラフィックは自動的にこのプロキシを経由し、そうでなければ直接接続します。
  • lazyは必ずオフにしてください!名前の通り怠け者で、自動的に有効かどうかを検出しません。

SSHトンネルを優先プロキシとして使用し、SSHトンネルが利用できない場合、トラフィックは自動的に直接接続(DIRECT)に切り替わります。intervalとtimeoutを設定することで、検出頻度とタイムアウトの許容度を制御できます。

こっそりと

この方法の利点は、外出先でもSSH接続を維持しておけば、他のトラフィックは自動的にプロキシを経由するので、便利で仕事の妨げにもなりません。さらに、Clashの自動切り替え機能により、プロキシが利用できない場合でも、トラフィックは自動的に直接接続に戻り、遅延や接続失敗を防ぎます。

技術をいじるのが好きな私にとって、この「リモートワーク」の方法は、生活と仕事をより柔軟で効率的にしてくれます。同じようなニーズがあれば、ぜひこの方法を試してみてください。