PC設定覚書と雑記

サーバー運用とPC日記

自分の趣味はアップデートです? ・・・

この前 Windows10 の大型アップデート1903が配信されて、常用クライアント機のアップデートに数時間かかってしまいました!

ラジオサーバー機、風呂音楽用サーバー機は、ほっときながらアップデートしたので、それほど気にはなりませんでしたが。

それなのに、この更新は CPU 使用率が異常に高くなるという問題を抱えたままなんです。

そして、この問題を解消するアップデートはまだ配信されていません。(まもなく配信されるらしい?)

Web サーバー機の Debian9 も次期 Debian10がすでに発表されていますが、使用アプリケーションの php7.3対応が完了すればアップグレードしたいと思っています。

もちろん、Debian9で配信されるアップデートは、毎日欠かさずチェックして更新しています。

そして、スマホの iOS ですが、昨日寝ている時間にダウンロードを済ませ、iOS 13.1にアップデートしました。

アップデートにもバグや動作不具合はつきものです。完全を待ってから!なんてことは実際無理だと思った方がいいです。

なので、アップデートが発表されたら、基本、「すぐにダウンロードしてインストールする、でOK!」と思います。

自分は、アップデート操作は、素人に出来るセキュリティ対策の基本だと考えています。 

iOS13.1配信の3日後に、iOS13.1.1が配信されています!

iPhone、iPad 用のOSである iOS13.1が配信されて、早くも3日後に修正版の iOS13.1.1が配信されました。

動作不具合のバグ修正のためのアップデートとのことです。

このタイミングなら、修正版の配信を待っても良かったことになりますが、最近はこのようなケースは珍しくありません。

特にOSのアップデートは、やはり、毎日チェックすることを習慣にしておくのがいいと思います。

そして、今回のようにアップデートに時間がかかる場合は、作業は週末にやるとかの対応でいいんじゃないでしょうか。 

Netcommons3最新版パッケージが発表されるようです!

本日、Netcommons3最新版が近日中にリリース予定との発表がありました!

今後、一般ユーザーが、個人でNetcommonsをインストール、アップデートすることが難しくなるのか? または全く出来なくなるのか?

とても気になっていたので、本日の発表を知ってとても嬉しい気持ちです!

このプロジェクトリーダーとスタッフの方々、そして開発エンジニアの方々に感謝の気持ちをお伝えしたいと思います!

NetCommons3.3.0がリリースされました!!

待ち望んでいたNetCommons3の最新版が、ほぼ9か月ぶりにリリースされました!

NET環境も、特にセキュリティ面での対策を筆頭に、非常に細かい対応が必要になり、また状況が日進月歩で変化していくようですから、システムをメンテナンスしていくことは想像以上の苦労があると思われます。

自分のような末端ユーザーは、その恩恵にあずかることしか出来ず申し訳なく思っています。

そんな中での今回の最新版発表は特に嬉しく、有り難さを強く感じました!

台風が来た12日の朝に発表されていましたが、12日は家に閉じこもっていたので、その日にアップデート作業を行いました。

一応、以下が備忘録です。 

 

※ OS、mysql 共に root ユーザで作業の場合です。不可ならsudoコマンドを付加して。 

<事前準備>

 (1)バックアップディレクトリ等作成。

   # mkdir -p /home/hokan/20191013bkup

 (2)最新NC3zipファイルをクライアントPCにダウンロード。

 (3)webサーバーOSに(2)のダウンロードファイルをアップロード。

 (4)(3)のファイルを解凍。

 (5)解凍ディレクトリをリネームしておく  

   # cd /home/hokan/20191013bkup

   ・・・/20191013bkup# unzip NetCommons-3.3.0.zip

   ・・・/20191013bkup# mv NetCommons3/ nc330/

 

<アップデート前のバックアップ>

 (1)対象NC3サイトを閲覧不可にしておく。

 (2)データベース $$$ のバックアップ(バックアップファイル &&&.sql 保管先/home/hokan/20191013bkup)

   # cd /home/hokan/20191013bkup

   ・・・/20191013bkup# mysqldump -u root -p $$$ > &&&.sql

    (mysql root のパスワードを入力)

 (3)ソースのバックアップ(保管先 /home/hokan/20191013bkup)

   # cp -r /var/www/NC3インストールディレクトリ/app/Config /home/hokan/20191013bkup/

   # cp -r /var/www/NC3インストールディレクトリ/app/Uploads /home/hokan/20191013bkup/

 

