だから私はWOLスクリプトを見ましたが、ルーターの外側のコンピュータから接続しようとするとうまくいくようです。
私が使用するスクリプト: http://www.dd-wrt.com/wiki/index.php/Useful_Scripts#Web_Server_Wake-up
今私が見る問題は、私が家にいるときに元のコンピュータとサーバーが同じサブネットにあり、ルータが要求を記録しないため、WOLスクリプトが役に立たないことです。
ネットワーク内の2台のコンピュータ間でルータログ要求を送信する方法はありますか?私はネットワーク構造についてはよくわかりませんが、これが可能かどうかはわかりません。どういうわけか、ルーターを介してすべてのトラフィックをプロキシする必要がありますか?
ここで説明したいのは次のとおりです。
私のホームサーバーは、SMB、AFP、HTTP、その他いくつかのWebアプリケーションを提供しています。サーバーにアクセスしていない間にサーバーをスリープモードにしたいです。そのため、ネットワークの外部からHTTPアクセスが要求されたら、サーバーが起動するようにしたいと思います。ローカルサブネット上のコンピュータがSMB共有を要求したときにサーバーが起動するようにしたいと思います。
注:私はUbuntuサーバーを持っています。ローカルネットワーク上のすべてのコンピュータはルータに直接接続されます。一部のシステムに接続されているハブがありますが、すべてのトラフィックはルーターを通過する必要があります。
編集:ちょうどアイデアがありました。関連サーバーを別々のVLANに配置し、ルータを介してVLAN間の通信を許可するとどうなりますか?その後、トラフィックはトラフィックを記録できるファイアウォールを通過する必要があります。そのようなシステムを設定する方法を知っている人はいますか?
ベストアンサー1
非常に簡単な方法は、wol
ルータから手動で呼び出すことです。パケットを受信したときにこれを行うことはできますが、WoLパケットが送信される時間とターゲットコンピュータがそれを処理する準備ができている時間の間に大きな遅延があるため、実際にはうまく機能しない可能性があります。ターゲットコンピュータが起動する前にアプリケーションがタイムアウトする可能性が高いです。
Linux パケットフィルタは、宛先を介してユーザ空間にパケットを転送でき、QUEUE
これらのパケットに応答するプログラムを作成できます。netfilter_queue ライブラリ。 WoLパケットを送信したり、他のプログラム(例えば)を実行するプログラムが存在するかどうかはわかりませんが、作成するの/usr/sbin/wol
はそれほど難しくありません。いつこれを行うべきかを知ることはもう一つの問題です。スリープモードを解除する必要があるコンピュータからパケットを受信するたびに、これをすべて実行したくありません。
私はユーザーがWoLパケットを送信するためにいくつかの手動操作を実行することを好みます。簡単なアプローチは、ルーターに専用ユーザーを置き、スクリプト呼び出しをシェルとして/usr/sbin/wol
使用し、特権ユーザーにSSHキーを提供することです。より簡単なアプローチは、ルーターでWebサーバーを実行することです。これは、CGIスクリプトを実行できる非常に単純なサーバーであり、/usr/sbin/wol
ユーザーがページにアクセスして許可された資格情報を提供したときに実行されます。