当社はIT技術のオンライン教育を得意としたセミナー専門会社です。 | 一戸英男

ITエンジニアの技術力UPをお約束します。

備忘録:macOSのVirtualBoxでサーバへNAT(ポートフォワード)できない問題を解決する。

備忘録:macOSのVirtualBoxでサーバへNAT(ポートフォワード)できない問題を解決する。


講義している中でVirtualBoxをたまに使うことがあるのだが、先日たまたま受講者の一人がmacOSでした。何故かVirtualBoxのポートフォワード設定が間違っていないだがローカルのブラウザからアクセスしてもうんともすんとも反応なしだった。受講者には「おそらくmacOS特有の内部Firewallが絡んでいるのだろうと」説明したが、改めて今回は調べてみた。予測はあたっていたがそれ以外のこともあったので書き残しておこう。

VirtualBoxのポートフォワード設定

まず最初に該当サーバインスタンスを選択してメニューの設定選択する。赤い箇所だ。

次にネットワーク設定に行きます。高度をクリックして詳細設定からポートフォワーディングボタンをクリックします。

ポートフォワード設定画面が現れるので入力します。意外だったのが最初80番443番のポートを設定するんですがmacOSだとウェルノウンポートだと拒否されるようで一向にリッスンすることがなくてもしかしてノンリザーブポートかな!? でやってみたら成功した。このあとに解説するmacOSのセキュリティ設定も必要。

ちなみに、LinuxのVirtualBoxもノンリザーブポートで設定しないとだめだった。

macOSのセキュリティ設定でfirewallの許可アプリケーション設定を行う

まず最初にシステム環境設定からセキュリティとプライバシーをクリックします。そのあとにFireWallのタブを選択します。

VirtualBOXのアプリケーションを追加するために「+」をクリックしてアプリを選択してください。これでアクセス許可対象になります。

仮想サーバでWEBサーバを起動し、ローカルWEBブラウザーからアクセスします。

/etc/hostsにダミーでローカルIPアドレスにホスト名を設定しブラウザーからアクセスしましょう。ポート番号はVirtualBoxで設定した番号へアクセスします。

おまけ

macOSでポートのリッスン状態を確認するにはLinux同様にnetstatを使用します。

タグ: , , ,

macmini(2011)ディスク初期化後、Maverick ==> HighSierra 再インストールがようやく完了。 大変でした。


macユーザならではの、よくあるトラブル。ディスク初期化後に再インストールを行うが「モジュールが追加できませんでした」とかインターネットが起動途中で「インストーラが壊れている」とか、チャレンジする事15回位。「本当に直せるのか!」と思っておりました。なんとかようやく完了した。USBメモリも簡易ではなくしっかり上書きフォーマットしないと失敗するね。イメージはarchive.orgからdmgをダウンロードして一旦ISOイメージに変換した。その後ddコマンドでUSBメモリへ書き込んで成功。この作業もやり直し3回ありました。同じイメージでUSBメモリを変更したらうまくいきました。細かい因果関係はわからないが作業が無事終えてホッとした。

インストーラのダウンロード

インストーラは古いOSの場合、色々な特殊な取寄せ方法があるが、有名なのはbrewからmassを導入し、massでプロダクトIDで取り寄せする方法かな。こっちはUSBに復元後起動したがイマイチだった。もしかするとむしろUSBメモリ側の問題がだったかも。で、archive.orgからダウンロードしたイメージは後述のToshibaのUSBメモリに書き込んだところ期待通りにmacOSへ復元できた。尚、USBメモリにイメージを書き込む段階ではelecom USBも全くエラーもなく終わっています。elecomのUSBメモリ商品が駄目というわけではなく、たまたま古いので一部クラスタ障害があった可能性もある。ただ、ヤフオクで買ったMountain Lion入りのUSB(Buffalo)もOSインストーラの起動途中(インストールドライブ選択の前)で失敗したのでかなり謎なんだけどね。

ISO変換からddコマンドでUSBメモリへ書き込み

作業は基本VirtualBoxの中にあるmacOS”Catalina”を緊急用に作っていたので問題は無いが、動かないmacOSの他に動くmacOSは用意しておいて助かった。最悪はWindows版のddで作業しようと思ったがそこまで行かず作業は終えたので結果的には良かった。
さて成功はしたのですが疑問が???かなりあります。同じISOイメージでUSBメモリを変えただけで成功。なんでだろう?最初のUSBメモリはフォーマットはきっちり上書きやってても起動で失敗した。容量は同じ8GBで成功したほうが2年前に買ったTOSHIBAのUSBメモリ。失敗したのは8年前に買ったエレコムのUSBメモリ。エレコムのメモリは長く使い込んでいるので何か過去に使った中で影響(故障)するものがあったのかなと思います。USBメモリのフォーマットは結構大雑把な感じでクラスターにエラーがあってもお構いなしですからね。つまりエラーが出ないケースが多い。
※失敗は、USBの書き込み失敗というよりmacmini起動時です。USB書き込みはエレコム、TOSHIBAいずれもイメージ書き込みは正常終了でした。何かエレコムのUSBメモリに書き込む際に情報が足りていない(欠落すなわち書き込み不良)のだろうと予測します。原因を調べようと思えば調べられるがやや面倒臭くなってきた。戦意喪失ですね。

USB差し込んでmacmini起動が。。またもやトラブル

mac miniで起動も当初余裕で起動したがインストールドライブ選択後にロードし直しのタイミングでUSBキーボードとUSBマウスが認識しなくなる。通常このパターンはUSBの抜差しを行うと認識するが全く駄目。2回同じ目に合い、3回目におそらく、これは信号検出の問題だろうと思い、ドライブ選択後にロードし直しのタイミングでキーボードとマウスをカチカチ連打した。予想通り今度は信号を検出してロードし直し後も認識が成功し無事インストールライセンスの確認画面まで来ました。後は全く問題なし。

MaverickからHighSierraにアップグレード

macmini(2011)のバージョンは HighSierraまでしかインストールはできない。しかも初期化すると下位のバージョンから導入しないとうまく行かない。ネット上ではよくあるのはLionからインストールするのだが、私は少し上のMaverickからアップグレードしました。

タグ: , , , , ,

SEO重複編:意外な落とし穴


WEBサーバのURLを処理する挙動には伝統的な省略がある。パス名「/」は「index.html」や「index.xxx」をデフォルトで読み込むわけだが、これも実は今のGoogleの重複検出フィルターの中では気を付けないといけない。


サイトの中に含むページの中には、リンクが「/」と「index.html」二つ存在しているような場合、Google側がどうも必ずしも適切な処理をしていない場合があります。


また、anotationルールでPCとスマホのコンテンツが存在する場合などはalternativeとcanonicalで相互の関係性を記述するのだが、これを書いていない場合、ある日突然MFIが適用されてしまうようだ。


つまり、スマホページとPCページがあるとanotationルールが適用されていない場合、重複だから片方を排除する。つまりスマホページを優先して検索結果にはPCページを無くしてしまう場合がある。最近このようなサイトをいくつか見ている。


この現象は、HTMLの記述においてスマホページをノーマルな素のHTMLで書いている場合は特になりやすい様だ。レスポンシブで書いている場合は問題が起きないが専用スマホページで記述する場合view portを設定しないでHTMLの幅や画像幅を低解像度のスマホで表示できるようにしている作りでは生じやすい。もちろん、anotationルールさえ適用していれば問題はない。

タグ: , , , , ,