<Netcommons3本体のアップデート>

 (1)対象NC3サイトは閲覧不可にしたままで。

 (2)リネームディレクトリ下のファイル、ディレクトリを、既存NC3インストールディレクトリに上書き。

   ・・・/20191013bkup# cp -r nc330/* /var/www/NC3インストールディレクトリ/

 (3)cakeコマンド実行してアップデート

   # cd /var/www/NC3インストールディレクトリ/app

   ・・・/app# Console/cake PluginManager.update_all

   画面に「一括アップデート」が表示されるので、画面の指示どおり、S を入力してEnter。

   アップデート処理中、ざっと眺めておく。エラーは黄色表示になるはず。

 (4)インストールディレクトリの所有者を「webサーバー(debianならwww-data)に戻しておく。

   # chown -R www-data:www-data /var/www/NC3インストールディレクトリ

 (5)常用クライアントPC等から、アップデートしたサイトにアクセスして、ログイン出来ることを確認。

    サイトを閲覧可に戻して作業完了です! お疲れさまでした! 

 

  ※ 関係者の方々、特に膨大な作業によって最新パッケージを作成して下さったエンジニアの皆様に感謝申し上げます!

   今後とも、どうかよろしくお願いいたします!

Nextcloud17のインストール、アップデート等の方法を調べています

owncloud から Nextcloud へ乗り換えを検討中です!

・・・で、今ほとんど書きあがっていた内容が、タイムアウトして消えてしまいました!

時間をかけて書き込む際は、時々「一時保存」しましょうね・・・!

明日、もう一度書きたいと思います。

ちょっとだけ付け加えておきたいと思います。

昨日、owncloud 10.2 から 10.3 へアップデート作業している時に上手くいかなくて、かなり焦りました!

それと、Debian10、php7.3環境へのアップグレードも検討中だったということもあります。

まずは、実験機で一からインストールして試してみないとダメだなと思っています。

Nextcloud と owncloud

Nextcloud は、owncloud を生んだエンジニアがフォークして新しく作りあげた、オンラインストレージサービスを実現させるWebアプリケーションソフトです。

owncloud も当初はオープンソースソフト(OSS)でしたが、有償のエンタープライズ版が無償のコミュニティ版と共に作られ、コミュニティ版は追加機能が削られていきました。

Nextcloud 社は、元々 owncloud 社が持っていた OSS の精神を大切にしたいという想いから新たに設立されたようです。

また、追加機能の実装についても Nextcloud の方が先を行っているようです。

こんな感じなので、個人ユーザは Nextcloud を是非とも使いたいところです!

ただ、Nextcloud は、まだ日本語化されていません。(日本語データを扱うことはもちろん出来ます)

興味深い情報として、「snapコマンドによるインストール」がありました。

これは、Debian だと apt のようなインストール関係の作業を管理するコマンドのようです。

このsnapコマンドを使うと、Nextcloud のインストールでは、apache、mysql、php のインストールと環境作りまでもやってくれるようなんです! 

ここら辺の検証も含めて、実験機でDebian10のインストールからやってみようと考えているところです。

Netcommons3.3.0の検索ボックスの挙動

現在、このサイトに限らず、Netcommos3で作られたサイトの検索ボックスの挙動がおかしいようです。

iPhone からのタイピングでは、例えば通常のローマ字入力モードで「ネット」と入力するために「netto」とタイピングすると、以下のようになってしまいます。

 

この症状をNetcommons3公式サイトのヘルプデスクに報告してあります。

以前、Youtube の検索ボックスでも同様の症状が発生したらしいです。

ただ、Netcommons3のエンジニアの方々はかなり忙しいようで、改善されるのはまだ先になるかもしれません。

 

もう一つ別件ですが、埼玉県立の各高校の Web サイトもNetcommos3にバージョンアップされたようですが、動きが非常に悪い状態のようです。

これは、埼玉県の Web サーバー側で対応しないといけない問題だと思います。

1校あたりの Web サイトへのリソースの割り当てをもっと増やすべきなのでは?

具体的には、リソース中のメモリ量を増やし、webサーバー、データベースがもっと多くのメモリを使えるようにするといったことではないかと感じています。 

設定変更のためWebサイト一時不通になりました。すみません!

光BBユニットの接続設定のため、Webサイトがお昼を前後して一時不通になりました。

申し訳ありません!

NTTの光回線はそのままで、明日2/4にプロバイダをニフティからソフトバンクに切り替えます。

スマホ等のモバイル通信と自宅での固定光回線を同一業者のサービスにした方が、毎月の費用が抑えられるからです。

明日以降は、ソフトバンクのBBユニットで、有線ルーター機能、Wifiルーター機能、そしてWebサイト公開のためのポートフォワーディングの機能と、3つの機能を働かせるんですが、やってみないとどうなるか不明なところがあります。

また明日ハマってしまって、長時間費やすかも・・・

特にWebサイト関係で、出来るだけ迷惑をかけないようにしたいと思っています。

プロバイダ切り替え完了

本日、プロバイダをNiftyからSoftbankに切り替えました。

本日も、Webサーバーが一時不通になったことをお詫びいたします。

一応、これで設定は完了したので、以降、Webサーバーにも安定してアクセスが可能と思います。

 

さて、今までのプロバイダNiftyの環境では、NTT回線の光終端装置にルーター機能がセットになっているPR-400NEが提供されていました。

この装置にUser設定を加えていたので、変更はスムーズには行かないかもしれないと思っていました。

そこで、行き帰りの通勤で歩きながらあれこれと考えてはいたんです。

