Systemdサービスはホストを解決できませんが(名前解決は一時的に失敗します)、rootユーザーは次のことができます。

Systemdサービスはホストを解決できませんが(名前解決は一時的に失敗します)、rootユーザーは次のことができます。

私のWireguard接続を確認するスクリプトを実行するシステムサービスがあります。サービスファイルは次のとおりです。

[Unit]
Description=Check the wg status and restart it if necessary
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/home/checkwg.sh

[Install]
WantedBy=multi-user.target

スクリプトはcheckwg.sh次のとおりです。

#!/bin/bash

wgout=$(wg show)

if [[ ! -n $wgout  ]] # check to see if there is an active wg connection
then
        echo "wg appears down, reactivating..."
        wg-quick up myvpn # This line throws "Temporary failure in name resolution"
else
        echo "wg is up"
fi

wgが開始されたことを確認するif文があります。起動しないと実行されますwg-quick up myvpn

スクリプトはrootとして実行すると動作します(私はDietpiを使用しているので、ユーザーのルートは1つだけです)。出力は次のとおりです。

./checkwg.sh
wg appears down, reactivating...
[#] ip link add myvpn type wireguard
[#] wg setconf myvpn /dev/fd/63
[#] ip address add 10.0.4.54 dev myvpn
[#] ip link set mtu 1420 up dev myvpn
[#] ip route add 10.0.0.1/32 dev myvpn
[#] wg set myvpn fwmark 51820

checkwg.serviceしかし、(running経由で)実行しようとすると、次のような結果systemctl restart checkwgが表示されます。

systemctl restart checkwg
journalctl -fu checkwg.service
May 17 10:22:30 camera systemd[1]: Started Check the wg status and restart it if necessary.
May 17 10:22:30 camera checkwg.sh[23181]: wg appears down, reactivating...
May 17 10:22:31 camera checkwg.sh[23181]: [#] ip link add myvpn type wireguard
May 17 10:22:31 camera checkwg.sh[23181]: [#] wg setconf myvpn /dev/fd/63
May 17 10:22:31 camera checkwg.sh[23181]: Temporary failure in name resolution: `myvpn.myhost.com:5555'. Trying again in 1.50 seconds...
May 17 10:22:32 camera checkwg.sh[23181]: Temporary failure in name resolution: `myvpn.myhost.com:5555'. Trying again in 2.25 seconds...
May 17 10:22:34 camera checkwg.sh[23181]: Temporary failure in name resolution: `myvpn.myhost.com:5555'. Trying again in 3.38 seconds...

システムでは自分のホストを確認できませんが、ルートで解決できるのはなぜですか?私はwg-quick up myvpnこれを次のように交換するとping google.com同じエラーが発生するため、これがワイヤガードの問題ではないと確信しています。Temporary failure in name resolution

ベストアンサー1

システムをFedora 38にアップグレードした後も同じ問題が発生しました。以下を追加して問題を解決しました。

LoadCredential=network.dns

その[Service]セクションの下にあります。

乾杯、ジェーン。

おすすめ記事