~에서systemd.unit 매뉴얼 페이지, ConditionPathExists=, ConditionPathIsSymbolicLink= 등과 같은 조건을 알고 있습니다. 그러나 나에게 필요한 것은 특정 기본 게이트웨이 주소에 의존하는 조건입니다.
nordvpnd.service
특히 사무실 네트워크에 연결되지 않은 경우에만 시작(및 소켓) 하고 싶습니다 . 내 NordVPN 서비스는 autostart
VPN 으로 설정되어 있으며 killswitch enabled
, 이것이 사무실을 제외한 모든 곳에서 작동하기를 원하는 방식입니다.
사무실에 있을 때는 항상 특정 기본 게이트웨이 IP 주소를 가지고 있습니다. 이 사실을 이용하여 유닛 파일에 조건을 구현할 수 있을 것 같습니다 nordvpnd.service
. 누구든지 이것을 달성하는 방법을 제안할 수 있습니까?
[Unit]
Description=NordVPN Daemon
Requires=nordvpnd.socket
After=network-online.target
Condition=??????
[Service]
ExecStart=/usr/sbin/nordvpnd
NonBlocking=true
KillMode=process
Restart=on-failure
RestartSec=5
[Install]
WantedBy=default.target
답변1
제가 제안할 수 있는 것이 있습니다. 이것이 유용한지 확인해주세요.
당신이 할 수 있는 일은 기본 게이트웨이를 얻고 환경 변수를 설정한 다음 ConditionEnvironment를 사용하여 이를 수행하는 것입니다.
게이트웨이 IP를 가져오고 환경 변수를 설정할 수 있는 명령은 다음과 같습니다.
gw=$(ip r | grep default | grep -oE "([[:digit:]]+\.)+{3}[[:digit:]]")
if [ "$gw" == "192.168.X.X" ]; then export officeNetwork=1; else export officeNetwork=0; fi
여기의 192.168.XX를 사무실의 기본 게이트웨이 IP로 바꾸세요.
그것이 당신에게 도움이 되기를 바랍니다