yuu_nkjm blog


2011-03-13(Sun) 編集

[Xming][Linux][openSUSE][Windows] Linux上の画面(X11)をWindows上で表示し,操作する

はじめに

本記事で紹介する内容は,Xの転送元と転送先が同一ネットワーク内にある場合に使える.しかし,SSH X11 フォワーディングでXmingにリモートのXを転送する - yuu_nkjm blog(2011-03-20)で紹介する方法はXの転送元と転送先の配置を気にせず使えるので,まずはそちらを試すのがオススメ.

リモートコントロールについて

LinuxをリモートからGUIで操作する場合は,主に3通りの方法があると思う.

  1. vncを使う: 水銀室 VNC操作 -openSUSE Linuxデスクトップ環境構築-
  2. RDPを使う: XRDPでLinuxをRDPサーバーにする : アシアルブログ
  3. X11を使う: xming+puttyでのXの使い方マニュアル

1番目のvncを使う方法は,低速だが一番簡単だった記憶がある.しかし,水銀室 VNC操作 -openSUSE Linuxデスクトップ環境構築-を参考にやってみたが,うまくいかなかった.2番目は,suseのデフォルトのレポジトリにはxrdpが入っていなかったので止めた.以下では,3番目の方法をとる.

Linux側の設定

Linux機には,openSUSE11.2がインストールされている.

yastでの設定

「yast→ネットワークサービス→リモート管理(VNC)」より「リモート管理を許可する」を選択する.

[yast→システム→"/etc/sysconfigエディタ」を選ぶ.ツリーから Desktop → Display manager → DISPLAYMANAGER_REMOTE_ACCESS を選択して,"yes" を選択する.同様に DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN を選択して,"yes" を選択する.

gdmの設定

/etc/gdm/custom.confの以下の項目がtrueになっているか確認する.

[xdmcp]
Enable=true

xhostの設定

xhostまたはxauthコマンドでXサーバへのアクセスの許可・不許可を設定する.Windows機のXサーバ(Xming)を使うので,この設定は必要ないかも.

デフォルトでは,ローカルホスト以外からは X サーバにアクセスすることはできない.

 xhost +10.200.30.11:0.0
として,10.200.30.11:0.0からのアクセスを許可する.

DISPLAY環境変数の設定

操作対象となるLinuxマシンのDISPLAYを"Windows機のIPアドレス:0"とするように.bashrcなどに書く.

 export DISPLAY=10.200.30.11:0.0

Windows側の設定

Windows機には,Windows 7がインストールされている.

Xmingのインストール

Xmingをダウンロードし,インストールする.Portable SSH Clientにチェックをする.Xmingをインストールしたディレクトリを覗くと,X0.hostsというファイルがある.この中に,接続を許可するIPアドレスを書いてやる必要がある.0はディスプレイ番号に応じて変更する.

(1)~(3)のいずれかの方法で,Linux機に接続する.

Xmingを使用する

(1) Puttyを使う

三つの方法のなかで一番使いやすいと思う.

  1. Xming\XLaunch.exeを起動.
  2. "Display settings"では好きなモードを選ぶ.Display Numberは0で.
  3. "Session type"では,Start no clientを選ぶ.
  4. "Additional parameters"はお好きに.無駄なエラーを避けるためにも,初回はClipboardはなしにしても良いかも.
  5. "Finish configuration"では,設定を保存したければ,Save configurationを押す.完了をクリックすると,Xmingが起動する.
  6. 先にXmingを起動してから,Puttyでサーバにログインする.この端末を使ってLinux側の操作をする.
  7. yast2などのGUIベースのアプリケーションをputty上で呼び出すと,Windows内のウィンドウとして立ち上がる.
立ち上がったところ

Windows上にYast2の画面が開いたところ

(2) XmingからXDMCPを使う

Linux機にログインしたデスクトップ全体が必要な時は,(1)ではなくこちらを使う.

  1. Xming\XLaunch.exeを起動.
  2. "Display settings"では"Multiple Window"以外を選ぶ.Display Numberは0で.
  3. "Session type"では,Open session via XDMCPを選ぶ.
  4. "XDMCP settings"では,Connect to hostに接続先を指定する.
  5. "Additional parameters"はお好きに.無駄なエラーを避けるためにも,初回はClipboardはなしにしても良いかも.
  6. "Finish configuration"では,設定を保存したければ,Save configurationを押す.完了をクリックすると,Xmingが起動する.
  7. ログイン画面が正常に表示された.ユーザ名とパスワードを入力したが,なぜかログインできなかった./home/usera/.xsession-errorsを見てみると,xterm Xt error: Can't open display: ::ffff:192.168.0.111:0というエラーが見つかった.IPv6が悪さをしているようだ.
  8. Re: OpenSUSE11.2 でxdmcpが動かない - opensuse-ja.opensuse.org - ArchiveOrangeを参考に, /etc/sysctl.confに以下の変更を加え,IPv6をオフにした.
    net.ipv6.conf.all.disable_ipv6 = 1
    
    もう一度,(2)の最初から行うが,やはりログイン後すすまない.今度は,.xsession-errorsには"Fatal IO error 11 (Resource temporarily unavailable) on X server"というエラーが出ていた.しかし,(2)でXmingのウィンドウを開き,その後そのウィンドウを閉じ,さらに(1)の様にStart no clientでXmingを起動すると,XDMCPでログインしたデスクトップが表示された.(1)さえ動けばやりたいことはできるから,この方法はこんなとこでいいや.
(3) Xmingから呼び出したxtermを使う

plinkの呼び出し方がよく分からないし,xtermよりputtyの方が好きなので,殆ど使わない.これを使うぐらいなら(1)を使う.

  1. 普段,Puttyごった煮版のputty.iniに設定を書き出すタイプのplinkを使っているので,Xmingのディレクトリにごった煮版のplinkとputty.iniをコピーする.Xming/putty.confに使用できるplinkが指定できそうだが不明.
  2. Xming\XLaunch.exeを起動.
  3. "Display settings"では好きなモードを選ぶ.Display Numberは0で.
  4. "Session type"では,Start a programを選ぶ.
  5. "Start program"では,Using PuTTY(plink.exe)にチェックする.接続先とログインユーザを入力する欄があるが,接続先を入れるとputtyのプロファイルが読まれる様だ.
  6. "Additional parameters"はお好きに.無駄なエラーを避けるためにも,初回はClipboardはなしにしても良いかも.
  7. "Finish configuration"では,設定を保存したければ,Save configurationを押す.完了をクリックすると,Xmingが起動する.
  8. Xmingがplinkを使って接続先のxtermを開いてくれる様だ.xming+puttyでのXの使い方マニュアルを参考にした.この方法だと接続にplinkは使うけど,puttyのコンソールは使わず,xming経由(?)で呼び出したxtermを使う事になる

参考ページ


トップ «前の日(03-12) 最新 次の日(03-14)» 追記 設定
2006|01|06|12|
2007|06|09|
2008|01|03|04|06|07|08|09|10|12|
2009|01|02|05|06|07|08|10|11|12|
2010|03|04|05|06|07|08|09|10|11|
2011|01|02|03|04|05|06|07|08|09|11|12|
2012|01|02|04|06|07|08|10|11|12|
2013|01|02|03|07|08|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|
2015|01|02|07|11|12|
2016|01|03|05|07|08|09|