さて、本日プロバイダの切り替えの日だったんですが、手順書通りにやっても案の定うまく行きません!

まずは、以前のNiftyのアカウントでNET接続しているので、これを消さないといけないんですが、PR-400NEの初期化にちょっとコツが必要でした。

初期化スイッチをかなり長い間押したままにしておかないとダメなんです。

さて、次の盲点だった所です。

SoftbankのBBルーターが切り替えに先立って届いていたので、すぐに接続してWifi機能だけ使っていました。

そして、当初PR-400NEにはルーター機能もあったので、IPアドレスは「192.168.〇.1」を割り振ってありました。

そこで、BBルーターには「192.168.〇.2」を割り振ったんです。

切り替えの前日までは、これでNiftyの接続は問題なく利用できていました。

そして今日、PR-400NEを初期化してこれは終端装置だけになったので、これでインターネットに繋がるはずでした。

ところが、有線LAN内のPC、そしてwebサーバー、全部インターネットに繋がりません!

でも、この時点で、Wifi接続のスマホはインターネットに繋がっているのを発見できたのは幸いでした。

すると原因は、有線LAN内の設定も含めた不具合だけに特定できます。

しばらく考えて、そうだ! と気付きました。

有線LAN内のPCはすべて固定IPを振ってあって、ゲートウェイを以前のルーターの「192.168.〇.1」に設定してあったんです。

新ルーターのIPは「192.168.〇.2」に設定したのでした。

ですから、LANから外のWANに出ていくゲートウェイが無い状態だった訳です。これではインターネット接続は出来ませんよね。

そしてもう「192.168.〇.1」は使われていないので、再度、新softbankルーターのIPを「192.168.〇.1」に設定し直しました。

さあ、新ルーターを再起動して・・・

やっと、有線LAN内のPCもすべてインターネット接続出来ました!

最後は肝心のWebサーバーです。

新ルーターにポートフォワーディングの設定をし、サーバー内の自動実行スクリプトを手動で走らせて、DDNSサービスの提供先に現在のIPアドレスを知らせておきます。

これをやらないと、サーバーがキチンと外部アクセスを受け付けているか、すぐには調べることが出来ないんです。

さて、結果はどうでしょうか?・・・

ここまでの作業で、ようやく我が家のインターネット環境がすべて正常になりました!

やれやれ! これで一安心と思ってコータの散歩に出かけたんですが、ふと心配になって我が家の固定電話に電話をかけてみました。

呼び出しはしてるのに、家の電話機は呼び出し音鳴ってない様子!

散歩から戻って、再度設定を調べてみました。

その結果、新ルーターだけでも電話機能は使えるんですが、NTT割り当ての電話番号はPR-400NEで処理をしているので、今までの電話番号を使うのなら(使いますよね!?)、PR-400NEの電話信号を新ルーターに追加して送ってやらなければならないということが、やっと分かりました!

これで、今度こそ設定完了です!!

まあ、最初の設定って、ものすごく手間と時間がかかるってことですね!

どうも納得いかなかったので、さらに設定を変更

またWebサーバーをダウンさせてしまい、申し訳ありませんでした。

NTTの終端装置にルーター機能が付いているのに、それを無効にしてBB光ルーターを追加するのが気に入りませんでした。

この2台の消費電力は60W近くにもなるんです。それを常時消費してる訳ですから納得できません!

 

しかし・・・

BB光ルーターを外した設定を一からやるのにここまで時間がかかってしまいました・・・!

これで何とかなってるんですが、速度アップとかの詳細設定は後日やることにします。

明日早いので、今日はここまでにします!

Netcommons3、今までのリストア法ではダメ?!・・・

新年度の準備のため、サーバーの OS と php のアップデートをやって、Netcommonsの引っ越しもやろうとしていました。

いきなりやるのは怖いので、Debian10のテストサーバーを作り、そこに php7.4をインストールして、テストをさんざんやりましたが・・・

エラーの連続で上手くいかない!

エラーも何種類か出てきて、apache、mysql、Netcommons、それぞれのエラーログを見て対処できたものもありました。

しかし、丸1日かかって色んな方法を試した結果、上手くいったのはディレクトリ丸ごとコピーの方法だけでした・・・

もちろん、データベースは元のバックアップをdumpファイルで作って、これを新規データベースにインポートするんです。

php7.2環境で出来たサイトを丸ごと持ってきてから、php7.4環境に出来たのは幸運だったんですが。

でも、この方法しか分からないということは、各サイトのNetcommonsディレクトリを定期的に丸ごとバックアップし、同時にデータベースのバックアップも取っておかなければなりません。

そして、作業中に気付いたんですが、Uploadディレクトリのサイズが異様に大きくなっていたんです!

自宅サーバーだからということで、写真等もサイズを圧縮せずに載せ続けていたのが原因でしょう。

この調子で運用を続けていけば、サイトの容量がどんどん大きくなり、外部サーバーへの引っ越しとかも出来なくなります。

うーん、どうしよう・・・

悩み中です。

OS、PHP共に最新にアップデートはしましたが・・・

