Antes de ejecutar el siguiente comando, para no perder el acceso vía SSH, consultar la siguiente sección: Excluir tráfico SSH
Posteriormente, para realizar la conexión:
sudo openvpn --config mullvad_us_mia.conf
Excluir tráfico SSH
Si se desea utilizar la VPN en un VPS al que accederás mediante SSH, es posible excluir el tráfico SSH del túnel VPN para evitar la pérdida de conexión.
ip route | grep default
sudo ip rule add from <IP VPS> table 200
sudo ip route add default via <IP Gateway VPS> dev ens3 table 200
sudo iptables -t mangle -A OUTPUT -p tcp --sport 22 -j MARK --set-mark 2
sudo ip rule add fwmark 2 table 200
sudo iptables -t mangle -L OUTPUT -v -n
ip rule show
ip route show table 200
Como servicio
sudo vim /usr/local/bin/vpn_ssh_exclude.sh
sudo chmod +x /usr/local/bin/vpn_ssh_exclude.sh
#!/bin/bash
# Configurar reglas de enrutamiento
sudo ip rule add from <IP VPS> table 200
sudo ip route add default via <IP Gateway VPS> dev ens3 table 200
# Configurar iptables para marcar paquetes SSH
sudo iptables -t mangle -A OUTPUT -p tcp --sport 22 -j MARK --set-mark 2
sudo ip rule add fwmark 2 table 200
sudo iptables -t mangle -L OUTPUT -v -n
sudo dos2unix /usr/local/bin/vpn_ssh_exclude.sh
sudo vim /etc/systemd/system/vpnsshexclude.service
[Unit]
Description=Configurar reglas de rutas y iptables al inicio
After=network.target
[Service]
ExecStart=/usr/local/bin/vpn_ssh_exclude.sh
Restart=always
User=root
[Install]
WantedBy=multi-user.target