-1

Я хотел бы знать, как я могу принудительно использовать порт 22 для интерфейса, который я хочу, любой интерфейс, Wi-Fi или Ethernet.
Например, маршрут *:22 до Wi-Fi.
Я проверил команду route но, похоже, это невозможно.
Любая идея?
Команды BSD или Linux приветствуются.

1 ответ1

3

Обычная маршрутизация работает только с точки зрения IP-адресов и не заботится о том, какие данные (включая TCP или UDP) передаются.


По крайней мере, в Linux вы можете использовать политику маршрутизации для этого:

  1. Добавьте правило брандмауэра, чтобы пометить определенные пакеты:

    iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 1
    
  2. Создайте новую таблицу маршрутизации с нужным вам шлюзом:

    ip route add default via 192.168.0.1 dev wlan0 table 42
    
  3. Добавьте правило политики, чтобы использовать новую таблицу маршрутизации для помеченных пакетов:

    ip rule add fwmark 1 table 42
    

В Windows вам понадобится другой подход, например, указание программе использовать определенный интерфейс. В некоторых программах есть опция "связать адрес", например, ssh -b:

ssh -b 192.168.0.42 root@myserver

(Хотя я не знаю, насколько хорошо он работает с несколькими интерфейсами . У меня есть чувство, что это не так.)


Наконец, вы можете добавить маршрут хоста (через Wi-Fi) к определенному серверу.

Это может быть расширено для включения SSH-туннелирования через этот сервер для всех остальных ваших соединений.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .