Я хотел бы знать, как я могу принудительно использовать порт 22 для интерфейса, который я хочу, любой интерфейс, Wi-Fi или Ethernet.
Например, маршрут *: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-туннелирования через этот сервер для всех остальных ваших соединений.