Я хочу подключиться удаленно по SSH.
Однако я не могу это сделать, пока моя VPN активна, поэтому я отключаюсь от VPN, а затем подключаюсь через другое соединение.
Как я могу принудительно установить соединение через другое соединение при подключении к VPN?
Я использую Windows 7 и клиент PuTTY.
Есть 2 варианта. Во-первых, вы можете изменить свои маршруты, чтобы пакеты SSH естественным образом проходили через правильный интерфейс.
Или вы можете использовать -b
Вариант SSH (или аналогично -B
один):
-b bind_address Use bind_address on the local machine as the source address of the connection. Only useful on systems with more than one address.
Он привяжет ваш SSH-клиент к выбранному локальному IP-адресу, так что все пакеты будут отправляться через связанный интерфейс.
Проблема была в выбранном маршруте.
Решением было обновить таблицу маршрутизации. Я использовал route
команда для добавления нового маршрута с указанием правильного интерфейса и шлюза.
Команда выглядит как route add <destination> mask <netmask> <gateway> <interface>
, например:
route -p add 10.100.10.10 mask 255.255.255.0 192.168.1.0 IF 13
-p
для постоянного, поэтому он остается там после перезагрузки. IF
предназначен для интерфейса, и вы можете получить этот номер из команды route print
.
Вы должны изменить маршрут к месту назначения.
В предыдущем ответе говорилось, что -b
или -B
параметры могут быть использованы, но обычно, если VPN активирован, это не работает, потому что перенаправляет трафик к любому месту назначения через сетевой интерфейс VPN - обычно называемый tun0
.
Следовательно, вы должны изменить маршрут, по которому вы доберетесь до пункта назначения. Назовем это <destination>
, и <gate1>
IP-адрес шлюза (технически адрес маршрутизатора nexthop), связанный с другим интерфейсом, который вы хотите использовать. С участием ip route
, route
не рекомендуется, это должно быть:
ip route add <destination> via <gate1>
Альтернативой является
ip route add <destination> via <gate1> dev <different interface>
но учитывая, что адрес <gate1>
уже связан с вашим другим интерфейсом, здесь <different interface>
, это ничего не меняет.
Здесь важно указать, что это <gate1>
, шлюз вашего другого интерфейса, который необходимо пройти, вместо шлюза VPN.