• ベストアンサー

NTPサーバーのポート番号変更

NTPサーバーのポート番号の変更方法について御教授下さい。 NTPサーバを構築したのですが、待ちうけポートを123からwellknownでないポートに変更したいと考えています。ntp.confなどで変更すればよいのでしょうか? OS:Turbolinux 10 Server NTPD:ntp-server-4.2.0-8 ntp-4.2.0.8 NTPに関しては以上のものを入れています。 すいませんが御教授いただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Lean
  • ベストアンサー率72% (435/603)
回答No.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クライアント側では対応出来るんですか?

参考URL:
ftp://ftp.turbolinux.co.jp/pub/TurboLinux/TurboLinux/ia32/Server/10/updates/SRPMS/
tomo_moto
質問者

お礼

御教授ありがとうございます。 NTPサーバの待ちうけポート番号を変更することが出来ました。ソースを編集してコンパイルという作業は始めての経験でしたので、いろいろと勉強になりました。 ありがとうございます。 ※NTPクライアントは対応している機器があり、それに合わせてサーバ側もポート番号を変更したかったというのがこの質問をさせて頂いた契機でした。

その他の回答 (3)

  • Lean
  • ベストアンサー率72% (435/603)
回答No.3

>残念ながら/etc/servicesのポート番号を変更しただけでは待ち受けポート番号は変わりませんでした。 変更後、ntpdの再起動をしました? >また、ソースで定義されているということは、その#define句のポート番号を書き換えてからコンパイル->インストールすればそのポートになるということでしょうか? その通りだと思いますよ。

tomo_moto
質問者

補足

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

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.2

こんばんは。 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));   } }

tomo_moto
質問者

補足

ご回答ありがとうございます。 ソースコードで定義されているんですね。 勉強になります。 残念ながら/etc/servicesのポート番号を変更しただけでは待ち受けポート番号は変わりませんでした。 ntp-server-4.2.0-8.i586.rpm というパッケージをTLのFTPサイトからダウンロードし、入れたのですが、これはntpdとは違うのでしょうか? (ntp-4.2.0-8.i586.rpmはOSをインストールしたときから入っていました) また、ソースで定義されているということは、その#define句のポート番号を書き換えてからコンパイル->インストールすればそのポートになるということでしょうか? 申し訳ありませんが、御教授いただけないでしょうか。

  • kome-maro
  • ベストアンサー率20% (29/145)
回答No.1

やったことありませんが、 /etc/services ntp 123/tcp ntp 123/udp ここを変更して変わらないかしら?

tomo_moto
質問者

お礼

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