Я пытаюсь запустить серверную программу на локальной машине. У нее есть 2 пути в Интернет:
10.0.0.1/24
oneth0
— это шлюз и подсеть на интерфейсе с самым быстрым соединением; однако брандмауэр не позволяет мне получить доступ к любым серверам, привязанным к портам TCP.10.8.0.1/24
oneth1
— это шлюз и подсеть на более медленном интерфейсе; однако я контролирую устройство шлюза и могу успешно перенаправлять через него порты, а сервер виден в Интернете.
На моей машине есть следующие маршруты:
default via 10.0.0.1 dev eth0 src 10.0.0.x metric 203 default via 10.8.0.1 dev eth1 metric 800 10.8.0.0/24 dev eth1 proto kernel scope link src 10.8.0.y 10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.x metric 203
Очевидно, что маршрут via eth0
будет иметь приоритет при обычных обстоятельствах; однако для того, чтобы мой сервер перенаправлял порты, ему необходимо использовать шлюз по умолчанию на eth1
интерфейсе.безперенаправление всего остального трафика через тот же интерфейс.
До сих пор я пытался привязать сервер к адресу, 10.8.0.y
что означает, что он будет принимать только соединения, пунктом назначения которых является этот IP-адрес. Однако это не сработало для маршрутизации трафика в обратном направлении. Я проверил с помощью , tcpdump -i eth1 -p 25561
что входящие соединения принимаются, но при мониторинге обоих eth0
и eth1
я не вижу исходящего ответа. Затем соединение будет истекать по тайм-ауту на удаленном клиенте, если не будет получен ответ.
Кто-нибудь еще пытался сделать что-то подобное и может подсказать, как это настроить?