systemd를 사용하여 시스템 시작 시 자동으로 VPN에 연결

systemd를 사용하여 시스템 시작 시 자동으로 VPN에 연결

시스템 시작 시 VPN을 자동으로 시작하고 네트워크가 다시 연결될 때(어떤 이유로든 연결이 끊어진 후) 다시 연결하고 싶습니다.

연결 명령은protonvpn-cli connect -f

연결을 끊는 명령은 다음과 같습니다.protonvpn-cli disconnect

auto_vpn.servicein이라는 파일이 ~/.config/systemd/user다음 내용으로 생성되었습니다.

[Unit]
Description=Connect to Proton-VPN
Requires=graphical-session.target
After=graphical-session.target

[Service]
Type=simple
ExecStart=/usr/bin/protonvpn-cli connect -f
ExecStop=/usr/bin/protonvpn-cli disconnect
Restart=on-failure
RestartSec=30
StartLimitInterval=350
StartLimitBurst=10
RemainAfterExit=yes

[Install]
WantedBy=graphical-session.target

그런 다음 다음을 실행하십시오.

systemctl --user daemon-reload
systemctl --user start auto_vpn.service
systemctl --user enable auto_vpn.service

이제 문제는 서비스가 작동하는지입니다. 하지만 컴퓨터를 다시 시작하면 서비스가 시작되지 않습니다(활성화된 경우에도). 또한 네트워크가 다시 연결될 때(어떤 이유로든 연결이 끊어진 후) 다시 시작될지 확실하지 않습니다.

답변1

따라서 제가 systemd에서 사용하는 많은 옵션에 익숙하지 않더라도 다음을 변경하여 시스템이 작동하도록 하고 그대로 둘 수 있습니다.

BindsTo=network.service쓸모가 없을 것 같아서 삭제했습니다 . 나는 필요없이 이런 것들을 실행했습니다.

Type=simple
ExecStart=/usr/bin/protonvpn-cli connect -f
ExecStop=/usr/bin/protonvpn-cli disconnect

protonvpn-cli그러나 디렉토리 아래에 이름이 지정된 항목이 있는지 확인하십시오 /usr/bin. 설치 방법에 따라 다른 위치에 있을 수도 있습니다.

이 경우 whereis패키지를 찾는 데 사용하십시오.

답변2

auto_vpn.service~/.config/systemd/user다음 내용으로 이름이 in인 파일을 만듭니다 .

[Unit]
Description=Connect to Proton-VPN
BindsTo=graphical-session.target

[Service]
Type=simple
ExecStart=/usr/bin/protonvpn-cli connect -f
ExecStop=/usr/bin/protonvpn-cli disconnect
Restart=on-failure
RestartSec=30
StartLimitInterval=350
StartLimitBurst=10
RemainAfterExit=yes

[Install]
WantedBy=xsession.target

이제 다음을 실행하세요.

systemctl --user daemon-reload
systemctl --user start auto_vpn.service
Run `systemctl --user enable auto_vpn.service

그게 다야.

관련 정보