Redsocksの活用

Home PDF Audio

もちろんです!Macコンピュータを使用してShadowsocksプロキシを設定し、OpenWRTルーターを構成して、接続されたすべてのデバイスのトラフィックをこのプロキシ経由でルーティングする手順をご案内します。このセットアップには、以下の主要なステップが含まれます:

  1. macOSにShadowsocksクライアントを設定する(Shadowsocks-NGまたはClashを使用)
  2. macOSを外部プロキシ接続を許可するように設定する
  3. Macに静的IPを割り当てる
  4. OpenWRTにRedsocksをインストールして設定する
  5. OpenWRTのトラフィックをmacOSのプロキシ経由にリダイレクトする
  6. プロキシ設定をテストする

各ステップについて詳しく見ていきましょう。


1. macOSでのShadowsocksクライアントの設定

Shadowsocksクライアントとして、Shadowsocks-NGまたはClashのどちらかを使用できます。以下にそれぞれの設定手順を記載します。

オプションA: Shadowsocks-NGを使用する

Shadowsocks-NGは、macOS向けの人気で使いやすいShadowsocksクライアントです。

ステップ1: Shadowsocks-NGをダウンロードしてインストールする

  1. Shadowsocks-NGをダウンロードする:
  2. アプリケーションをインストールする:
    • ダウンロードした .dmg ファイルを開きます。
    • ShadowsocksX-NG アプリを「アプリケーション」フォルダにドラッグします。
  3. Shadowsocks-NGを起動する:
    • アプリケーションフォルダからShadowsocksX-NGを開きます。
    • システム環境設定でアプリに必要な権限を付与する必要があるかもしれません。

ステップ2: Shadowsocks-NGの設定

  1. 設定を開く:
    • メニューバーのShadowsocksX-NGアイコンをクリックします。
    • 「ShadowsocksX-NGを開く」>「設定」を選択します。
  2. 新しいサーバーを追加:
    • 「Servers」タブに移動します。
    • 「+」ボタンをクリックして新しいサーバーを追加します。
  3. Shadowsocks URLをインポートする:
    • Shadowsocks URLをコピー:
      ss://[ENCRYPTED_PASSWORD]@xxx.xxx.xxx.xxx:xxxxx/?outline=1
      
    • インポート方法:
      • 「インポート」をクリック。
      • Shadowsocks URLを貼り付ける。
      • Shadowsocks-NGが自動的にサーバーの詳細を解析し、入力してくれるはずです。
  4. ローカルプロキシを設定する:
    • 「SOCKS5プロキシを有効にする」にチェックが入っていることを確認します。
    • ローカルポート(デフォルトは通常 1080)をメモしておきます。
  5. 保存して有効化:
    • 「OK」をクリックしてサーバーを保存します。
    • 「Shadowsocksを有効にする」スイッチをONに切り替えます。

オプションB: Clashを使用する

Clashは、Shadowsocksを含む複数のプロトコルをサポートする多機能なプロキシクライアントです。

ステップ1: Clashをダウンロードしてインストールする

  1. Clash for macOS をダウンロード:
  2. アプリケーションをインストールする:
    • ダウンロードしたClashアプリケーションを「アプリケーション」フォルダに移動します。
  3. Clashを起動する:
    • アプリケーションフォルダからClashを開きます。
    • システム環境設定で必要な権限を付与する必要があるかもしれません。

ステップ2: Clashの設定

  1. 設定ファイルにアクセスする:
    • ClashはYAML設定ファイルを使用します。TextEditやVisual Studio Codeなどのテキストエディタを使って、作成または編集できます。
  2. Shadowsocksサーバーを追加する:
    • 以下の内容で設定ファイル(例: config.yaml)を作成します:
port: 7890
socks-port: 7891
allow-lan: true
mode: Rule
log-level: info
proxies:
  - name: "MyShadowsocks"
    type: ss
    server: xxx.xxx.xxx.xxx
    port: xxxxx
    cipher: chacha20-ietf-poly1305
    password: "xxxxxx"
