24 Jan 2018, 17:21

呼吸を計測するガジェッド spire stoneでポモドーロは加速する!

はじめに

プログラマーのライフハッカーなら誰もが一度はやったことがあること、それは時間管理のための管理術 ポモドーロテクニック。このfuturismoでも、なんども取り上げてきては紹介していた。

ポモドーロテクニックというのは 25分集中して、5分休むというものを繰り返していくこと。ポモドーロテクニックを用いることで、以下の気づ気を得られた。

  • 作業と休憩を明確に分けることができる
  • 作業に集中できる
  • 自分の作業見積ができる

今使っているポモドーロツール

今までいろんなツールを試してきたけれども、Webアプリであるtomato.esが一番いい。

Webペースなので、場所を選ばない。LinxuでもWindowsでも動く。シンプルな外観で、そこが気に入っている場所。ほかは、タスクを記録できるアカウント管理機能があったり、統計機能があったりする。そしてなんと、我らDeveoperのために、APIも公開されているのである。

しかし長続きしたりしなかったりする。長続きしない原因の一つが、忙しすぎて、5分休むことがもったいないと感じるからだ。本当に5分休むと効果があるの??その間仕事したほうがいいのではないのか?

ここで大事になってくるのは、休んだことによって集中力が増すかということ。腹式呼吸を深くすることによって、集中できるということをいろんなところで聞いたことがある。果たして、仕事中は複式呼吸をしているのだろうか?実は途中から 肺式呼吸となっているのではないか??

そんな疑問を解明するために生まれたのが、この spireというガジェット。

Spire

手のひらに収まってしまいそうな軽量さ。これをズボンのベルトの内側などに、設定しておく。

すると、Bluetoothで通信して、アプリ上のソフトでデータを解析して、今の呼吸の状態を把握することができる。これは私が探していたガジェットだ!

ポモドーロテクニックを利用すると、果たして本当に集中力があがるのか?集中力を客観的に測る尺度は?と考えてきた。ポモドーロテクニックで25分の作業が終わった時、5分間の休憩をとるが、このときにやることは?(本にはここで心を休めると書いてあった気がする)

その客観的な指標が呼吸が乱れないことではないか?常に一定の深い複式呼吸をしていると、ゾーンに入ることができるのではないか?逆にゾーンにはいるには、呼吸を整えればいいいのではないか?

そんな思いから、作業中の呼吸を取得したいと前々から思っていた。fitbitの存在を知った時、脈拍は集中力の記録に使えるのではないかと思ったが、いろいろ調べて脈拍はさほど関係なさそうだ。呼吸と集中力は関係ある。

ポモドーロテクニックと組み合わせる

こんなことを考えてみた。

  1. ポモドーロをこなす
  2. 休憩する。ここで、25分間の作業のレビューをする。
    • 集中力はどうだろうか?
    • 次にやる作業は?
    • 無駄なことをしていないだろうか?

1と2 を繰り返す。

これによって、呼吸駆動のポモドーロテクニックができる、というわけだ。

ちなみにこのガジェットは プログラムから操作できるようなAPI が公開されている。

で、少し触ってみたのだけれども、リアルタイムにデータが取得できない。日毎?のデータが取得できるようになっている。これではやりたいことができない。今後に期待です。

22 Jan 2018, 15:22

LectroFanのホワイトノイズが不快だった話

はじめに

先日、ライフハック大全を購入したのだが、その中に載っていたLectroFanというガジェットを購入した。

ホワイトノイズってなに?

本曰く、静かなオフィスよりも騒がしいカフェのほうが勉強に集中できる秘密は、ざわつきがある方が脳が自分の中に没頭できるからだそうだ。カフェのような環境音を人工的に生み出すのが、ホワイトノイズ。

環境音をつかうことで、集中力を高める ことができる、らしい。というわけで、ホワイトノイズを生み出すガジェット、LectroFan を買ってみた。

