最近、小さな悩みに直面しました。以前は自宅の内網マシンの 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 Tunnel)を優先プロキシとして使用したいと考えており、SSH トンネルが利用できない場合、トラフィックは自動的に直接接続(DIRECT)に切り替わります。interval と timeout を設定することで、検出の頻度とタイムアウトの許容度を制御できます。
悄悄滴说#
このソリューションの利点は、外出中に SSH 接続を維持するだけで、他のトラフィックが自動的にプロキシを通過し、便利で仕事に支障をきたさないことです。また、Clash の自動切り替え機能により、プロキシが利用できない場合でも、トラフィックは自動的に直接接続に戻り、遅延や接続失敗を引き起こしません。
技術をいじるのが好きな私にとって、この「リモートワーク」の方法は、生活と仕事をより柔軟で効率的にしてくれることは間違いありません。もしあなたも同様のニーズがあるなら、この方法を試してみてはいかがでしょうか。
この文は Mix Space によって xLog に同期更新されました。原始リンクは https://mixspace.crashvibe.cn/posts/default/remote-home-server-ssh-clash-proxy-traffic-management