iPhoneXで、ubuntuを動かす。
2018.06.09
この記事は最終更新日から1年以上が経過しています。
どもです。
前回、この様な感じで、iPadで開発したい。
と言った記事を書いたのですが、意識高めでiPhoneでも開発したいと思うようになってきました。
というのも、当方はiPhoneXを使用しているのですが、定価で購入すると10万以上するシロモノ。
この子。
ちょっとしたpcなら余裕で買えちゃう値段。
さらにiPad Proも買えちゃう値段なわけなのです。
こんな、スマホを持っていながら、日々行なっているのはゲームだったり、仮想通貨の価格の確認だったり、Yahoo!ニュースみたりとか、値段相当の利用がされていない気がしてきたからです。
さらに言うと、子供を色々な場所に連れて行く機会も増えてきて、何かと待ち時間が増えてきました。
ちょっと時間ができたら、ついスマホを取り出すのですが、無意識に行なっているのは「ガーデンスケープ」とか、ゲームだったりします。
いかん!
このままだといかん!!
意識高く、この習慣を変えて、少しでも時間が空いたらスマホを取り出して開発を行なってみようではないかと。
iPhoneで環境を作ると、本当にどこでも取り出せて直ぐに開発できる最強のスマホになるではないかと。
それで色々考えた結果、iPhoneでubuntuを動かせれば良いなと。
sshでサーバー開発などはすぐに行えますが、これでは物足りなくなってGUIでOSを動かしたい気持ちが高まってしまったので実行しました。
それで今回行なったのは、脱獄など行わず、VPSにubuntuをインストールして、VNCでアクセスして動かす方法となります。
VPSサーバー契約
先ずは、サーバーが必要なのでVPSの契約をと。
最近、conohaさんが使いやすいのもあって、めっきりVPSはconohaさんをメインで使用させて頂いております。
スペックは以下の通りとなります。
・プラン 1G
・メモリ 1GB/CPU 2Core
・SSD 50GB
・OS Ubuntu 18.04
「サーバー追加」からすぐサーバーを追加できます。
最低でもメモリは1GBあった方が良いかなと思ってこちらにしました。
とりあえず、契約完了しましたら、conohaのコンソールからubuntuのGUIをインストールして行きましょう。
ubuntu GUIインストール
早速、ubuntuのGUIをインストールしていきます!
ConoHaのダッシュボードへ移動し、契約したサーバーを選択し、
ConoHaのコンソール画面からrootアカウントでログインします。
「コンソール」をクリック。
login アカウントをroot と入力。
パスワードは、自分で設定したパスワードを入力、リターン。
ログイン完了しましたら、以下のいつものコマンドを実行します。
# apt-get update # apt-get upgrade
次に、GUI化後のログインに使用する一般アカウントの登録を行っていきます。
Ubuntuの仕様上、rootアカウントでログインすることはできないので、この作業を行わないとログインができなくなってしまいます。
アカウントの追加及びアカウントにrootコマンドの実行権限を与えるためには以下のコマンドです。
usernameは任意の名前となります。
# adduser username # usermod -G sudo username
adduserを行った後、アカウントのパスワードを設定していきます。
Enter new UNIX password: Retype new UNIX password:
パスワードを2度入力後、以下の様な項目を聞かれますが、とりあえず空白でリターン。
最後に「Y」リターン。
アカウント作成後、以下のコマンドでアカウントを変更し、sudoコマンドを実行できるかテスト。
# su - username
問題なければ、GUIのインストールを行っていきます。
GUIインストール
それでは、GUIをインストールしていきます。
再度、rootアカウントでログインします。
まず、とても便利な「tasksel」を利用したいので、インストールしていきます。
# apt install tasksel
インストール完了しましたら、「tasksel」を起動。
以下の様な画面が表示できればOKです。
今回は、Ubuntu軽量版である、LXDEのデスクトップ「Lubuntu」をインストールしたいので、
メニューの下へと移動し「Lubuntu Desktop」のところでスペースキーで選択し、エンターキーで確定します。
インストールに少し時間がかかりますので、しばらく待ちましょう。
インストールが開始されます。
100%になるまで待ちましょう。
taskselは他にも、LAMP環境やSSHなんかも簡単にインストールすることができます。
処理が完了したら、以下のコマンドを実行して日本語入力の設定をしましょう。
# aptitude -y install language-pack-ja-base language-pack-ja ibus-mozc # update-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja" # source /etc/default/locale
正常に完了しましたら、一度再起動します。
# reboot
ConoHaのコンソールを見てみると、
お。
きたー!
それでは、外からアクセスできるようにVNCの設定を行っていきましょう。
VNC Server インストール
それでは、外からアクセスできるようにVNCをインストールしていきます。
ターミナルなどから、SSH接続でログインします。
$ ssh username@ipアドレス
アカウント作成時に設定したパスワードを入力してログイン。
インストール
vncサーバーのvnc4serverをインストールします。
$ sudo apt install vnc4server
初回起動 & パスワード設定
インストール完了しましたら、早速起動。
初回起動時にパスワード設定が必要となりますので、設定を行います。
$ vncserver
vncserver You will require a password to access your desktops. Password:(入力) Verify:(再入力)
初期設定のポート番号は起動時のスクリーン番号になります。
vncserver :1 なら5901 となります。
一旦停止
設定を行うため、vncサーバーのスクリーン番号を指定して一旦停止。
$ vncserver -kill :1
設定追加
LXDEを起動させるため、vncの設定ファイルであるxstartupに追記します。
$ vi ~/.vnc/xstartup
以下を追記
# 追記 /etc/X11/Xsession autocutsel -fork /usr/bin/lxsession -s Lubuntu -e LXDE &
~/.vnc/xstartup 全ソース
#!/bin/sh # Uncomment the following two lines for normal desktop: # unset SESSION_MANAGER # exec /etc/X11/xinit/xinitrc [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & x-window-manager & # 追記 /etc/X11/Xsession autocutsel -fork /usr/bin/lxsession -s Lubuntu -e LXDE &
設定ファイルに追記完了したら、再びvncサーバーを起動します。
$ vncserver
Macで確認してみる
それでは、
cmd+K のショートカットで、「サーバーへ接続」のダイアログが表示しますので、こちらにubuntuをインストールしたipアドレスとポート番号を入力。
(ウィンドウ番号1番の場合)
vnc://ipアドレス:5901
パスワードを聞かれたら、vncserver起動に設定したパスワードを入力。
無事表示しましたー。
VNC Viewerで確認してみる
VNCアプリを使って接続する場合。
iOSや、macOSで提供されている「VNC Viewer」を使えば、Macのみならず、iPhoneやiPadでもVNC接続が行えます。
iPhoneでも確認してみる
早速、iPhoneでも、VNC接続が行えるか確認。
こちらは、スクリーン番号でも590Xのポート番号と、どちらでも接続できるようでした。
vnc:// のプロトコル指定も必要ありません。
ipアドレス:1
ipアドレス:5901
とアクセスできたのが確認できました!
これで、iPhoneでも、Ubuntuが扱えます!!
と、接続できるのは確認できましたが、これまで行ってきた接続方法だと、通信が保護されていないので、情報が筒抜けのままとなってしまいます。
それを回避するため、SSHポートフォワードでSSH通信でVNC接続を行う方法があります。
SSHポートフォワード
通常、PCなどで接続を行う場合は、以下の様な感じで使用します。
$ ssh -L 8888:localhost:5901 username@ipアドレス
-LオプションはLocalのことを表します。
その後は、
[localhostポート]:[リモートホスト]:[リモートホストポート]
と言った指定になりますので、ローカルのPCの、localhost:8888でリモートホストの5901番ポートに転送される形となります。
(「username@ipアドレス」は接続先)
また、サーバーにログインせず、ポートフォワーディングのみ行う方法は、Nオプションを付与することで行なえます。
ssh -N username@ipアドレス -L 8888:localhost:5901
上記のコマンド入力後、以下でVNC接続を開始するとSSH通信でVNC接続を行うことができます。
vnc://localhost:8888
SSHポートフォワーディング iPhone アプリ
と言ったわけ、SSHポートフォワードでVNC接続を行えるiPhoneアプリも、探してたどり着いたのがこちらのアプリでした。
Remoter Pro (VNC, SSH & RDP)
https://itunes.apple.com/jp/app/remoter-pro-vnc-ssh-rdp/id519768191?mt=8
有料(¥360)となってしまうのですが、まぁ良いだろう。
とのことで使用しているのですが、SSH接続がうまくいかないぁい。。
と、もがいていたのですが、VNCでUbuntu使用するのも微妙だなぁ。。
と、だんだんと思い始めてきて、某AndroidタブレットにLinuxを入れましたので、次はそちらの話でもと。
またまたぁ。