Linux」カテゴリーアーカイブ

システム

最近の投稿

アーカイブ

カテゴリー

chronyからntpd-rsに変更&断念

タイムサーバーを ntpsec から chrony に変更したけど、最近は Rust で作られた ntpd-rs がある。

ただし、現時点では正式の time-daemon のパッケージではないため、Gemini の指示にしたがいインストール後に ntpd-rs を正式 time-daemon に見せるダミーパッケージをインストール。

ntpd-rs の設定

設定ファイルは、ntpsec や chrony に比べてシンプル。

$ cat /etc/ntpd-rs/ntp.toml
[observability]
log-level = "info"
observation-path = "/var/run/ntpd-rs/observe"

# 近い信頼できるNTPサーバ (通常のUDP NTP)
[[source]]
mode = "server"
address = "ntp.ttn.ne.jp"
[[source]]
mode = "server"
address = "ntp.nict.jp"
[[source]]
mode = "pool"
address = "jp.pool.ntp.org"
count = 2

# Use NTS by default (セキュアなNTSサーバー)
[[source]]
mode = "nts"
address = "1.ntp.ubuntu.com"
[[source]]
mode = "nts"
address = "2.ntp.ubuntu.com"
[[source]]
mode = "nts"
address = "ntp-bootstrap.ubuntu.com"
[[source]]
mode = "nts"
address = "time.cloudflare.com"
[[server]]
listen = "[::]:123"
[[server]]
listen = "0.0.0.0:123"

[synchronization]
single-step-panic-threshold = 1800
startup-step-panic-threshold = { forward="inf", backward = 86400 }

$ ntp-ctl status
Synchronization status:
Dispersion: 0.000082s, Delay: 0.015811s
Stratum: 2

Sources:
1.ntp.ubuntu.com:4460/185.125.190.122:123 [NTS] (8): -0.009390±0.497491(±0.247497)s
poll interval: 16s, missing polls: 1
root dispersion: 0.000626s, root delay:0.005386s
NTS cookies: 7/8 available
2.ntp.ubuntu.com:4460/185.125.190.123:123 [NTS] (9): -0.007995±0.005547(±0.232832)s
poll interval: 16s, missing polls: 0
root dispersion: 0.000717s, root delay:0.005508s
NTS cookies: 8/8 available
:

ntpd-rs のサーバ化で断念

ntpd-rs は正しく動いているけど、自宅内ネットワークで動機させるためのサーバ機能が動いていない。

Servers:
0.0.0.0:123: received 0, accepted 0, errors 0
    denied 0, nts nak 0, rate limited 0, ignored 0
[::]:123: received 0, accepted 0, errors 0
    denied 0, nts nak 0, rate limited 0, ignored 0

“$ sudo ss -anup | grep :123″などを実行したけど、0.0.0.0:123 などが見えない。ntpd-rs がサーバ機能を動かしていないみたい。現時点では ntpd-rs ダメだな。今回は 断念。chrony に戻す。

isc-dhcp から kea-dhcp に移行

職場の自室で運用している Debian/trixie を forky に移行したら、isc-dhcp-server が使えなくなっていて、ネットワークが全滅。kea-dhcp に移行で、ひと手間かかった。

isc-dhcp-server は、基本的な開発は打ち切られていて、同じ開発元(ISC)が新たに開発した DHCP サーバが kea-dhcp で、kea-dhcp4-server, kea-dhcp6-server のパッケージが配布されている。

自宅サーバは、isc-dhcp-server で運用しているけど Ubuntu 26.04 では、まだ使用可能。でも、isc-dhcp-server は、そろそろ限界かな。kea-dhcp に移行しよう。移行についてメモを残したけど、我が家の場合は hw-address から ip-address を固定するための設定の方が、ちょいと手間。

kea-dhcp4-server の設定

一般的な設定の部分は、デフォルト設定を書き換えただけだけど、DHCPによるPROXY自動設定が若干手間がかかった。