予定より2時間半も余計に時間がかかってしまいました・・・

SSDにEFIパーテイションを作成する所からつまづきました。

ただ、旧システムが入ったSSDをそのままSATA接続して、新システムにマウント出来たのは助かりました。

この手が使えれば、Uploadディレクトリが肥大化しても短時間でコピーが出来ます。

しかし、今までのリストア方法が使えなかったので、今回はNetcommonsディレクトリを丸ごと持ってきたんですが、

今後もこれで上手くいくのかが分かりません・・・

Netcommons3.3.1でのサイト引っ越し方法覚え書き

Netcommons3.3.1サイトの引っ越し方法は、今までの方法では上手くいかなくなってしまいました。

今回のバージョンアップは、コアに関するDBテーブルが変更になったとありましたので、そのことが関係しているのかもしれません。

そこで、今回の引っ越し方法を新たに記録しておこうと思います。

今回は、新規ストレージにDebian10をインストールし、phpは7.4を使用することにします。

さらに、同一サーバー内にあったowncloudはインストールせず、その代わりに、新規に作った別のサーバーマシンにnextcloudをインストールすることにしました。

nextcloud環境の作成については、おすすめの方法が見つかりましたので、別の機会に書きたいと思います。

また、引っ越し前のwebサイトは、閲覧不可にしてからmysqldumpでデータベースのバックアップファイルを取っておくことを忘れないように。

 

<手順>

 ①サーバーマシン内の点検と清掃、メインメモリ抜き差ししてメモリ接点のセルフクリーニング

 ②マザーボードBIOS(UEFI)のアップデート

 ③ストレージ(SSD)の交換

 ④SSDにEFIパーテイション256MB作成(マザボがBIOSタイプなら不要)

 ⑤Debian10最小構成インストール

 ⑥ファイヤウォール設定

 ⑦SSHサーバーインストール、ポート変更、ローカル以外からのアクセス不可、rootログイン不可に

 ⑧php7.4リポジトリ追加して、php7.4、php追加モジュールインストール

 ⑨Apache、MariaDBインストール(mysql-secureインストレーションも忘れずやっておく)

 ⑩acpuインストール

 ⑪/etc/php/php7.4/apache/php.iniの編集(file upload関係、opcache、acpu設定等)

 ⑫webminリポジトリ追加して、webminインストール

 ⑬webminポート変更、ローカル以外からのアクセス不可、rootユーザー削除設定

 ⑭powerOFF後、旧SSDをSATA端子に接続してpowerON、新SSDから起動するよう注意(UEFIでは別画面で設定?)

 ⑮新SSDにマウント用ディレクトリ作成して旧SSDをマウント

 ⑯旧SSDのnetcommonsインストールディレクトリを、新SSDのドキュメントルートへ丸ごとコピー

 ⑰コピーしたnetcommonsディレクトリ以下の所有者をapacheにしておく(Debianならwww-data)

 ⑱mysqldumpファイル、ヴァーチャルホストディレクティブファイル、DDNS通知用スクリプトファイルを旧SSDから新SSDにコピー

 ⑲poweroffして、旧SSDを外す

 ⑳新規データベース作成(例 MariaDB [(none)]> create database nc3db default character set utf8;)

 ㉑旧サイトからのデータベースリストア(例 MariaDB [(none)]> source /home/hokan/20200419/nc3db.sql;)

 ㉒データベースuserを今までのuser名で作成(例 MariaDB [(none)]> GRANT ALL PRIVILEGES ON nc3db.* to ncuser@'localhost' IDENTIFIED BY 'password';)

 ㉓データベース設定反映(MariaDB [(none)]> flush privileges;)

 ㉔ルーターのポートフォワーディング設定

 ㉕外部からwebブラウザでアクセスして、正常にログイン出来ればOK!

 ㉖webサイト閲覧不可を解除

以上です!

これでも割と手はかかりますね!

オンラインストレージを自宅サーバーで構築

GoogleDrive、Dropbox、icloud、Onedrive等のオンラインストレージサービスを、容量制限なしにどこでも自由にしかも無料で使いたいと考えたことはありませんか?

今回、自分で試してみて、結構すんなりと構築できる方法を見つけたので、紹介したいと思います!

自分が今まで使っていた owncloud より多機能で、しかも構築が早く確実にセキュアに出来るんです!

使う手ですが、

 ①省電力自作PCを用意(省電力タイプならメーカー製パソコンでも可)

 ②OSはLinux(WindowsServerでも可だが、高性能かつ無料ならLinuxで)

 ③自宅用ネットワークプロバイダ契約(通常のインターネット契約で可)

 ④DDNSサービスの設定(固定IP契約しているのなら不要)

こんな感じです。

 

では、具体的に。

①ですが、まず省電力マザーボードを選びます。

自分は、Asrock社のCPUオンボードタイプを良く使います。

今話題になっているRaspberry Pi を使うのもアリだと思いますし、これは面白そうだしいずれやってみたい!!

