毎度毎回時計がズレる
VirtualBox 上に(Vagrant使わずに)CentOS 環境を構築しているんですが、毎度時計がズレるんですよね。
そらあ、仮想マシンはVirtualBox 上で動いていない限り、時計もなんもあらへんわけで。
ntpサーバーに接続して時計同期を行う必要がありますわな。
ntpd は123番ポートを使う
で、ntpは123番ポートを使うんですが、VirtualBox 上にCentOS を構築しても123番ポートがホストを抜けないと、当然役に立たないわけです。
なら話は簡単で、VirtualBox のポートフォワーディング機能を使って、ゲスト(CentOS)の123番ポートをホスト側の何がしかのポート(50000番以降推奨)と連結してやればいい。
よろしい、ならばポートフォワーディングだ
まず、VirtualBox で以下を設定します。
VirtualBox の「設定」画面を開き、「ネットワーク」画面に移動すると、アダプター1に「割り当て:NAT」となっています。
そこから「高度」の項目をクリックすると、あれこれと追加の設定項目が表示されますので、その中の「ポートフォワーディング」を選択します。
ポートフォワーディングを選択すると、ポート変換の設定画面が開きますので、SSH接続用の設定を行ないます。
以下の様な感じです。
名前:NTP
プロトコル:TCP
ホストIP:127.0.0.1
ホストポート:50123(ホスト側でCentOS向けにつなげるポート番号。50000番以降で適当に。)
ゲストIP:空白
ゲストポート:123(CentOS側でNTP通信に使用するポート番号(デフォルトだと123))
OKを押す。
もういっぺんOK押して、設定画面も閉じる。
CentOS起動。
root かsudo 権限持ちのアカウントでログイン。
下記を叩いてntpサーバーにつないで時計同期。
ntpdate ntp.nict.jp
hwclock と clock を叩いて、それぞれ時計が正しく同期されている事を確認。
毎回ntpd on になる様に設定変更もお忘れなく
以上でntpd が通るようにはなったわけですが、このままだと毎回ntpdate 叩いて同期させてやらんとあかんです。
そんな面倒やってられないので、自動でntpサーバーに同期とってくれるように/etc/ntp.conf を編集しましょう。
詳しい手順は以下を参照のこと。
プロキシ環境では、たぶんこれじゃ無理
ちなみに、社内みたいなゲートウェイがガッチリとガードを固めていて、プロキシ抜かなあかん環境だと、上記方法ではダメな可能性が高いです。
その場合、/etc/ntp.conf のUse public servers … の項目をコメントアウトしてから、
server 0をプロキシサーバーに書き変えちゃってみて下さい。
こんな感じのやつを。
# Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst
こう変えます。
# Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). server 0.プロキシサーバーアドレス:プロキシサーバーポート iburst #server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst
ちなみに、プロキシサーバーに認証が必要なタイプは抜いたことないので知りません。
ご容赦を。