wangzhi

wangzhi

狗骑吕步
github

小米4Aルーター(ギガ版)フラッシュ

背景#

~ 家にデスクトップ PC があるが使っていないので、リモートアクセスでファイルを共有したりプログラムを実行したりしたい。実際の根本的な理由は、xray を使用するためには各スマートフォンにクライアントアプリをインストールする必要があり、非常に面倒だからです。そこで、デバイスを 1 台用意してその上でプロキシを実行し、他のクライアントが直接アドレスを設定できるようにし、config.json で一元管理できればと思いました。最初はスマートフォンのアプリでローカルネットワークアクセスを許可していましたが、スマートフォンを常にオンにしておく必要があり、遅延も高いようです。つまり、すべてのリクエストがスマートフォンを経由し、スマートフォンがトラフィックを分流するため、無駄に回り道をしていました。その後、Openwrtを使えば直接プログラムを実行できることを知り、xray は golang で書かれているため、組み込みシステムに直接コンパイルして実行できることがわかりました! 🐓 いいですね!

準備材料#

操作手順#

まず openwrt ファームウェアを tmp にアップロードし、フラッシュが完了したら再起動を待ちます。

cd /tmp

mtd -e OS1 -r write openwrt-21.02.3-ramips-mt7621-xiaomi_mi-router-4a-gigabit-squashfs-sysupgrade.bin OS1

注意事項#

  • 絶対に breed (不死鳥) をフラッシュしないでください。ここにあるパラメータは小米 4A ファームウェアとは全く一致しません。breed をフラッシュすると、フラッシュしたファームウェアが無限に再起動することになります。直接 mtd コマンドでフラッシュしてください。公式のファームウェアに戻したい場合は、公式の復元ツールを使えば簡単に復元できます。
  • breed をフラッシュして無限再起動が発生した場合、起動時に reset ボタンを長押しすると、ssh で breed に接続でき、breed の下でも mtd を使って Openwrt ファームウェアをフラッシュできます。最初はこれを知らず、壊れたと思って、ピンシェアで豪華な金色の ch341 プログラマーを買ってフラッシュしました。
  • ポートフォワーディングを有効にすると、多くの外国 IP がログインを試みます。私のは光モデムをブリッジ接続しているため、ルーターのダイヤル IP がパブリックネットワークに露出しています。非常に面倒なので、関連する不要な設定をすべてオフにし、ポート制限を MAC アドレスまたは指定 IP に設定し、ルーターの設定でパスワードログインを無効にし、ssh の鍵ログインを有効にすることで多くの攻撃を防ぐことができます。

パブリックアクセス#

ウェブサイトで一般的に使用される 443 と 80 ポートは全く使えません。この 2 つのポートは直接プロバイダーによってブロックされています。

  • パブリックアクセスをどう操作するか?

    一般的に、普通の人には DDNS をお勧めします。ルーターに内蔵されているものもあります。例えば、花生壳 DDNS ですが、この無料の DDNS ドメイン名は非常に長くて覚えにくいため、覚えやすいドメイン名を購入しました。

  • DDNS の大まかな原理

    ルーターを使ってダイヤルする場合は動的 IP です。ルーターを再起動すると再度ダイヤルされ、この時新しい IP に変わります。ドメインがバインドされていると無効になります。DDNS は 10 分または 5 分ごとに現在の IP とドメイン解析の IP が一致しているかを確認し、一致しない場合は再解析を実行します。この原理を理解すれば簡単です。ルーター上でプログラムを実行し、起動時に自動起動を設定し、5 分ごとにチェックし、異なる場合は解析インターフェースを呼び出してドメイン解析を更新します(Tencent Cloud で購入したドメインはサポートされています)。

  • 家のデバイスにアクセスする

    ポートフォワーディングを通じて、例えば 192.168.1.1:22 が Raspberry Pi であり、パブリックドメイン名 domain.com:2222 をバインドしてルーターを通じて 192.168.1.1:22 に転送すれば、家のデバイスに直接アクセスできます。デバイスのファイアウォールを有効にし、パスワードを難解に設定し、openwrt のファイアウォール転送で安全制限を設定して攻撃を避けるようにしてください。

xray の実行#

~ フラッシュが完了したら、xray を実行する必要があります。これは主な要件です。しかし、openwrt の公式ソフトウェアをインストールしようとすると、常にメモリ不足の警告が表示されます。非常に奇妙です。私のルーターの実行メモリは 128M で、ストレージは 16M しかありません。openwrt をインストールした後は 8M しか残りません。xray は upx で圧縮しても約 9M あり、全く収まりません。
もう一点。ルーターの/tmpは実際にはメモリのマッピングです。ここにあるファイルはデバイスが再起動すると消去されます。ハードディスクが 16M しかない場合でも、tmp に 80M のファイルを置くことは問題ありませんが、再起動後に失われるだけです。もちろん、メモリを節約するためにできるだけ小さくするのが最善です。
/overlayというディレクトリは永続ストレージで、ルーターが再起動しても失われません。ここに xray を置いて、起動時に自動起動を設定できます。

  • xray-core の簡略化 公式の 1.8.4 バージョンに基づいて、削除できるものはすべて削除し、基本機能を保持しました。op でls -lhを使用すると、わずか 4.2M しかありません。これは upx 後のサイズです。

その後、スマートフォンの Wi-Fi 内で手動プロキシを設定し、ルーターのアドレスと xray に対応するポート番号を入力すれば、YouTube にアクセスできるようになります。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。