Глава 3: Шлюзы роутера — Port Forwarding (Проброс портов)
<p>На данный момент наш сервер имеет фиксированный адрес внутри дома, а роутер — фиксированный статический адрес в интернете. Однако, если сейчас кто-то попытается постучаться на ваш внешний IP-адрес из интернета, роутер просто заблокирует этот запрос. Из соображений безопасности любой домашний роутер по умолчанию работает как глухая стена. Чтобы пропустить пользователей к нашей будущей вики-системе, нужно прорубить в этой стене "окна" — настроить проброс портов.</p>
<hr />
<h2>1. Что такое порты и зачем нужен их проброс?</h2>
<p>Представьте, что ваш внешний статический IP-адрес — это адрес огромного многоквартирного дома. Порты — это номера конкретных квартир в этом доме. В сетевом мире разные типы трафика ходят по строго определенным портам (квартирам):</p>
<ul>
<li><strong>Порт 80 (HTTP)</strong> — стандартный порт для обычного, незашифрованного веб-трафика. Через него веб-серверы начинают общение с браузерами.</li>
<li><strong>Порт 443 (HTTPS)</strong> — стандартный порт для защищенного, зашифрованного веб-трафика. Именно через него в итоге будет работать наш безопасный BookStack.</li>
</ul>
<p><strong>Port Forwarding (Проброс портов)</strong> — это правило межсетевого экрана на роутере, которое гласит: <em>«Если кто-то из интернета стучится в квартиру №80 или №443, перенаправь этот трафик прямо на мой внутренний сервер Debian (192.168.1.100) в его внутренние квартиры №80 и №443 соответственно»</em>.</p>
<hr />
<h2>2. Пошаговая настройка на роутере</h2>
<p>Вам необходимо пробросить два основных порта: <strong>80</strong> и <strong>443</strong>. Направление трафика должно быть сквозным: внешний порт должен соответствовать внутреннему.</p>
<ol>
<li>Откройте браузер на компьютере и зайдите в панель управления вашего роутера (<code>192.168.1.1</code> или <code>192.168.0.1</code>).</li>
<li>Перейдите в раздел, отвечающий за перенаправление трафика и правила маршрутизации. В зависимости от производителя он называется:
<ul>
<li><em>Переадресация -> Виртуальные серверы / Virtual Servers</em> (TP-Link)</li>
<li><em>Сетевые правила -> Переадресация портов / Port Forwarding</em> (Keenetic)</li>
<li><em>Интернет -> WAN -> Переадресация портов</em> (ASUS)</li>
</ul>
</li>
<li>Создайте <strong>первое правило</strong> (для незашифрованного HTTP):
<ul>
<li><strong>Имя правила:</strong> Любое понятное, например <code>Web HTTP</code></li>
<li><strong>Протокол:</strong> Укажите <code>TCP</code> (или TCP/UDP, если нет разделения)</li>
<li><strong>Внешний порт:</strong> <code>80</code></li>
<li><strong>Внутренний IP-адрес:</strong> Постоянный локальный IP вашего сервера (который мы зафиксировали в Главе 2, например <code>192.168.1.100</code>)</li>
<li><strong>Внутренний порт:</strong> <code>80</code></li>
</ul>
</li>
<li>Создайте <strong>второе правило</strong> (для зашифрованного веб-трафика HTTPS):
<ul>
<li><strong>Имя правила:</strong> Например, <code>Web HTTPS</code></li>
<li><strong>Протокол:</strong> Строго <code>TCP</code></li>
<li><strong>Внешний порт:</strong> <code>443</code></li>
<li><strong>Внутренний IP-адрес:</strong> IP вашего сервера (<code>192.168.1.100</code>)</li>
<li><strong>Внутренний порт:</strong> <code>443</code></li>
</ul>
</li>
<li>Сохраните и примените настройки роутера.</li>
</ol>
<hr />
<h2>3. Важное предупреждение о безопасности</h2>
<p style="background-color: #fffbe6; padding: 15px; border-left: 5px solid #ffe58f; margin-top: 10px;"><strong>ВНИМАНИЕ:</strong> Никогда ради удобства не пробрасывайте наружу порт 22 (SSH), порты систем управления базами данных (вроде 3306 для MySQL или 5432 для PostgreSQL) или порт Samba/NFS шары. Боты-сканеры в интернете найдут их за считанные минуты и начнут подбирать пароли. <br /><br />
Если вам нужен полноценный доступ к консоли сервера извне дома — используйте VPN (поднимите WireGuard или Tailscale) или, в крайнем случае, меняйте внешний порт SSH на нестандартный (например, открывайте снаружи порт 2222 и перенаправляйте его роутером на внутренний порт 22 сервера).</p>
<p style="background-color: #f6ffed; padding: 15px; border-left: 5px solid #52c41a; margin-top: 20px;"><strong>Итог главы:</strong> Магистраль из глобального интернета до вашего сервера Debian теперь полностью открыта. Роутер знает, куда отправлять веб-трафик, когда к нему стучатся. Осталось сделать так, чтобы вместо безликих цифр внешнего IP-адреса п
ользователи вводили красивое имя вашего личного домена.</p>