proxy-groups:
  - name: "Default"
    type: select
    proxies:
      - "MyShadowsocks"
      - "DIRECT"
rules:
  - MATCH,Default
 メモ:
 - `port` と `socks-port` は、ClashがリッスンするHTTPおよびSOCKS5プロキシポートを定義します。
 - `allow-lan: true` は、LANデバイスがプロキシを使用できるようにします。
 - `proxies` セクションには、Shadowsocksサーバーの詳細が含まれています。
 - `proxy-groups` と `rules` は、トラフィックのルーティング方法を決定します。
  1. 設定ファイルを使用してClashを開始:
    • Clashを起動し、config.yamlファイルを使用するように設定します。
    • Clashを起動する際に、設定ファイルのパスを指定する必要があるかもしれません。
  2. プロキシが動作していることを確認する:
    • Clashがアクティブで、Shadowsocksサーバーに接続されていることを確認します。
    • メニューバーのアイコンでステータスを確認します。

2. macOSを外部プロキシ接続を許可するように設定する

デフォルトでは、Shadowsocksクライアントはプロキシをlocalhost127.0.0.1)にバインドするため、Macのみがこのプロキシを使用できます。OpenWRTルーターがこのプロキシを使用できるようにするには、プロキシをMacのLAN IPにバインドする必要があります。

Shadowsocks-NGの場合:

  1. 設定を開く:
    • メニューバーのShadowsocksX-NGアイコンをクリックします。
    • 「ShadowsocksX-NGを開く」>「設定」を選択します。
  2. 詳細設定タブに移動:
    • 「詳細設定」タブに移動します。
  3. リスニングアドレスの設定:
    • 「Listen Address」を127.0.0.1から0.0.0.0に変更し、任意のインターフェースからの接続を許可します。
    • または、MacのLAN IP(例: 192.168.1.xxx)を指定します。
  4. Shadowsocks-NGを保存して再起動:
    • 「OK」をクリックして変更を保存します。
    • 新しい設定を適用するために、Shadowsocks-NGクライアントを再起動します。

Clashの場合:

  1. 設定ファイルを編集する:
    • config.yaml 内で allow-lan: true 設定が有効になっていることを確認してください。
  2. すべてのインターフェースにバインドする:
    • 設定で allow-lan: true を設定すると、通常、プロキシはLANを含むすべての利用可能なインターフェースにバインドされます。
  3. Clashを再起動:
    • 変更を適用するためにClashクライアントを再起動します。

3. Macに静的IPを割り当てる

OpenWRTルーターとMac間の接続を安定させるために、ローカルネットワーク内でMacに静的IPを割り当ててください。

macOSで静的IPを割り当てる手順:

  1. システム環境設定を開く:
    • Appleメニューをクリックし、「システム環境設定」を選択します。
  2. ネットワーク設定に移動します:
    • 「ネットワーク」をクリックします。
  3. アクティブな接続を選択:
    • Macがルーターに接続されている方法に応じて、左側のサイドバーから「Wi-Fi」または「Ethernet」を選択します。
  4. IPv4設定を構成する:
    • 「詳細…」をクリックします。
    • 「TCP/IP」タブに移動します。
    • 「IPv4を構成」を「DHCPを使用」から「手動」に変更します。
  5. 静的IPアドレスの設定:
    • IPアドレス: ルーターのDHCP範囲外のIPを選び、競合を防ぎます(例: 192.168.1.xxx)。
    • サブネットマスク: 通常は 255.255.255.0
    • ルーター: ルーターのIPアドレス(例: 192.168.1.1)。
    • DNSサーバー: ルーターのIPを使用するか、8.8.8.8のような他のDNSサービスを利用できます。
  6. 設定を適用する:
    • 「OK」をクリックし、次に「適用」をクリックして変更を保存します。

4. OpenWRTへのRedsocksのインストールと設定

