Я хотел бы узнать, как принудительно использовать порт 22 для нужного мне интерфейса, любого интерфейса, Wi-Fi или Ethernet.
Например, route *:22 для Wi-Fi.
Я проверил route
команду, но похоже, что это невозможно.
Есть идеи?
Команды BSD или Linux приветствуются.
решение1
Обычная маршрутизация работает только с IP-адресами и не учитывает, какие данные (включая TCP или UDP) передаются.
По крайней мере в Linux вы можете использоватьмаршрутизация политикидля этого:
Добавьте правило брандмауэра для маркировки определенных пакетов:
iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 1
Создайте новую таблицу маршрутизации с нужным вам шлюзом:
ip route add default via 192.168.0.1 dev wlan0 table 42
Добавьте правило политики для использования новой таблицы маршрутизации для маркированных пакетов:
ip rule add fwmark 1 table 42
В Windows вам понадобится другой подход, например, указатьпрограммадля использования определенного интерфейса. Некоторые программы имеют опцию "привязать адрес", например ssh -b
:
ssh -b 192.168.0.42 root@myserver
(Я не знаю, насколько хорошо это работает с несколькимиинтерфейсы, хотя. У меня такое чувство, что это может быть не так.)
Наконец, вы можете добавить маршрут хоста (через Wi-Fi) к определенному серверу.
Это можно расширить, включив SSH-туннелирование через этот сервер для всех ваших других подключений.