В даний час у мене є блок 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 з веб-сайту.com: 8080, і він повністю прозорий. З мого дому, веб-сайт.com: 8080 вказує на 10.32.25.1, тому що це мій маршрутизатор ака-сервер Linux. Я хочу перенаправити порт 8080 на NAS також на порт 80, але знову ж таки прозорим способом.
eth0 10.32.25.2
, щоб ми могли писати використання iptables на основі вхідного інтерфейсу