Redsocksは、ネットワークトラフィックをSOCKS5プロキシ経由でルーティングできる透過型のSOCKSリダイレクターです。ここでは、Redsocksを使用して、Mac上で動作しているShadowsocksプロキシを介してOpenWRTのトラフィックをリダイレクトします。

ステップ1: Redsocksのインストール

  1. パッケージリストの更新:
ssh root@<router_ip>
opkg update
  1. Redsocksをインストール:
opkg install redsocks

もしOpenWRTのリポジトリにRedsocksが利用できない場合、手動でコンパイルするか、代替パッケージを使用する必要があるかもしれません。

ステップ2: Redsocksの設定

  1. Redsocks設定ファイルの作成または編集:
vi /etc/redsocks.conf
  1. 以下の設定を追加:
   base {
       log_debug = on;
       log_info = on;
       log = "file:/var/log/redsocks.log";
       daemon = on;
       redirector = iptables;
   }
redsocks {
       local_ip = 0.0.0.0;
       local_port = 12345;  # Redsocksがリッスンするローカルポート
       ip = xxx.xxx.xxx.xxx;  # Macの静的IPアドレス
       port = xxxxx;          # Shadowsocks-NGのローカルSOCKS5プロキシポート
       type = socks5;
       login = "";           # プロキシが認証を必要とする場合
       password = "";
   }

メモ:

  1. 保存して終了:
    • ESCを押し、:wqと入力して、Enterを押します。
  2. ログファイルの作成:
touch /var/log/redsocks.log
chmod 644 /var/log/redsocks.log

ステップ3: Redsocksサービスを開始する

  1. 起動時にRedsocksを有効にする:
/etc/init.d/redsocks enable
  1. Redsocksを起動:
   /etc/init.d/redsocks start
  1. Redsocksが動作していることを確認する:
ps | grep redsocks

Redsocksプロセスが実行されているのが確認できるはずです。


5. OpenWRTのトラフィックをmacOSプロキシ経由にリダイレクトする

OpenWRTにRedsocksが設定されたので、iptablesを設定して、すべての発信TCPトラフィックをRedsocks経由でリダイレクトし、それがMacのShadowsocksプロキシを経由するようにします。

ステップ1: iptablesルールの設定

  1. トラフィックをリダイレクトするためのiptablesルールを追加:
   # すべてのTCPトラフィックをRedsocksにリダイレクト(プロキシ自体へのトラフィックを除く)
   iptables -t nat -N REDSOCKS
   iptables -t nat -A REDSOCKS -d xxx.xxx.xxx.xxx -p tcp --dport xxxxx -j RETURN
   iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345

すべての発信トラフィックにREDSOCKSチェーンを適用する

iptables -t nat -A OUTPUT -p tcp -j REDSOCKS
iptables -t nat -A PREROUTING -p tcp -j REDSOCKS

説明:

  1. iptablesルールの保存:

これらのルールを再起動後も永続的にするには、ファイアウォールの設定に追加してください。

vi /etc/firewall.user

iptablesルールを追加:

   # すべてのTCPトラフィックをRedsocksにリダイレクト(プロキシを除く)
   iptables -t nat -N REDSOCKS
   iptables -t nat -A REDSOCKS -d xxx.xxx.xxx.xxx -p tcp --dport xxxxx -j RETURN
   iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345

REDSOCKSチェーンの適用

iptables -t nat -A OUTPUT -p tcp -j REDSOCKS
iptables -t nat -A PREROUTING -p tcp -j REDSOCKS

保存して終了:

  1. 変更を適用するためにファイアウォールを再起動:
/etc/init.d/firewall restart

ステップ2: トラフィックがリダイレクトされていることを確認する

  1. Redsocksのログを確認する:
cat /var/log/redsocks.log

Redsocksを介してトラフィックが処理されていることを示すログが表示されるはずです。

  1. クライアントデバイスからのテスト:
    • OpenWRTルーターにデバイスを接続します。
    • インターネットを使用するウェブサイトにアクセスするか、何らかのアクションを実行します。
    • 外部IPアドレス(例:WhatIsMyIP.com)を確認して、トラフィックがShadowsocksプロキシを経由していることを確認します。プロキシのIPが反映されているかどうかを確認します。

