Я намагаюся запустити серверну програму на локальному комп'ютері. Він має 2 маршрути до Інтернету:
10.0.0.1/24
наeth0
є шлюзом і підмережею на інтерфейсі з найшвидшим з'єднанням; проте брандмауер заважає доступу до серверів, прив'язаних до портів TCP.10.8.0.1/24
наeth1
є шлюзом і підмережею на більш повільному інтерфейсі; однак я керую шлюзовим пристроєм і можу успішно переносити його вперед, і сервер видно в Інтернеті.
На моїй машині є такі маршрути:
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
Ясно, що маршрут через eth0
буде мати пріоритет за звичайних обставин; однак для того, щоб мій сервер був переадресований порту, він повинен використовувати шлюз за замовчуванням на eth1
інтерфейс без перенаправлення всього іншого трафіку через той самий інтерфейс.
Що я спробував до сих пір, щоб прив'язати сервер до адреси 10.8.0.y
це означає, що він буде приймати тільки з'єднання, призначення яких - це IP-адреса. Однак він не працював для маршрутизації трафіку в протилежному напрямку. Я перевірив, використовуючи tcpdump -i eth1 -p 25561
що приймаються вхідні з'єднання, але при моніторингу обох eth0
і eth1
Я не бачу вихідної відповіді. З'єднання потім вимкне на віддаленому клієнті, коли не буде отримано жодної відповіді.
Хто-небудь ще спробував зробити щось подібне і може дати деяке уявлення про те, як мені потрібно налаштувати його?
all
і eth1
.
ip route table
в поєднанні зip rule
щоб зв'язати IP-адресу джерела з відповідним маршрутом призначення. Подивись на lartc.org/howto/lartc.rpdb.multiple-links.html . Розглянемо вашу локальну машину - маршрутизатор linux, підключений до провайдера 1 і провайдера 2 для того, щоб слідувати поясненням. Потім ви можете навіть використовувати iptables для вибору потрібного постачальника (наприклад, вибравши правильний джерело ip).