"Dhcp4": {
    "option-def": [
        {
            "name": "auto-proxy-config",
            "code": 252,       # 間違って"252"って書いたのが失敗の原因
            "type": "string",
            "array": false,    # 間違って"false"って書いたのが失敗の原因
            "record-types": "",
            "space": "dhcp4",
            "encapsulate": ""
        }
    ],
    "option-data": [
        :
        {
            "name": "auto-proxy-config",
            "data": "http://192.168.xx.xx/proxy.pac"
        }
    ],

HTTP2 の導入

HTTP2 Bomb のセキュリティ対応が apache2 – 2.4.66-2ubuntu2.2 で対応済みみたいなので、HTTP2 を導入。

HTTP2を導入するにあたり、mpm_event , php-fpm の設定が必要だけど、別途設定済み

$ sudo a2enmod http2
$ vi /etc/apache2/site-enabled/010-default-ssl.conf
((( 追加 )))
Protocols h2 http/1.1
$ sudo systemctl restart apache2

なんかページ表示が速くなった気がする。

HTTP2 接続ができるか確認する Webサイトで、HTTP2 が確認できた。

apache2 と php を mpm_event + php-fpm に変更

HTTP2 のセキュリティホールが見つかったらしいが、HTTP2を使うためには mpm_event と php-fpm 化が必要らしい。

mpm_prefork の状態では、php は apache2 の中に組み込まれている状態。php-fpm では、apache2 と php は別プロセスで動く状態。

mpm_event + php-fpm の導入

HTTP2 の導入はひとまず置いておいて、mpm_event と php-fpm 化は WordPress のようなものを動かす際には、効率向上のためには有効らしい。ということで、HTTP2 以外を導入。

((( php8.5-fpm が動くように変更 )))
$ sudo apt install php8.5-fpm
$ sudo a2dismod php8.5
$ sudo systemctl start php8.5-fpm
$ sudo systemctl enable php8.5-fpm
$ sudo a2dismod mpm_prefork
$ sudo a2enmod mpm_event
$ sudo a2enmod proxy_fcgi setenvif
$ sudo a2enconf php8.5-fpm
((( /home/*/public_html で php を許可する設定を排除 )))
$ sudo a2disconf php-user  # 以前、自サイト用の設定がトラブル
$ sudo a2enconf userdir    # 最近は userdir.conf を有効にするだけ
((( apache2 の再起動 )))
$ sudo systemctl restart apache2

Coreutils for Window いいね

https://www.publickey1.jp/blog/26/unixwindowscoreutils_for_window.html

Windows のコマンドラインで、unix 系コマンドを使えるようにする Coreutils for Windows をインストール。wingetを使えば超簡単。

C:\Users\foobar> winget install Microsoft.Coreutils
:
exit # 一旦exitしてからじゃないとPATHが通らない
C:\Users\foobar> ls
Desktop
Documents
Downloads
:

今まで、何度 cmd.exe で ls でエラーと言われたことか…

 

HomeAssistant の CPU 負荷

Dockerのプロセス負荷

サーバのプロセス負荷が先週から高くなり、色々と機能追加で遊んでいる HomeAssistant が原因かと、Docker のプロセス負荷の監視を追加。負荷増加の原因は、止めたと思ってた Homebridge の systemd ファイルの残存で、再起動で再び動いていたのが原因だった。

朝のオートメーションが動かない

朝は、少しづつの頭の目覚めのために、朝イチにテレビをつけている。これまでは、TV のオンタイマーだったけど、HomeAssistant に移行しようとしている。HomeAssistant なら、Web 操作で簡単に、オートメーションのON/OFFが切り替えられる。

んで、オンタイマーを切って、朝のオートメーションに切り替えたが、朝テレビが付いていない。原因の1つとして、HomeAssistant からホスト側に処理を起動する際の ssh コマンドで、ホストキーの確認で yes/no/… の入力待ちになっていたのが原因。ssh コマンドに -o StrictHostKeyChecking=accept-new を追加する。

ただ、この対応処理を加えたのに、今朝も TV が点いていない。 #危うく寝坊するところだった。

ダメ元で -o StrictHostKeyChecking=no にしてみる。

Antigravity CLI のインストール

Gemini CLI を便利に使っているけど、新しく統合化された Antigravity CLI に移行されるらしい。コードも Go 言語による実装となった様子。

インストールは下記の通り

$ curl -fsSL https://antigravity.google/cli/install.sh | bash
:
✅ Antigravity CLI installed successfully at $HOME/.local/bin/agy
Run 'agy' to start the CLI

WordPress 7.0 アップデート

特に、WordPress の追いかけしてないし、メジャー番号が上がるのはちょいと不安…といいながら、バックアップも取らずに更新をポチる。うん、問題なし。

WordPress 7.0リリース候補版4 (RC4版)

HomeAssistant のオートメーション

スマホの Ping(ICMP) の binary_sensor では、スマホがスリープ状態になったりするタイミングがあって、単純な ping では接続/切断が発生して、在宅/外出が正しく検出できない。

Ping(ICMP)の設定には consider_home で『デバイスが応答しなくなってから「切断」と判定するまでの待ち時間』を設定することができるが、エンティティとして扱える binary_sensor には consider_home は効き目がない。調べる中で device_tracker を有効にする必要があることが分かったけど、有効設定の画面にたどり着くのにひと手間かかった。

ようやく、device_tracker が使えるようになり、在宅/外出の判定がうまくできるようになり、オートメーションの設定。

Gemini が automation.yaml で設定する方法を解説してくれたけど、自分が在宅しているかどうかで色々と通知を切り分けたかったので、オートメーションの UI での登録はちょい悩んだけど…

オートメーションの例

UIで設定した結果を、YAML形式で表示

# shell_command.sh_mail_notify_message   - メールで送る shell_command
# shell_command.sh_google_notify_message - Google Home で話させる shell_command
alias: とーるの帰宅/外出を通知
description: ""
triggers:
  - trigger: state
    entity_id:
      - device_tracker.iphone_xxxx
conditions: []
actions:
  - action: shell_command.sh_mail_notify_message
    metadata: {}
    data:
      to: t-saitoh
      message: >-
        とーるが
        {% if states('device_tracker.iphone_xxxx') == 'home' %}
        帰宅/{{ now().strftime('%H:%M') }}
        {% else  %}
        外出{{ (now() - timedelta(seconds=450)).strftime('%H:%M') }}
        {% endif %}
  - if:
      - condition: state
        entity_id: device_tracker.iphone_yyyy
        state:
          - home
    then:
      - action: shell_command.sh_google_notify_message
        metadata: {}
        data:
          message: >-
            とーるが
            {% if states('device_tracker.iphone_xxxx') == 'home' %}
            帰宅
            {% else %}
            外出
            {% endif %}
            しました
mode: single

Homebridge2 はまだ早い?

homebridge2.0 が正式リリース

Homebridge の最新の homebridge2.0 が正式リリースとなった様子。

早々に更新をかけたけど、Homebridge People Pro とか Homebridge Cmdswitch2 などのプラグインが対象外となったようで、更新して起動したら、プラグインが動かず、バージョンを元に戻した。

更新してしまうと、自宅サーバでは Homebridge People Pro を活用して、在宅 / 外出の判定に使っていたのが動かなくなる。HomeAssistant に移行すればいいんだけど、私,ママ,こども,洗濯機などの監視だと、オートメーションの設定がかなり煩雑になる。

当面は、Homebridge 1.11.4 のままで運用かな。

Google 検索

My Google   Yahoo

Microsoft

ファンサイト

メタ情報