でも、省電力だからとノートPCを使うのはやめましょう! 本体やアダプターの発熱で火事になった例を見かけましたから!

ストレージは、WD社のRedあたりがいいと思います。SoftwareRaid1で構築するとさらに良し。

②のOSです。Linuxは色々なディストリビューションがありますが、つまづいた時に症例や答えをWebで見つけやすいものにした方が絶対にいいです!

すると、Ubuntu、CentOSあたりでしょうか? 自分は専らUbuntuの原型Debianを使っています。

Desktop環境(GUI)は入れずに、コマンドを打ち込んでいくCUI環境で作るのですが、CUIは難しそうだと思ったら、GUIサーバーでもいいんです。

でもCUIでも、SSH端末をクライアントで操作する時はコピペでどんどん操作出来ますし、WebminというGUI風の操作が出来る強力な助っ人もあるので、ぜひCUIサーバーに慣れて下さい!

あ、自分はセキュリティ上、SSHとWebminはローカル(LAN)外からのアクセスは受け付けないように設定しています。

③は自宅でパソコンとインターネットを使っている環境ならそれでOKです。

SoftBank社のAC電源に差すだけでWifiなんていうルーターがありますが、これでもいけそうかな?

④は、MyDNSをおすすめしておきます。

最後に! これだけは覚えて欲しいのがテキストディタ vi の操作法です!

やや特殊ですが、使っているうちに慣れると思います。

コマンド文入力、コマンド文編集のために必須のツールです。ただし、vim、nanoといったツールでもOKです。

 

さて、準備が出来たら、OSをUSBメモリでインストールしましょう。

インストール終了したら、update、upgrade して最新の状態にします。

さて、それからは?

(1)SSHサーバーインストールして、ポート変更、rootログイン禁止設定

(2)ファイヤウォールUFWをインストール

(3)UFWのポートは443、123、SSH分、Webmin分だけ開けておきます。

(4)時刻合わせにntpサーバーインストールして設定変更

(5)snapdインストール

(6)snap install nextcloud

(7)source /etc/profile.d/apps-bin-path.sh

(8)nextcloud.manual-install

(9)nextcloud.enable-https self-signed

これで、Webサーバー、データベースサーバーを含めたnextcloud環境を一気に構築出来、https通信も可能になりました!!

Webサーバーの細かい設定、データベースの作成等も不要なんです!

あとは、DDNSサイトで取得したドメイン名〇〇〇で外部ブラウザからアクセスして下さい!

 https://〇〇〇

これでインストール完了です!

ちょっと説明を簡略化していますが、もし興味があったら調べてみて下さい。もちろん、問い合わせ頂いてもOKです。

 

(補足1)

自分のサーバーマシンからDDNSサービスを提供しているサイトに定期的にアクセスをする必要があります。

その時のスクリプト(実行)ファイルは、例えばこんな感じです。

 wget http://www.mydns.jp/login.html --http-user=mydns●●●●●● --http-password=パスワード -O /dev/null

 (この方法ではip情報更新できなくなったようです。他にもやり方が色々あるようです)

自分は、このファイルを、/etc/cron.d/ディレクトリにおいて、webminで15分おきに実行させています。

注意点は、rootがこのファイルを実行する時、所有者はrootで、パーミッションは700でないといけない点です。

 

(補足2)

インターネット契約をした時に提供されたルーターに、ポートフォワーディング設定が必要です。

つまり、DDNS設定をしたあとは、登録したドメイン名に外部からアクセスがあると、自分の所に信号が来るようになります。

それが、https通信(ポート443)であれば、自作したサーバーマシンに信号を通すようにする作業です。

ルーターのマニュアルを見て下さい。ipマスカレード設定等とも書かれています。

補足ですが、この機能のおかげでhttps以外の信号はサーバーマシンに到達できなくなる訳ですね!

 

(補足3)

Linuxサーバーを構築する時に、またサーバーの初期設定をする時にすごく参考になるサイトです!

色々なOSについて、またそれらのOSの最新版について、分かりやすく書かれています!

 https://www.server-world.info/

昨夜、DDNS関係、そしてハードウェアのトラブル!

昨夜遅く、突然外部からこのサイトへのアクセスが出来なくなりました!

LAN内クライアントからサイトへのアクセスは可能で、クライアントからWAN外部サイトへのアクセスもいつも通り出来ていました。

DDNSサービスの提供元Mydnsの障害状況、Mydnsからの障害報告メールもチェックしましたが、異常はなさそうでした。

そこでまず、ルーターの設定を再確認し、ルーターの再起動を行いました。

そしてクライアントからnslookupコマンドでサーバー機のグローバルip情報確認したら、ie-serverのDNS情報は更新されているのに、Mydnsでは更新されていない。

ルーターの再起動などでWAN側のipアドレスが変わると、DNS情報も変更される訳ですが、

この反映には時間がかかるんだろう(今までは直ぐに反映されていたようなんだけど・・・?)と、明け方3時ごろだったので、まずはとりあえず寝ちゃうことにしました。

ところが、朝7時ごろ起きて確認したら、MydnsのDNS情報は相変わらず更新されていない。

