Vista(外部)からWindows7(内部LAN)のデスクトップをリモートデスクトップ機能でコントロールする
設定条件
構成図
----------------------------- | 外部PC | | | | local port 3390 | ------------------------------ | |port 22 -------------------------------- | Router | | IP Foward | | Port 22 => Linux の Port22 | ------------------------------- | |port 22 ---------------------------------- | Linux | | Wol を実行 | | SSH 転送 WindowsPC のPort3389 | | | ---------------------------------- | |port 3389 --------------------------------- | Windows PC | | Wake ON & Remote DeskTop | | | ---------------------------------
Windows7用のPCのBIOS画面で以下の設定を行う(マザーにより異なる 今回: miniPC)
Wake ON LAN Enable
Windows上のデバイスマネージャのNICのプロパティ (NICより異なる 今回: )
ただし、Shutdownを一度して電源を切った状態からでないとうまく動作しなようだ
BIOS
Power menu ⇒ APM Configuration ⇒ Power On By PCIE Devices Enabled
NIC ドライバ Attansic L1 Gigabit Ethernet 10/100/1000Base-T Controller
Shutdown Wake up ⇒ ON Wake Up Capabilities ⇒ Magic Packet
sshの設定
sshdで別マシンにパケットを投げるために以下を追加
/etc/ssh/sshd_config
AllowTcpForwarding yes
マジックパケット
マジックパケットを投げるためにwolをインストール
# apt-get install wol
実行
$ wol 192.168.10.255 00:01:80:62:AC:4C
wol (ブロードキャスト) (目的PCのMAC)
注;このブロードキャストは送り先のIPのブロードキャストではなく、自分が属しているネットワークのブロードキャスト
SSHポート転送で
注意:過去に別のクライアントで使用したポートは接続されているような内容で接続できない場合あるのでその時はローカルポート番号を変更する
アクセサリー -> リモートデスクトップ
このとき、本来のリモートディスクトップのポートは3389であるが同じのローカルホストでもうまく動かないので3390に指定
画面の指定は
あとはTeraTermでLoginしていればOK
リモートデスクトップではShutdownボタンがないので
リモートディスクトップ上で、Ctrl+Alt+End
or
コマンドプロンプトから shutdown /s
を行う
HOSTA:
$ ssh mz80.ism21.net -L 3002:192.168.10.65:3389
HOSTB(mz80.ism21.net) :
------PC---------- ----Linux---- --Linux-- Port ---------- | Teraterm | ssh | Host A | ssh | Host B| 3389 |Windows | | Port 3001 |=========| Port 3002 |=====| |========|192.168 | | Rhost localhost| | | | | | 10.65 | | Rport 3002 | ------------- --------- ---------- ------------------
リモート側ホストに「localhost」と入力すると次に表示させたときは空白になる
3段の場合
PC(Port:3001) → HOST A(Port:3002) → HOST B(Port:3003) → HOST C(経由) → Windows (Port:3389)
ssh (IP1) -L (Port1):(IP2):(Port2) コマンドを実行するホスト(IP2)のPort1に来たパケットをホスト(IP1)のPort2に投げる
参考
招待状を作成時最後に以下のエラーが出た場合
プログラムを開始できませんでした。再試行してください。
コンピュータをセーフモードで起動、もしくは Administrator 権限を持つアカウントでログオン
コマンドプロンプト
> sessmgr -service
その後再起動
この作業を行うとなぜかghostでデュプリケートしたPCでUSBメモリが2回目または2個目を認識しない現象(デバイスは認識するがドライブレターが割り当てられない)が修正される。因果関係は不明
参考