DD-WRTにPROXYサーバーをインストールする

ルーターにDD-WRTをインストールする方法については説明しません。それに関する記事がたくさんあります。 しかし、プロキシをインストールする方法を明確に説明したマニュアルは見つかりませんでした。 そこで私は自分で書くことにしました。



DD-WRTにサードパーティソフトウェアを簡単にインストールするには、追加のスペースが必要です。これは通常、ルーターでは十分ではありません。 したがって、追加のフラッシュドライブを接続する必要があります。 私の場合、ルーターは3Gモデムからインターネットを配布し、ルーターのUSBポートは1であり、USBハブにだまされないように、microSDフラッシュドライブを3Gモデムに直接挿入しました。



Huaweiの3GモデムのほとんどにはmicroSDスロットがあります。 MegaphoneのHuawei E1820モデムがあります。



したがって、フラッシュドライブがDD-WRTシステムファイルのストレージとして機能するには、これが最も純粋な形式のLinuxであるため、まずフラッシュドライブにいくつかのパーティションを作成し、ext3ファイルシステムでフォーマットする必要があります。 誰もがLinuxを手元に持っているわけではないので、Windowsでそれを行う方法を紹介します。



まず、このファイルシステムを操作できるドライバーをインストールします。 sourceforge.net/projects/ext2fsdからダウンロードできます-このドライバーのインストールはオプションです。WindowsでUSBフラッシュドライブの内容を操作する場合にのみ必要です。 ディスク自体をマークするには、www.partition-tool.com / download.htmから入手できるEaseUS Partition Master Home Editionプログラムをダウンロードします。 このプログラムは家庭での使用は無料で、私たちのタスクに非常に適しています。



3つのセクションを作成します。



/ opt-インストールされているすべてのソフトウェアはここに保存されます



/ jffs-さまざまなスクリプトがあります。 ちなみに、最終的にはこのセクションを自分で無効にし、使用しなくなりました。



/ swap-RAMの量を増やすためにシステムを交換します。 dd-wrtで大量のメモリを消費するソフトウェアをインストールする場合は、使用する必要があります。私の場合、プロキシタスクにはルーターに十分な60 MBのメモリがあるため、スワップ用のセクションは作成しません。



フラッシュドライブは2 GBであったため、2つのパーティションを作成しました。1つは900 MBの容量で、もう1つは1000 MBの容量です。



画像



次に、これらすべてをルーターに接続します。



最新のdd-wrt ​​v3.0ファームウェアがインストールされたAsus RT-N13U B1ルーターがあります。 次に、パーティションをマウントする必要があります。 [サービス]-> [USB]タブでWebにアクセスし、セクションを接続します。 [コアUSBサポート]、[USBストレージサポート]、[自動ドライブマウント]のボックスをオンにします。 ブート時に自動的にマウントされるように、ディスクのUUIDをパーティションにコピーします。







次に、ipkg-optパッケージ制御システムをインストールします。 この時点で、ルーターのインターネットは既に構成されているはずです。 ルーターへのSSHアクセスを有効にして、そこにアクセスします。 コマンドを順番に実行します。



インストールスクリプトをダウンロードします。



wget http://www.3iii.dk/linux/optware/optware-install-ddwrt.sh -O - | tr -d '\r' > /tmp/optware-install.sh
      
      





次に、インストール自体を実行します。



 sh /tmp/optware-install.sh
      
      





すべてがインストールされたら、プロキシをインストールします。



 ipkg-opt install tinyproxy
      
      





viの使用方法がわからない場合(以前に学んだように)、nanoエディターをインストールすることもできます。



 ipkg-opt install nano
      
      





次に、プロキシを構成し、起動スクリプトを作成する必要があります。 これは私の構成のようです。必要に応じて構成できますが、PIDファイルの場所を変更しないでください。



構成を編集します。



 nano /opt/etc/tinyproxy.conf
      
      





そこに書きましょう:



 User root Group root Port 8888 Timeout 600 DefaultErrorFile "/opt/share/tinyproxy/default.html" StatFile "/opt/share/tinyproxy/stats.html" LogLevel Info PidFile "/tmp/var/run/tinyproxy.pid" MaxClients 100 MinSpareServers 5 MaxSpareServers 20 StartServers 10 MaxRequestsPerChild 0 Allow 192.168.0.0/16 ViaProxyName "tinyproxy" ConnectPort 443 ConnectPort 563
      
      







次に、起動スクリプトを作成します。 理由はわかりませんが、/ jffs / etc / config / script.startupを介してスクリプトを実行する標準的な方法は、ソフトウェアの再起動が進行中の場合にのみ機能しますが、ネットワークからデバイスを切断して再度オンにすると、このスクリプトは機能しません。 おそらくこれは、3Gモデムを介しているという事実のために、私のmicroSDが何らかの形でゆっくりと接続するという事実によるものです。



この状況は私には向いていません。たとえば、ライトがオフになっている場合、ソフトウェアをオンにした後、必要なソフトウェアは起動しません。この場合、tinyproxyとsshを経由してルーターを起動し、ソフトウェアを再起動する必要があります。 だから私は少しの回避策を行って、メインスクリプトをcronで実行させました。



スクリプト用のディレクトリを作成します。



 mkdir /opt/etc/init.d
      
      





私たちは実行する権利を与えます:



 chmod +x /opt/etc/init.d
      
      





メインの起動スクリプトを作成します。



 nano /opt/etc/init.d/start_script.sh
      
      





 #!/bin/sh unset LD_PRELOAD unset LD_LIBRARY_PATH [ -e /opt/etc/profile ] && mount -o bind /opt/etc/profile /etc/profile if [ -d /opt/etc/init.d ]; then for f in /opt/etc/init.d/S* ; do [ -x $f ] && $f start done fi
      
      





私たちは実行する権利を与えます:



 chmod +x /opt/etc/init.d/start_script.sh
      
      





次に、tinyproxy自体を起動するためのスクリプトを作成します。



 nano /opt/etc/init.d/S01tinyproxy.sh
      
      





 #! /bin/sh NAME=tinyproxy DESC="Tiny HTTP and HTTPS proxy" case "$1" in start) if [ -e /tmp/var/run/$NAME.pid ]; then echo "$DESC: $NAME already started." exit 0 fi echo -n "Starting $DESC: $NAME" /opt/sbin/$NAME -c /opt/etc/tinyproxy.conf echo . ;; stop) if [ ! -e /tmp/var/run/$NAME.pid ]; then echo "$DESC: $NAME is not running." exit 0 fi echo -n "Stopping $DESC: $NAME" killall $NAME rm -f /tmp/var/run/$NAME.pid echo . ;; *) echo "Usage: $0 {start|stop}" >&2 exit 1 ;; esac exit 0
      
      





実行権を付与します



 chmod +x /opt/etc/init.d/S01tinyproxy.sh
      
      





次に、ルーターが起動してから20秒後にスクリプトを実行するタスクをクラウンに追加します。 このバージョンでは、すべてのスクリプトがバタンと鳴り、ルーターは時計のように動作します。



Webを介して[管理]-> [管理]タブに移動し、cronで次の行を記述します。



@reboot sleep 20 && /opt/etc/init.d/start_script.sh













設定を保存し、ルーターを再起動します。 すべて準備完了です。



All Articles