cronjobを実行させてログを見てみると、Mydnsサイトにアクセスは出来ているのにログインが出来ていない模様!

もう一方のDDNSサービスie-serverへのアクセスは今まで通りログインまで出来ているのに、どうしたんでしょう?

そうだ!

Mydns側でセキュリティを向上させる等の対策が新たにされて、ログイン出来なくなったことは充分考えられます。

そこで次の手ですが、「wget http:// ・・・」のアクセスログイン法から「curl https:// ・・・」の方法へ変更し、cronスクリプトファイルを書き換え、実行させてみました。

この方法で、ようやく3つのサイトをいつも通りWeb上に公開させることが出来ました!

 

と、ここまで書いてきた所で、突然このサイトが固まってしまい、apacheを再起動してもサイトが動かなくなってしまいました!

そこで、サーバーマシンを再起動しようとしたところ、全く予想外の事態が。

システムが、それにUEFIも立ち上がらない!

これには参りました・・・

しばらく考えたんですが、数年前電源ユニットが突然死したことを思い出しました。

業務用ノンストップタイプでもない電源を24時間動かしていたので、これが一番怪しいと思ったんです。

ところが、電源を取り換えてみたんですが、原因はこれではなかった!

その次は、マザーボードからデバイスを徐々に外して起動を試みていくテストを続けました。

もう、珍しいけどマザーボードの故障だろうと諦めかけていた時、メインメモリを1枚だけ差した状態で起動!

しかも、もう1枚のメモリだけだと起動しない!

これで、特定のメモリの不良が原因だと分かりました!!

それなら、以前に使っていた2枚のメモリをデュアルチャンネルで動かすことにしました。

そして、念のためにMemtestを4時間弱かけて実行させました。

メモリーエラーはありませんでした!

しかし、DDNS関連はともかく、ハードウェアがなぜこのような状況になってしまったのか?

単に、メモリに故障が発生しただけなら直っているんですが、他の要因ということもあり得ます。

機械が壊れかかったまま動いているという状況だと、あとあと非常にやっかいなことになるんです。

原因が分からないままだということと、他のハードウェアも巻き添えで故障する可能性もあるんですね。

また、サーバーに対して外部からの攻撃も、あり得ないことではなくなってきています。

最近はハードウェアの設定を変更するような極めて高度な攻撃もあるそうですから!

そこで、サーバーへの外部からのアクセスを制限するように、設定を数か所変更しておきました。

はあ・・・疲れましたね・・・

さあ、これでキチンと直ってくれたでしょうか・・・? 

LAN内DNSサーバーの構築・・・

自宅エリアではスマホは Wifi 接続にしないと、モバイル通信量がどんどん増えていきますよね?

このWifi接続にした時、LAN内の外部公開用Webサーバー、外部公開用Cloudサーバーに接続が出来なくなります。

その理由は、指定したURLをIPアドレスに変換する外部DNSサーバーは、WANでのグローバルIPアドレスを通知してくるのですが、

LAN内でのアクセスに必要なのは、プライベートIPアドレスなんです。

分かりやすく例えるなら、外から居場所を調べるには、東京千代田区永田町1-7-1といった住所が必要ですが、

その建物の中からは、2階の東から3番目の部屋といった情報が必要になるという感じですね。

 

ところが、特に iPhone 等のスマホを使わないのであれば、PC内のhostsファイルをちょこちょこっと書き換えてやれば、この件はすんなり解決してしまうんです!

実は、iPhone だって内部のhostsファイルを書き換えれば済んでしまうんですが、この行為は「脱獄」! なんて呼ばれている禁じ手なんです・・・

これをやってしまうと、サポートが受けられなくなったり不都合がかなり出てくるらしいんです。

そこで、LAN内専用のDNSサーバーを立てよう!ということになる訳です。

 

我が家のLAN内には、Webサーバー以外に、Windowsで動いているラジオ録音用サーバーが常時動いています。

まずこのラジオサーバーにDNSサーバー「Bind」をインストールし、設定を試行錯誤で続けていました・・・

もう、自分には泥沼ですね・・・

設定ファイルを書く時のルールが細かくあって、半角スペースが全角スペースになっただけでもう動かないんです!

 

夕方の柴犬コータの散歩中に、そうだ! と気付いたことがありました。

稼働中のWebサーバーにDNSサーバーを共存させても大丈夫だろうということです。

IPアドレスは当然同じになるんですが、ポートが違うので、別々にアクセスが可能だろうと。

散歩から帰宅してすぐにWebサーバーマシンにBindをインストールしました。

あれから延々6時間は経ちましたが、まだ終わりが見えません・・・

せめて、原因とか見通しとかわずかでも掴みたい・・・ 

LAN内DNSサーバーの構築(続き)

今朝早朝3時半まで頑張ったんですが、DNSサーバーBindはどうしても上手く動かせませんでした。

checkconf、checkzoneコマンドも使って、構文エラーはずい分と解消されたんですが、定義文がどうしてもエラーになるんです。