これ、つけてみてびっくり。全然心地良くない。むしろ、不快だ。これでリラックスできる人、集中できる人、狂気。

実際の音はこんな感じ

Youtubeにホワイトノイズのサンプルがあるので、貼り付け。

[https://www.youtube.com/embed/4AvK8BzZItA]

LectroFanには、いろいろなモードがあるのだが、どれもイマイチ。この不快さは、会社の実験室のサーバやストレージの音を連想させるからだと思う。仕事をしているようで、不快だ。

といいつつ、最近はこれをずっと聞いて作業している。これは中毒性があるかもしれない。これが集中力?レクトロファン、恐るべし。

17 Jan 2018, 15:13

UbuntuでWake on Lanするための設定メモ

はじめに

自宅のパソコンのwifi接続がどうも不安定で、たまに接続が切れる。そういうときは、USBのwifi子機を抜き差しすると復旧するのだけれども、今日は外出中にいきなり接続できなくなった(T_T)

そんな非常事態に備えて、外出中にパソコンを再起動して復旧を試みるために、Wake on Lan の設定をしたので、今日はそのメモです。

環境

  • Ubuntu 16.04

設定メモ

BIOS設定

BIOSの設定が必要。ここは省略。。なのだが、ここがわからずいろいろな設定を試した挙句、最後にBIOS初期化して、4時間かかった。

OS設定

wol設定の確認/変更に必要なethtoolを入れる。

$ sudo apt install ethtool

NICの名前を確認して、ethtoolを叩く。Wake-on: d で Wake on Lanが無効状態。 Wake-on: gで有効状態。

$ ifconfig
$ sudo ethtool enx343dc4787303
Settings for enx343dc4787303:
No data available

おりょ??なにも表示されない。おばかな頭で考えること数十分、どうやら無線LANでは Wake on Lan ができないという根本的なことに気づいたのたった!!

NICは通電している必要があるのだけれども、無線LANの子機はUSBでPCに刺さっているのだから、PCの電源が落ちれば電力供給されなくなって、動かなくなる。バカダー。

無線 Lan でも Wake on Lanしたい

無線Lan でも Wake on Lanしたい。調べると、イーサネットコンバーターというものがあり、これを購入し、有線をパソコンと コンバーターでむすぶと、あたかもその繋いだPCが物理LANでつながれているようにルータから見えるというもの。

以下をamazonでget.

NICの名前を確認して、ethtoolを叩く。今度こそ・・・

$ ifconfig
$ sudo ethtool enp0s31f6
 Settings for enp0s31f6:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Full 
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Advertised link modes:  10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Full 
    Advertised pause frame use: No
    Advertised auto-negotiation: Yes
    Speed: 100Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 1
    Transceiver: internal
    Auto-negotiation: on
    MDI-X: on (auto)
    Supports Wake-on: pumbg
    Wake-on: g
    Current message level: 0x00000007 (7)
                   drv probe link
    Link detected: yes

Wake-on: g となっていました。これでOSレベルでの設定ができていることになります。

ifconfigを叩いて、MAC アドレスを調べておく。

クライアントPCに wakeonlanのツールをインストール

クライアントPCにwakeonlanのツールを入れる。

$ sudo apt install wakeonlan

そして、いよいよ、Wake on Lanを実行、電源が入りました!

$ wakeonlan <Mac Address>

外出先から Wake on Lanしたい

外出先から、wake on lanをすることで、PCを起動したい。我が家はソフトバンク光を契約していて、ルータもレンタルなのでルータに port forwardingの設定をすればいけると思っていた。。。

しかし、あらゆる手段を試したのだが、できない!!

ここまでか・・・と思ったが、いろいろ情報収集をすると、どうやらRaspberry pi から wake on lanを実行する事例がいくつかあった。うちには、raspberry pi はないのだけれども、ほこりにまみれたロボコンマシンがあったのだった。こんなの↓

このボロットにsshで乗り込んで、プライベートネットワークからwake on lan を実行すればいけるのでは?

以前の設定メモを元に、sshで乗り込んで実行してみたところ、成功!

やったー。

16 Jan 2018, 14:29

BIOS 初期化で PC起動しなくなった。原因はCSM設定

はじめに

Wake on Lan の設定をしようと思っていて、BIOSの設定をいろいろいじっていたのだけれども、よくわかんなくなってきたので、BIOS初期化をしたら、PCがBIOS画面から立ち上がらなくなった。

なん・・だと・・・??

Boot Device Not Found

いろいろ調べてみると、Boot Deviceがまったくなくなっているではないですか!

起動順序を入れ替え変えようにも、デバイスがないので、切り替えられない。試しに、USBを刺しこんでみると、USBを認識して表示はされるのだけれども、それをブートしようとはしない。

つんだ・・・。涙が出てきた。泣きじゃくった。と、そこへ!

CSMの設定という光が

どうも、CSMという設定を有効にするとよいという記事を見つけた。

引用しますと、

“UEFI BIOS“とは新しいBIOSの仕様。

以前の”レガシーBIOS”と比べると操作性の良さやセキュリティーの高さ、高速ブートなどの利点があります。

そんなUEFI BIOSですが、接続したCD・DVD・HDDドライブがBIOS上から認識しないというトラブルの相談をよく受け付けます。― 正確には、デバイスとして認識するものの、ブートディスク(起動ディスクのこと)として選択できないというトラブルです。

ということで、UEFI BIOSという新しいBIOSの使用が私の邪魔をしているようだ。

CSMとは

CSMとは Compatibility Supported Module の略です。つまり、レガシーなBIOS、レガシーな周辺機器やドライバ、レガシーなOSとの互換性を保つための設定。

ということで、これが有効になると、レガシーな部品との互換性が回復してつかえるようになる。なにが原因かわからないのだけれども、ブートローダあたりが壊れてしまったのだろうか?

とはいえ、無事に復旧することができました。めでたしめでたし。

14 Jan 2018, 05:38

x2goを使ってUbuntuでリモートデスクトップする

はじめに

この前から、Pythonのコードを書く際に、Jupyter NotebookではなくてPycharmを使おうかと思い、調べていた。どうも、PyCharmのProfessional Editionには、リモートデバッグ機能があって、サーバ上にあるインタプリタを実行できるようだ。これは便利。たとえば、例としてAWS上で動いているPythonと通信して、ローカルでデバックできたりする。

このリモートデバッグ機能と前回紹介した、Scientific Modeで 心は Professional Editionに課金しようとしていたのだけれども、もう少し調べてやめた。それは、どうもProfessional EditionでなくCommunity Editionでも 自分がやりたいデバッグができそうだからだ。

それは、サーバ上にリモートデスクトップして、サーバ上でPyCharmを動かすということ。というわけで、Ubuntuでリモートデスクトップをするためのメモ。

環境

  • サーバ、クライアイトともに Ubuntu 16.04 LTS

x2goをつかう

Ubuntu用のリモートデスクトップ用アプリ、X2Goをつかう。

いろいろと、ツールを試してみたのだけれども、x2goが最も安定していたので、これに決めた。

サーバ側にツールをインストール

$ sudo apt-add-repository -y ppa:x2go/stable
$ sudo apt update
$ sudo apt -y install x2goserver x2goserver-xsession

クライアント側にツールをインストール

apt-get install x2goclient

メニューバーから[Session]-[New Session]を選択。以下のように、設定をする。

ポイントは、 Session Type. Ubuntuでは、KDE 、LXDE、XFCEを選択すること。それしか使えないらしい。ジブは、xfceを選択。

以下で、XFCEをインストール。

sudo apt-get install xfce4

これで、X2Goクライアント上でセッションを選択して、ログインするユーザー名とパスワードを入力して[OK]ボタンをクリックすれば、リモートデスクトップ接続ができる。

これで、PyCharmを起動して開発すれば、リモートデバッグをせずとも、サーバ上のリソースが利用できるので、便利。しかし、なぜだかたまにハングするのだけれども。。。

 

追記

LXDEを使ったほうが、xfceよりも圧倒的にさくさく動きました。

sudo apt install -y lubuntu-desktop

13 Jan 2018, 16:51

PyCharmの scientific modeがスゴい!Jupyter Notebookいらないかもよ

はじめに

Kaggleで、scriptを書く人と、Jupyter Notebookを書く人がいるのだけれども、どっちが生産性がいいのかなというのが、ふと自分のなかに疑問として湧き上がった。自分は、Jupyter Notebook派だ。しかし、別の方法も試してみるのも、気分転換になるかもとおもい、しばらくぶりにPyCharmを使おうとした。

すると、2017/11に出た最新版 2017.3 で Professional Editionに追加された機能、Scientifc modeがなんだかスゴそうだったので、今回紹介する。

Scientific Mode

まずは、公式サイトからの紹介を翻訳。

[https://www.youtube.com/embed/OHwh0c8UsW4?start=66]

特徴

  • iPyrhon Notebook(Jupyter Notebook)がPyChamに結合。
  • IDEの恩恵を十分に受けて開発できる。自動補完、ナビゲーション、エラーチェックなど。
  • 対話的Python コンソールで REPL駆動開発ができる。
  • NumpyやPandasのデータ構造を見るViewerがある。
  • MatplotlibをインタラクティブにみるViewerがある。
  • Anaconda連携

有効方法

ツールバーの 表示 > Scientifc モードを選択。すると、

  • プロジェクトView
  • Python コンソール
  • ドキュメントView
  • SciView(これがデータビューとグラフビューを兼ね備えている)
  • 実行したオブジェクトリストView

が現れ、まるで RStudio みたいなView配置になる。RでデータサイエンスをするならRStudio一択だけれども、PyCharmはPythonにおけるデータサイエンスのためのIDEになりえるのではないか?

ここがスゴい

例えば、Jupyter Notebookユーザならば、セルごとに処理を実行することができることに魅力を感じるかもしれない。それはPyCharmでもできる。カーソルで選択して、選択範囲を実行すると、選択した部分がPythonコンソールに送られて実行できるのだ。

そうして評価した、numpyやpandasオブジェクトはクリックすると、SciVIewに現れるのだ。なので、いちいちJupyter Notebook上で、 head()関数でデータフレームの中身を確認する必要がない。

少しコードを修正したら、再度範囲を選択して、実行すると式が再評価される。

That’s REPL駆動開発!!

何より嬉しいのは、IDEの恩恵を存分に利用してPyhtonのコードがかけることだ。IDEに必要な条件としては、以下のようなものがある。 PyCharmはすべて兼ね備えている。

  • シンタックスハイライト/ インデント
  • 検索・置換
  • タグジャンプ
  • コード補間
  • エラーチェック
  • リファクタリング
  • インタープリタ・デバッカ
  • プロジェクト管理
  • ドキュメント参照

所感

ここがスゴイでも書いたけれども、コードを部分実行して、そのデータフレームがすぐに見れるViewがあるところがとても気に入った。

Jupyter Notebookを今までずっと使っていたけれども、Jupyter Notebookの代わりとなるかもしれない可能性を感じた。とはいえ、EDAをしたり、他人に見やすくコードを公開するには、まだまだJupyter Notebookが必要だろう。それ以外の部分は、PyCharmでいいんじゃないか?

おわりに

一番気になるのは、お値段。Professional Editionは有料で1年間 89ドル = 1万円くらい。

しかし、日本の代理店?から購入するとちょっと安くなる。

まずは、試用を1ヶ月してみてから判断してみるのもよいのでは?

 

追記

Community Editionでも、選択範囲のみを実行したり、numpyやpandasの中身を見ることができた。なんだ、Professional版いらないかも。

12 Jan 2018, 12:09

ASUS ZenScreen MB16ACで快適楽々デュアルディスプレイ

はじめに

新パソコンを買ったのだが、せっかくなのでデュアルディスプレイにしたくなってきた。新パソコンは自宅サーバとして稼働させて普段は、有料自習室で作業することが多いので、モバイルで持ち運べるものを新調したくなった。いろいろ調べたところ、ASUSが一番スペックがよかったので購入した。

縦型に対応していなかった・・・

このASUSを選んだ一番の理由は、縦にサブディスプレイを使いたかったから。自宅も外出先もUbuntuを利用しているので、対応するドライバを入れて利用する必要があるのだけれども、残念ながらドライバが対応していなかった(T_T)。

Rotation is not supported due to missing functionality in the generic modesetting driver

Ubuntu用ドライバ DisplayLinkをインストール

Ubuntuで利用するには、DisplayLinkというドライバをインストールする必要がかある。

これをお手軽に実施するツールがある。

ダウンロードしたスクリプトを実行すると、よしなに関連ライブラリのインストールと設定をしてくれる。

xrandrで設定

デュアルディスプレイ用の設定をしていく。 まずはモニタが認識されているか確認。

$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x47 cap: 0x9, Source Output, Sink Offload crtcs: 4 outputs: 4 associated providers: 1 name:Intel
Provider 1: id: 0x106 cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 1 name:modesetting

sourceの設定。

xrandr --setprovideroutputsource 1 0

xrandrでモニタ名を調べる。

$ xrandr
eDP1 connected primary 1600x900+0+0 (normal left inverted right x axis y axis) 309mm x 174mm
DVI-I-1-1 connected (normal left inverted right x axis y axis)

そしていよいよデュアルディスプレイのコマンド投入。

xrandr --output DVI-I-1-1 --auto --right-of eDP1

元に戻すには、

xrandr --output DVI-I-1-1 --off

06 Jan 2018, 12:21

Ubuntu16.04にCUDAとcuDNN入れるまでの設定メモ ~ GPU版xgboost導入まで

はじめに

NVIDIAのGPUつきのパソコンを購入したので、セットアップメモです。

xgboostをGPUで動かすところを最終目標とします。

環境

  • Ubuntu 16.04 LTS
  • CUDA 9.1
  • cuDNN 7.0.5
  • Python 3.6
  • Anaconda 3.5
  • xgboost

NVIDIA GPU環境に必要なツール

なにしろGPUを購入してみたものの、無知なもので、まずはどういう仕組みで動かせるのか調べることにした。NVIDIA GPUを動かすためには以下の2つが必要らしい。

  • NVIDIA CUDA Toolkit ・・・ NVIDIA ドライバーと開発環境
  • cuDNN・・・ディープ・ニューラル・ネットワーク(DNN)ライブラリ

いきなりDockerという手もあるが

いろいろ調べると、サクッとまるっとこれらをインストールする簡単な方法があった。それが、Dockerだ。

nvidia-dockerという Dockerのラッパーツールがある。これを利用すると、以下の引用図のようなアーキテクチャでコンテナを動作させることができる。

dockerをつかうことのいいところは、ディープラーニング用ライブラリごとに環境を用意できるところ。たとえば、Tensorflow, keras, pytorchの3つを使いたい場合、各ツールでサポートしているcuda/cudnnが違うと使えない。dockerを使えば、それぞれのライブラリごとに環境を用意できるのだ。

ただ、途中までインストールをしかけたのだが、dockerに関する知識が乏しく、時間もなかったので、今回は見送った。いつかnvidia-dockerを使いこなす。

NVIDIA CUDA Toolkitのインストール

とりあえず最新が最適化されていて高速だろうという理由から、最新版の9.1をインスールする。Tensorflow1.4は8でないと動かないらしい。以下のリンクにインストール手順がある。

.bashrcを編集してパスを通す。

export PATH=/usr/local/cuda-9.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda

PCを再起動する。再起動後、インストールできたかバージョンを確認する。

$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  384.90  Tue Sep 19 19:17:35 PDT 2017
GCC version:  gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5)

$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Nov__3_21:07:56_CDT_2017
Cuda compilation tools, release 9.1, V9.1.85

NVIDIA cuDNN のインストール

次に cuDNNをインストールする。

cuDNNはNVIDIA で アカウントを作成しないとDownloadできない。wgetもできない。不便。

アンケートに回答後、以下の3つをダウンロードして、サーバにscpで転送。

  • cuDNN v7.0.5 Runtime Library for Ubuntu16.04 (Deb)
  • cuDNN v7.0.5 Developer Library for Ubuntu16.04 (Deb)
  • cuDNN v7.0.5 Code Samples and User Guide for Ubuntu16.04 (Deb)

sudo dpkg -iでインストール。インストールできたかテストしてみる。

$ cp -r /usr/src/cudnn_samples_v7/ ~/tmp/cudnn_samples_v7/
$ cd ~/repo/cudnn_samples_v7/mnistCUDNN
$ make clean && make
$ ./mnistCUDNN
Test passed!

Anaconda環境の導入

データサイエンスのためのよくばりセット、Anacondaを入れる。これを入れればデータ解析のための大抵のツールが手に入る。最新版を落としてきてインストール。

kaggle用の環境をつくる。

$ conda create -n kaggle
$ source activate kaggle

GPU対応 xgboost

GPU対応のxgboostを動かすには、ソースからビルドする。

Pythonモジュールをインストール

$ cd python-package; sudo python setup.py install

GPU版 xgboost めちゃくちゃハヤイ!!

04 Jan 2018, 15:35

自宅のUbuntuサーバに外からsshでアクセスする

自宅に高価なパソコンを購入したので、どうせなら外出先でもアクセスしたい。

なので、外部から自宅サーバにsshする方法を調べて設定してみた。

環境

  • ソフトバンク光 BBユニット
  • Ubuntu 16.04 LTS (サーバもクライアントも)

ssh鍵認証でログインする

第一ステップとして、ローカルネットワーク、つまり自宅内のネットワークでssh接続できることを目指す。パスワード認証ではなくて、ssh鍵認証をする。ハッキングが怖いので。

これは、5年前!に書いた自分の記事が役に立った。整理しつつ、再掲。

サーバ側の設定

サーバ側にssh serverを インストールする。

sudo apt install openssh-server

これでOk.簡単です。次にsshの設定をいじる。 /etc/ssh/sshd_configを管理者権限で編集

sudo nano /etc/ssh/ssh_config

//ルートでのログイン禁止
PermitRootLogin no

//RSA認証の有効化
RSAAuthentication yes

//パスワードによる認証を許可
PasswordAuthentication yes

//空のパスワードは拒否
PermitEmptyPasswords no

//チャレンジレスポンス認証を不許可
ChallengeResponseAuthentication no

設定の反映のために再起動。

systemctl restart sshd

クライアント側の設定

クライアントの設定。といってもsshコマンドはデフォルトで入っている。

// 認証公開鍵の作成
$ ssh-keygen -t rsa

// いくつか質問されるのでEnter連打。

クライアントの公開鍵をサーバに送ります。安全のために、ここではscpコマンドを使うのがよいでしょう。

$ scp ~/.ssh/id_rsa.pub  tsu-nera@XXX.XXX.XXX.XXX:

再びサーバ側の設定

scpで送った鍵を保存する。

$ cat id_rsa.pub >> .ssh/authorized_keys
$ rm id_ras.pub

$ chmod 600 .ssh/authorized_keys

再度、sshd_configの設定を編集.

//パスワードによる認証を許可しない
PasswordAuthentication no

再起動して終了。

sudo systemctl restart sshd

ローカルIPアドレスを固定する

ローカルIPアドレス(プライベートIPアドレス)は、DHCP機能によって自動的に振られるので、これを固定IPアドレスにする。

固定の方法なのだけれども、ここでかなりハマった。以下の記事を参考に/etc/network/interfacesを覗いてみたのだけれども・・・

あれ、Loopbackのnicしかないyo!!

ということで、ここでハマった。いろいろ調べてみると、15.xからここらへんの仕様変更があったようで、名前が記事とは違うらしい。名前どころか、仕組みも違うみたい。詳しくは調べきれていないのだが、Network Managerというserviceに置き換わろうとしていて、そのフロントエンドが nm-appletというアプリだそうだ。

というわけで、nm-appletをいじる。これは、右上のネットワーク接続を示すアプレットのこと。これで、まずは接続情報というところをチェックする。Ipv4の欄の

  • IPアドレス
  • ブロードキャストアドレス
  • サブネットマスク
  • デフォルトゲートウェイ

をチェックしてメモする。そして、接続を編集するを選択して、現在接続中の通信を選択して編集を押す。Ipv4設定を選択し情報を以下のように入力する。

ここでは、192.168.3.5を固定IPアドレスにした。これでIPは固定になるはず(自信ないです。。。)

ssh port を 22から 10022に変更する

ssh は port 22 なのだけれども、これを変更する。ハッカーに攻撃されないようにね。

設定ファイルを開き、下記のように変更する。

$ sudo nano /etc/services

//前
ssh              22/udp     # SSH Remote Login Protocol
ssh              22/tcp     # SSH Remote Login Protocol

//後
ssh              10022/udp     # SSH Remote Login Protocol
ssh              10022/tcp     # SSH Remote Login Protocol

グローバルIPアドレスでアクセス

さあ、ローカルネットワークではこれでssh接続できるようになった。次はグローバルだ。まずは、自分のグローバルIPアドレスを以下から調べる。

ソフトバンク光BBユニットの設定からポート開放設定

自分の家のルータの設定を変更して、上で設定した10022番ポートがホストに回してくれるよう設定する。

  • http://172.16.255.254/ に接続、user/userでログイン
  • 詳細設定を開く -> ポート転送
  • 有効/無効 -> 有効
  • プロトコル -> tcp
  • WAN/LAN側ポート両方 -> 10022-10022
  • 転送先IPアドレス -> 自分のローカルipアドレス

ルーターを再起動する。

No-IPを使ってグローバルIPアドレスを DDNSで追跡する

グローバルIPアドレスは気まぐれで変更されてしまう。なので、変更を追跡してくれるサービスを利用する。DDNS(Dynamic DNS)というらしい。No-IPというサービを利用する。

これに登録して、fox10225fox.ddns.netというドメインを取得した。

最後の仕上げ

以下のコマンドで、アクセスできれば目標達成。

ssh -p 10022 tsu-nera@fox10225fox.ddns.net

ちなみにヘアピンNATに注意

同一ネットワーク内からグローバルIPにアクセスしようとすると、アクセスが失敗する。これは、ヘアピンNATと呼ばれているルーターの仕組みの問題。

ヘアピンNAT対応していないルータをつかっていると、どんなに設定をいじってもアクセスが失敗する(これでとても時間をつかった)

/etc/hostsを編集する方法がネットにたくさん散見された。これで試したところ、うまく行った。

$ sudo /etc/hosts

192.168.3.5 fox10225fox.ddns.net

03 Jan 2018, 06:47

Ubuntu で NVidia ドライバを使っている時の不具合

ドスパラでゲーミングPCガレリア(Galleria)を買ったのだけれども、 Ubuntu16.04をインストールしたら、解像度もへんてこだし、音も出ないしでいろいろ不具合がでた。PCのスペックは前記事の記事を参照。

いろいろ試してみたところ、どうもNVIDIAのドライバがインストールされていないからだった。

コンピュータの検索から、システム設定 > ソフトウェアとアップデートを選択。

追加のドライバータブを選択。NVidia CorporationからNVIDIA binary driverを選択。

これをインストールすれば、解像度もモニターに合うし、音も出る。誰かの助けになれば。