VirtualBox 上のCentOS でntpd を通す

投稿者: | 2015/02/24

毎度毎回時計がズレる

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

ちなみに、プロキシサーバーに認証が必要なタイプは抜いたことないので知りません。
ご容赦を。

 



 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です