自分は、DDNSサービスを2つのサイトから受けていて、Webでアクセスする全く異なるフルドメイン名が計4つもあるんです。

これをDNSの定義文に書いて実行しても受け付けてくれないんです。(複数ドメイン名は受け付けない?)

もう、クタクタです・・・

しかし、いまだにiPhoneのhostsファイルを書き換えること(脱獄)はやる気になれません!

そこで、最後の手を使うことにしました。

LAN内にプロキシサーバーを立てる手です。

RADIOサーバーはWindows機で動かしていて、このWindows機のhostsファイルはすでに書き換えてあります。

このWindows機にプロキシアプリをインストールしてみることにします。

プロキシアプリは、CCproxyを使ってみました。

動かしてみると、今までの苦労がウソのように解決!!

昼過ぎにやっと食べ物も口にして、カミさんのAndroidスマホの設定もやって、少しのんびりしていました。

 

が・・・

そう上手くは済まないものですよね!

CCproxyサイトから「ライセンス認証をしなさい」と通知が来ました!

フリーソフトと思っていましたが、違ってたんですね。

で、これはアンインストール・・・

では、ApacheをWindows機にインストールして、ApacheをProxyサーバーとして稼働させればいいんじゃないか?

ちょっと大変そうだけど、ApacheはLinuxでちょっとは馴染んでるし・・・

 

やはり時間はかなりかかりましたが、Windowsのコンパネの「サービス」、「イベントビューア」も上手く使わせてもらって、なんとかApacheの最新版をインストールできました!

そして、恐る恐る最後の設定をしてから、アクセス!

あれー?

Apacheの初期画面が出るだけ!

またまたググって、Apacheでプロキシサーバーを構築しているサイトを見つけました。

Proxyサーバーは代理サーバーであって、ここを経由させるだけなんですね。

環境定義文(http.conf)に「via proxy」の記載が必要でした。

これで、Apacheをもう一度再起動して、WifiLAN内のスマホから祈るような気持ちでアクセス・・・

成功です! ついに完成しました!!

 

もちろん、出来たことは嬉しいんですが、

外で体を動かして汗ビショになってる方が気持ちいいですよね! ?

LAN内名前解決について(現状での結論)

昨日の続きですが、一応これで今回は落ち着きました。

 

たとえ話ですが、LAN内というのはTさんの職場の中、WANは職場の外全ての場所だと思って下さい。

自分が外からTさんに会いに行く時、住所録で住所を調べてTさんの職場にたどり着けます。

 → ここでの住所録がWANにあるDNSサーバーに相当します。

そして、職場の受付の方にTさんの居場所を聞いて、Tさんの所にたどり着ける訳です。

 → ここでの職場の受付の方がポートフォワーディングと同じ役目を果たしている訳です。

ところが、自分がすでにTさんの職場内にいる時は、もう住所録でTさんを探しても無意味な訳ですね。

LAN内からLAN内にあるサイトにアクセスを試みると、通常は外のWANにあるDNSサーバーに問い合わせに行く設定になっているので、上手くいかないという訳なんです。

 

さて、今回次に使った手は、LAN内に Proxy(代理)サーバーを立てる手でした。

この Proxyサーバーは、Proxyサーバーを稼働させているホストPCのhostsファイルをWANのDNSサーバーより先に参照するので、hostsファイルに記載されているLAN内の「居場所」をもとに目的のサイトにアクセスできる仕組みです。

実は、Proxyサーバーの積極的な使い方は、むしろ他にあるので、やはりLAN内専用のDNSサーバー構築が今後の課題です。

 

最後にもう一つ。

自宅のWindows機Radioサーバーは午前0時に自動シャットダウンして、午前5時に自動起動するように設定してあります。

昨日はこのWindows機に Proxyサーバー Apache を導入したんですが、

24時間稼働している LinuxWeb サーバー機へ導入できないか、一生懸命考えていました。

すでにWebサーバー Apache が稼働しているところに2つ目のWebサーバーをインストールできるのか?

色々と調べてみましたが、 何とか行けそうな感じです!

エイヤッと、apt install Nginx でインストール実行!

インストールの最後にエラーが出るのは、ポート(80)がバッティングしてしまうからです。

しかし、インストールは最後まで進むので、設定ファイルを書き換えてポート番号を変更し、Nginxを再起動させます!

これで2つめのWebサーバーを共存して起動させることが出来ました!

と、もう一息だったんですが、Nginx は初めてだったので Proxy設定が出来ませんでした・・・

そこで、2つめの Apache をインストール!

最初にインストールした Apache は、snapシステムで導入していたので、apt install apache2 で2つめの Apache はすんなりとインストール出来たんですね!

あとは、ポート番号を変更してApacheを再起動させ、Proxy の設定を行いました。

現在、この Proxyサーバーはしっかりと稼働してくれています!!(外部からのアクセスには関係していませんが)

 

今後、もし時間が出来れば、LAN内の複数サーバーを、仮想サーバー内で稼働させ、複数のサーバーマシンを出来るだけ少なくまとめていけるといいかな、と考えています。

