В настоящее время у меня есть устройство NAS, работающее под портом 80. Чтобы получить доступ к NAS извне, я назначил порт 8080 порту 80 на NAS следующим образом:
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 10.32.25.2:80
Это работает как шарм. Однако это работает только в том случае, если я захожу на веб-сайт извне сети (на работе, в другом доме и т. Д.). Поэтому, когда я mywebsite.com:8080
набираю, IPTables делает работу правильно, и все работает нормально.
Теперь у меня проблема, как я могу перенаправить этот порт изнутри сети? Мое доменное имя mywebsite.com
указывает на мой маршрутизатор (мой сервер Linux) изнутри (10.32.25.1), но я хочу перенаправить порт 8080 на порт 80 10.32.25.2 изнутри.
Любая подсказка?
Редактировать # 1
Пытаясь помочь облегчить этот вопрос, я составил эту схему. Пожалуйста, не стесняйтесь обновлять, если это неправильно или искажает то, что вы ищете.
iptables
| .---------------.
.-,( ),-. v port 80 |
.-( )-. port 8080________ | |
( internet )------------>[_...__...°]------------->| NAS |
'-( ).-' 10.32.25.2 ^ 10.32.25.1 | |
'-.( ).-' | | |
| '---------------'
|
|
__ _
[__]|=|
/::/|_|
10.32.25.1:8080
перенаправить на 10.32.25.2:80
. Мое правило выше работает снаружи, но не внутри моей сети. Поэтому, если я нахожусь в офисе, я могу получить доступ к своему NAS с сайта website.com:8080, и он полностью прозрачен. Из моего дома website.com:8080 указывает на 10.32.25.1, потому что это мой роутер или Linux-сервер. Я хочу перенаправить порт 8080 на NAS также на порт 80, но опять же прозрачным способом.
eth0 10.32.25.2
, чтобы мы могли писать iptables на основе входящего интерфейса