Systemd 서비스는 호스트를 확인할 수 없지만(이름 확인이 일시적으로 실패함) 루트 사용자는 다음을 수행할 수 있습니다.

Systemd 서비스는 호스트를 확인할 수 없지만(이름 확인이 일시적으로 실패함) 루트 사용자는 다음을 수행할 수 있습니다.

내 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.

스크립트는 루트로 실행할 때 작동합니다(저는 Dietpi를 사용하고 있으므로 사용자 루트는 하나만 있습니다). 출력은 다음과 같습니다.

./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]섹션 아래에 있습니다.

건배, 제인.

관련 정보