この手は非常に合理的でカッコ良く、ベストのようにも思えるんですが、メンテナンスや故障対応は相当に大変そうです!!

それならば!

集中したアクセスが少ないオンラインストレージサーバー、Proxyサーバーあたりを Raspberry Pi で構築し、メインサーバーマシン内に設置してしまうのはどうでしょうか?

あ、出来ることなら、ProxyサーバーではなくDNSサーバーを構築したいですね。

電源もメインサーバーマシン内でもらうんです!

どうでしょうか?

LAN内名前解決について(今度こそ最後!・・・?)

また新しいことが分かりました!

でも、今度こそこれで終わりにしたいと思います!

 

LAN内専用のDNSサーバーって本当にないのかな?

いつも Bindのような設定の大変なソフトを使ってるんだろうか?

どうしてもこの疑問が頭を離れませんでした。(コータの散歩してる時も!)

そして、悪いクセでまた色々と調べ続けちゃったんです。

すると、YAMAHA社のルーターとかは、自身にDNS機能を持たせてあって、LAN内の名前解決に使えるとのこと。

でもこのルーターは高価で、それだけのためにこれを買うことは考えられません。

そう言えば、Windows機で自宅のネットワークを作った時、PCにつけた名前でアクセス出来た経験があるでしょう?

DNSサーバー設定していないのになぜ?

あれは、WindowsのNetbiosという機能で可能になっているらしいです。

そんなこんなでさらに検索していると、LAN内DNSサーバーDnsmasq という由緒あるらしいLinuxソフトを発見!!

もう、ホントにどうしてこれが昨日までの検索でひっかからなかったのか?!

検索の仕方がヘタクソだ! と言われればそれまでなんですが・・・

そしてこのDnsmasq、設定もシンプルで分かりやすい!

すごい大発見!!(大げさですみません)

さっそくインストール! そして設定も終わらせて起動させました・・・

何と、ついにLAN内DNSサーバーは完成に至ったんです!!(また大げさ・・・)

もちろん、WANにある外部サイトには、セカンダリDNSサーバーに問い合わせをしてアクセス出来るんです!

あ、昨日構築したプロキシサーバーは休止させました。(まだ残してはあります)

これで iPhone の写真や環境ファイルのバックアップ等も、自宅に居ても自分のオンラインストレージに保存できます!

iCloud の追加容量料金なんて払いたくないですからね。(笑)

 

さあ、今度こそ一件落着したんですが、またまたちょっと不思議なことを体験してしまいました・・・!

もしかすると気のせいかもしれないんですが、昨日のプロキシサーバー経由の方が、サイトからの反応が早い!?

えっ? そんなバカな!

だって、データの流れは、プロキシサーバーを使うと、

Webサイトサーバー → プロキシサーバー → クライアント(スマホ)なんです。

LAN内DNSサーバー使用の時のデータの流れは、

Webサイトサーバー → クライアント(スマホ)となり、経路が短いんです!

ああ、それはDNSサーバーからの応答が遅いせいじゃないか? と自分も最初は思いました。

でも、この軽量のDNSサーバーの応答が遅いんでしょうか?

Dnsmasqがサーバー機のhostsファイルを参照するだけだから、動作即完了ですよね?

プロキシ使用の方が速いとすれば、プロキシサーバーのキャッシュ機能とかが効いてるんじゃないでしょうか!?

リバースプロキシとかは、そのような効果も期待して構築するようですから!

 

あ、でも、今はもう手を出しません!

こんなことばかりやってると、他のことがお留守になってしまいますから!

もうすでに、時間を大量に費やしてしまっているんです・・・

今夜から明朝にかけて、テスト実施のためサイトを一時止めます

先日、このWebサーバーマシンが不調になったことを書きましたが、原因はメインメモリの故障でした。

メモリーモジュールが故障するのは珍しいと思いますが、過去にも数回経験はありました。

ただ、常時稼働のWebサーバー機ですから、メモリーもバルク品ではなく信頼性のありそうなものを選んだんです。

JEDEC規格、永久保証の新品(panram社)でした。

ForNotePCとありますが、これは大丈夫でしょう。

さて、故障がはっきりしたので、販売店に問い合わせたところ、修理のため返品して下さいとの返事。

返品したところ、販売店経由でメーカーまで送られたようです。

結局修理不能で、新品を新たに送り返してくれました!

 

ということで、今回は稼働前にこのメモリーのテストを念入りに行うことにしました。(memtest実施)

万一、再度不良の場合もここで見つけておかなければなりません。

また正常ならば、はっきりと解決!ですね。

今日メモリーが届けられたので、販売店にも出来るだけ早く報告する必要もあるんです。

メモリーのテストはWebサーバーの動作を止めて行う必要があるので、今夜から明朝にかけてサイトを一時停止します。

またまた急で申し訳ありません!

テストは4時間ほどで終了するはずですが、遅くとも明日午前8時にはこのサイトを再開出来ると思います。

24時からテスト開始します。