У меня есть openVPN, подключенный на моем компьютере с Ubuntu, но я бы хотел, чтобы через мой домашний маршрутизатор не запускались несколько приложений. Они работают на портах 22 и 32400 (ssh и plex).
Итак, я провел некоторое исследование о том, как настроить маршрутизацию для конкретной политики.
Проблема в том, что, несмотря на все мои усилия, кажется, что все еще маршрутизируется через VPN
Резюме того, что я сделал
Мой rp_filter
установлен в 0. Я изменил свою таблицу mangle, чтобы добавить отметку в пакеты с портами назначения 32400 и 22. У меня есть правило для отправки помеченных пакетов в пользовательскую таблицу "notunnel", и маршрут по умолчанию для таблицы notunnel - это мой маршрутизатор-шлюз.
(Обратите внимание, что я использую порт 80 в качестве тестового порта, потому что проще просматривать мой публичный IP-адрес через веб-сайт, чем использовать ssh в моей домашней сети для проверки конфигурации).
Вот таблицы
user@host:~$ ip rule show
0: from all lookup local
32765: from all fwmark 0x1 lookup notunnel
32766: from all lookup main
32767: from all lookup default
user@host:~$ ip route show table main
default via 10.158.1.5 dev tun0 proto static
10.158.1.1 via 10.158.1.5 dev tun0 proto static
10.158.1.5 dev tun0 proto kernel scope link src 10.158.1.6
172.98.67.18 via 192.168.0.1 dev wlan0 proto static
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.10 metric 9
user@host:~$ ip route show table notunnel
default via 192.168.0.1 dev wlan0
user@host:~$ sudo iptables -t mangle -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
CONNMARK all -- anywhere anywhere ctstate RELATED,ESTABLISHED CONNMARK restore
RETURN all -- anywhere anywhere ctstate RELATED,ESTABLISHED
CONNMARK tcp -- anywhere anywhere tcp dpt:http CONNMARK set 0x1
CONNMARK tcp -- anywhere anywhere tcp dpt:32400 CONNMARK set 0x1
CONNMARK all -- anywhere anywhere CONNMARK save
CONNMARK tcp -- anywhere anywhere tcp spt:32400 CONNMARK set 0x1
CONNMARK tcp -- anywhere anywhere tcp spt:http CONNMARK set 0x1
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
Поэтому, как всегда, любой совет будет приветствоваться с распростертыми объятиями.