Mullvad: Unterschied zwischen den Versionen

Aus /dev/tal
Wechseln zu: Navigation, Suche
K
K
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 19: Zeile 19:
  
  
<pre>
+
<syntaxhighlight lang="bash">
 
#!/usr/bin/env bash
 
#!/usr/bin/env bash
  
Zeile 29: Zeile 29:
 
CMD="$1"
 
CMD="$1"
  
if [[ "$1" == "start" ]]; then
+
if [[ "$CMD" == "start" ]]; then
  
 +
#
 +
# see: https://mullvad.net/en/help/split-tunneling-with-linux-advanced
 +
#
 
sudo nft -f - << EOF
 
sudo nft -f - << EOF
 
define EXCLUDED_IPS = {
 
define EXCLUDED_IPS = {
Zeile 44: Zeile 47:
 
EOF
 
EOF
  
elif [[ "$1" == "stop" ]]; then
+
elif [[ "$CMD" == "stop" ]]; then
  
 
   sudo nft delete table inet enableInDevtal
 
   sudo nft delete table inet enableInDevtal
Zeile 52: Zeile 55:
 
   exit 1
 
   exit 1
 
fi
 
fi
</pre>
+
</syntaxhighlight>

Aktuelle Version vom 29. Oktober 2025, 00:41 Uhr

Wer auf seinem Linux-Laptop den VPN Service von Mullvad verwendet und im /dev/tal Netzwerk ist, wird schnell feststellen, dass interne Services wie z.B. das Mete nicht erreichbar sind.

Um das zu gewährleisten müssen 2 Sachen unternommen werden.


1. Das "Local network sharing" muss aktiviert werden. (Muss es? Muss nochmal getestet werden)

Settings -> VPN settings -> Local network sharing -> On


2. Das Service Netzwerk muss (mit bestimmten marks) in die nftables eingefügt werden

Jemand hat dazu ein kleines Shell Script geschrieben.

Das Script dann mit "script.sh start" starten um die Ausnahme hinzuzufügen oder "script.sh stop" verwenden um die Ausnahme wieder zu entfernen.


#!/usr/bin/env bash
 
if [[ $# -lt 1 ]]; then
  echo "Usage: $0 <start|stop>"
  exit 0
fi
 
CMD="$1"
 
if [[ "$CMD" == "start" ]]; then
 
#
# see: https://mullvad.net/en/help/split-tunneling-with-linux-advanced
#
sudo nft -f - << EOF
define EXCLUDED_IPS = {
    10.16.43.0/24
}
 
table inet enableInDevtal {
  chain excludeOutgoing {
    type route hook output priority 0; policy accept;
    ip daddr \$EXCLUDED_IPS ct mark set 0x00000f41 meta mark set 0x6d6f6c65;
  }
}
EOF
 
elif [[ "$CMD" == "stop" ]]; then
 
  sudo nft delete table inet enableInDevtal
 
else
  echo "Error unknown command: $CMD"
  exit 1
fi