나는 정말로하고 싶다노스VPN절전/재개 이벤트에서 살아남으려면 물론 원격 끝이 내 노트북의 소리를 들을 수 없으면 연결이 끊어집니다. 공평하게 말하자면, 자동화할 수만 있다면 잠자리에 들기 전에 연결을 끊었다가 이력서에 다시 연결할 수 있어 기쁩니다. 저는 평소와 같은 일을 합니다./usr/lib/systemd/system-sleep/sleep-stuff(다음과 같은).
그러나 이것은 완전히 작동하지 않습니다. 복구 시 "nordvpn connect"를 실행하고 즉시 관찰하면 라우팅 테이블이 괜찮아 보입니다(예: 절전/재개 스크립트에서:
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.8.1.1 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlp3s0
10.8.1.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
103.137.12.219 192.168.0.1 255.255.255.255 UGH 0 0 0 wlp3s0
128.0.0.0 10.8.1.1 128.0.0.0 UG 0 0 0 tun0
172.16.2.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8
172.16.71.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet1
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlp3s0
불행하게도 로그인했을 때 라우팅 테이블이 "뭔가"에 의해 비 VPN 모드로 다시 전환되었습니다. 무엇인지는 모르겠지만 아마도 NetworkManager일 것입니다.
$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlp3s0
172.16.2.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8
172.16.71.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet1
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlp3s0
NordVPN 상태는 실행 중이라고 보고합니다.
$ nordvpn status
Status: Connected
Current server: au492.nordvpn.com
Country: Australia
City: Brisbane
Your new IP: 144.48.39.91
Current technology: OpenVPN
Current protocol: UDP
Transfer: 7.89 MiB received, 6.00 MiB sent
Uptime: 24 minutes 52 seconds
...하지만 물론 연결을 끊거나 연결하는 추가 작업을 수행해야 하는데, 이는 촌스럽습니다.
어떤 아이디어가 있나요?
다음은 스크립트입니다(/usr/lib/systemd/system-sleep/sleep-stuff 및 chmod +x에 넣음).
#!/bin/sh
if [ "${1}" == "pre" ]; then
# before suspend
pgrep nordvpnd &> /dev/null && nordvpn status |grep -q 'Status: Connected' && {
# This will run as root, so root needs to have been initialised by
# nordvpn login at some time in the past.
/bin/nordvpn disconnect
}
elif [ "${1}" == "post" ]; then
# after resume
pgrep nordvpnd &> /dev/null && {
# This will run as root, so root needs to have been initialised by
# nordvpn login at some time in the past.
(
sleep 5 # I've tried sleep from 0 to 5
/bin/nordvpn connect
netstat -rn # routing table looks OK now but it gets zapped by something else later!!
) &
}
fi
이것은 Fedora-31에 있습니다.
답변1
잠시 생각한 끝에 스크립트를 사용하여 nordvpn을 다시 시작할 수 없다는 결론에 도달했습니다./usr/lib/systemd/시스템 절전/.
나는 이 스크립트를 사용하여 잠자는 동안 nordvpn을 중지하는 데 만족했으며 재개할 때 수동으로 다시 시작해야 한다는 것을 기억해야 합니다. 내가 사용하고 있는 것처럼그네(1) 단축키를 사용하면 타이핑 시간을 절약할 수 있습니다.
수정된 스크립트는 다음과 같습니다.
#!/bin/sh
if [ "${1}" == "pre" ]; then
# before suspend
pgrep nordvpnd &> /dev/null && nordvpn status |grep -q 'Status: Connected' && {
# This will run as root, so root needs to have been initialised by
# 'nordvpn login' at some time in the past.
nordvpn disconnect
}
elif [ "${1}" == "post" ]; then
# after resume
:
fi