6. プロキシ設定のテスト

以下のテストを実行して、セットアップ全体が意図した通りに動作することを確認してください。

ステップ1: MacでのShadowsocks接続を確認する

  1. Shadowsocksクライアントのステータスを確認する:
    • Shadowsocks-NGまたはClashがShadowsocksサーバーにアクティブに接続されていることを確認します。
    • ローカルプロキシ(例:xxx.xxx.xxx.xxx:xxxxx)がアクセス可能かどうかを確認します。
  2. プロキシをローカルでテストする:
    • Macでブラウザを開き、SOCKS5プロキシとしてlocalhost:1080を使用するように設定します。
    • WhatIsMyIP.comにアクセスし、IPがShadowsocksサーバーと一致することを確認します。

ステップ2: OpenWRTのトラフィックがプロキシを経由していることを確認する

  1. OpenWRTの外部IPを確認する:
    • OpenWRTに接続されたデバイスから、WhatIsMyIP.comにアクセスし、IPがShadowsocksサーバーのIPを反映しているかどうかを確認します。
  2. Redsocksのログを監視する:
    • OpenWRT上で、Redsocksのログを監視し、トラフィックがリダイレクトされていることを確認します。
    tail -f /var/log/redsocks.log
    
  3. 必要に応じてトラブルシューティングを行う:
    • トラフィックが正しくルーティングされない場合:
      • Mac上のShadowsocksクライアントが実行中でアクセス可能であることを確認する。
      • iptablesのルールが正しく設定されていることを確認する。
      • MacとOpenWRTの両方のファイアウォール設定を確認する。

追加の考慮事項

1. セキュリティ

macOSの場合:

2. パフォーマンス

3. メンテナンス

4. 代替アプローチ

Macを中間プロキシサーバーとして使用することは可能ですが、以下の代替案を検討することで、より簡単な設定ができるかもしれません:


結論

上記の手順に従うことで、MacをShadowsocksプロキシサーバーとして設定し、OpenWRTルーターを構成して、接続されたすべてのデバイスのトラフィックをこのプロキシ経由でルーティングするようにしました。この設定により、Shadowsocksプロトコルを活用してネットワークのプライバシーと制御が強化されます。

要点のまとめ:

  1. MacでのShadowsocksクライアント:
    • 提供されたShadowsocks URLを使用して、Shadowsocks-NGまたはClashをインストールおよび設定しました。
    • クライアントをMacのLAN IPでリッスンするように設定しました。
  2. プロキシのアクセシビリティ:
    • Macに静的IPを割り当て、プロキシへの一貫したアクセスを確保しました。
    • macOSのファイアウォールを設定し、着信プロキシ接続を許可しました。
  3. OpenWRTの設定:
    • Redsocksをインストールし、すべての外向きTCPトラフィックをShadowsocksプロキシ経由でリダイレクトするように設定しました。
    • トラフィックリダイレクトを強制するために必要なiptablesルールを適用しました。
  4. テスト:
    • 接続されたデバイスからのトラフィックがShadowsocksプロキシを経由していることを確認するため、外部IPアドレスをチェックしました。

おすすめ:

特定の設定で問題が発生したり、さらなるサポートが必要な場合は、お気軽にお問い合わせください!

base {
    log_debug = on;
    log_info = on;
    log = "file:/var/log/redsocks.log";
    daemon = on;
    redirector = generic;
}

この設定は、redsocksの基本的な設定を定義しています。以下に各設定項目の説明を示します:

この設定は、redsocksがバックグラウンドで動作し、ログを指定されたファイルに出力するように指示しています。

redsocks { local_ip = 0.0.0.0; local_port = 7891; ip = xxx.xxx.xxx.xxx; port = xxxxx; type = http-connect; login = ""; password = ""; }


Back 2025.01.18 Donate