アプリ版:「スタンプのみでお礼する」機能のリリースについて

NTPサーバーのポート番号の変更方法について御教授下さい。

NTPサーバを構築したのですが、待ちうけポートを123からwellknownでないポートに変更したいと考えています。ntp.confなどで変更すればよいのでしょうか?

OS:Turbolinux 10 Server
NTPD:ntp-server-4.2.0-8
ntp-4.2.0.8
NTPに関しては以上のものを入れています。

すいませんが御教授いただきたいです。

A 回答 (4件)

>NTPのサイトからソースファイル(ntp-4.2.2p2.tar.gz)をダウンロードしたのですが、どのファイルで# define句のポート番号を指定しているのでしょうか?



grepコマンドあたり使用すれば簡単に見つかりませんか?
ちなみに私の手元にあるntpのソースでは、include/ntp.hでしたが。


>御教授いただいたntp-4.2.8.src.rpmがネット上に見当たりませんでした

それはNo.2の方ですよね?
ちなみにTurbolinuxのサイトみましたが、バージョンが「4.2.0-8」「4.2.0.8」だから「ntp-4.2.8.src.rpm」ではなくて「ntp-4.2.0-8.src.rpm」のようですが。


ところでNTPサーバの待ちうけポートを変更するのはいいのですがNTPクライアント側では対応出来るんですか?
    • good
    • 0
この回答へのお礼

御教授ありがとうございます。

NTPサーバの待ちうけポート番号を変更することが出来ました。ソースを編集してコンパイルという作業は始めての経験でしたので、いろいろと勉強になりました。
ありがとうございます。

※NTPクライアントは対応している機器があり、それに合わせてサーバ側もポート番号を変更したかったというのがこの質問をさせて頂いた契機でした。

お礼日時:2006/08/01 15:59

>残念ながら/etc/servicesのポート番号を変更しただけでは待ち受けポート番号は変わりませんでした。



変更後、ntpdの再起動をしました?


>また、ソースで定義されているということは、その#define句のポート番号を書き換えてからコンパイル->インストールすればそのポートになるということでしょうか?

その通りだと思いますよ。

この回答への補足

ご回答ありがとうございます。

ntpdの再起動もしていますが、待ち受けポートは123のままでした。

NTPのサイトからソースファイル(ntp-4.2.2p2.tar.gz)をダウンロードしたのですが、どのファイルで# define句のポート番号を指定しているのでしょうか?(御教授いただいたntp-4.2.8.src.rpmがネット上に見当たりませんでした)申し訳ないのですが御教授いただけないでしょうか。

補足日時:2006/07/28 10:47
    • good
    • 0

こんばんは。



ntp-4.2.8.src.rpm ソースパッケージのソースコードを確認してみました。

#1さんの言われるように、getservbyname関数で、/etc/servicesから
ポート番号を取ってきているようです。

/etc/servicesにNTPの定義がない場合は、NTP_PORT 定数を *port に割り当てています。
ソースコードの中で、NTP_PORT は、#define句で123と定義されています。

以下、ntpdのソース

/* Find out the port number (usually from /etc/services), and leave it in
network format. This is assumed not to be obtained from a network service!
Note that a port number is not assumed to be 16 bits. */

  if ((service = getservbyname("ntp","udp")) != NULL) {
    *port = service->s_port;
    if (verbose > 2)
      fprintf(stderr,"Using port %d for NTP\n",port_to_integer(*port));
  } else {
    *port = NTP_PORT;
    if (verbose)
      fprintf(stderr,
        "%s: assuming port %d for NTP - check /etc/services\n",
        argv0,port_to_integer(*port));
  }
}

この回答への補足

ご回答ありがとうございます。

ソースコードで定義されているんですね。
勉強になります。

残念ながら/etc/servicesのポート番号を変更しただけでは待ち受けポート番号は変わりませんでした。
ntp-server-4.2.0-8.i586.rpm
というパッケージをTLのFTPサイトからダウンロードし、入れたのですが、これはntpdとは違うのでしょうか?
(ntp-4.2.0-8.i586.rpmはOSをインストールしたときから入っていました)

また、ソースで定義されているということは、その#define句のポート番号を書き換えてからコンパイル->インストールすればそのポートになるということでしょうか?

申し訳ありませんが、御教授いただけないでしょうか。

補足日時:2006/07/28 00:46
    • good
    • 0

やったことありませんが、



/etc/services
ntp 123/tcp
ntp 123/udp

ここを変更して変わらないかしら?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
やってみたのですが、うまくいきませんでした。。。
# netstat -an
で見ると、やはり123ポートしか開いていませんでした。

お礼日時:2006/07/28 00:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!