j3iiifn’s blog

ネットワーク、インフラ、セキュリティ、プログラミング(Python、Android)についての備忘録

Ubuntu 18.04 serverでちょろっとWebブラウザを開きたいとき

やりたいこと

  • Webブラウザでとあるファイルをダウンロードしたい
    • cURLwgetではなく、Webブラウザからでないとダウンロードできないものがたまにある
    • 例えば、VMware vSphere Hypervisor (ESXi) ISOファイルをダウンロードするには、WebブラウザでMy VMwareにログインする必要がある
  • Ubuntu 18.04.2 LTS ServerでWebブラウザを開きたい
    • サーバ版なのでデスクトップ環境はインストールしていない

環境

Ubuntu 18.04.2 LTS Server

方針

  • Xvfbで仮想ディスプレイを作って、x11vncでその画面を手元のPCに転送する
  • リッチなデスクトップ環境は不要なのでインストールしない
  • SSH X11 Forwardingは使わない。最初に試してみたが、遅くて使い物にならなかった

手順

概要

  1. 必要なパッケージをインストールする
  2. x11vncのパスワードを設定する
  3. 仮想ディスプレイを作る
  4. VNCを起動する
  5. Firefoxを起動する

1. 必要なパッケージをインストールする

Xvfb、x11vnc、Firefox、日本語フォントをインストールする。

$ sudo apt install xvfb x11vnc firefox 'fonts-takao-*'

2. x11vncのパスワードを設定する

$ x11vnc -storepasswd
Enter VNC password:
Verify password:
Write password to /home/ubuntu/.vnc/passwd?  [y]/n y
Password written to: /home/ubuntu/.vnc/passwd

3. 仮想ディスプレイを作る

$ Xvfb :99 -screen 0 1280x720x16 &

4. VNCサーバを起動する

$ x11vnc -display :99 -usepw -forever -bg

5. Firefoxを起動する

$ DISPLAY=:99 firefox

または

$ export DISPLAY=:99
$ firefox

6. VNCクライアントで表示する

Macなら標準でインストールされている「画面共有 (Screen Sharing)」アプリで接続できる。 Macのターミナルで次のコマンドを実行する。

$ open vnc://サーバのIPアドレス:5900/

画面共有アプリが起動し、パスワードを聞かれる。

f:id:j3iiifn:20190520201217p:plain

パスワードを入力すると画面転送が始まる。

f:id:j3iiifn:20190520201351p:plain

キーボードやマウスによる入力操作も可能。

画面の右と下が黒くなってFirefoxのウィンドウを最大化できないのが気持ち悪いが、本質ではないのでトラブルシューティングは割愛する。

終了したい時

FirefoxをCtrl+Cで終了した後、Xvfbをkillする。

$ pkill -f "Xvfb :99"

Xvfbをkillすれば、同時にx11vncも終了する。

参考にした記事