Как пробросить порты 443 и 25 одновременно на 2 сервера?

Ссылка скопирована
1 ответ

Добрый день,
подскажите пожалуйста как необходимо сделать проброс портов. Ситуация такая, у меня на тестовом стенде есть шлюз gateway с сертификатом и проброшенный порт на 443. Теперь я установил сервер Exchange и для него мне так же необходим проброс портов 25 и 443. Как мне пробросить порты имея 1 белый ip ? если сделать 2 правила проброса имея 1 внешний белый, то ничего не работает., как правильно делать?

Дополнительно:

Никак. 1 порт только на 1 ip.

Для 443 (https) - реверс-прокси. Порт пробрасывается на него, а он уже перенаправляет запросы к серверам по имени в запросе.
Для 25 (smtp) - всё принимается одним сервером и пересылается дальше по правилам маршрутизации почты.

  • Можете ссылку дать как он устанавливается Реверс прокси, впервые слышу про такое
    спасибо
  • Игорь Кривинцов, документация по nginx
  • Игорь Кривинцов,
    https://docs.nginx.com/nginx/admin-guide/web-serve...
    https://httpd.apache.org/docs/2.4/howto/reverse_pr...

Если я правильно понял вопрос...
1. Нужно создать (как и сообщали ребята выше) промежуточный сервер с nginx и твоим ssl, который будет принимать все запросы на 443 порт и разводить их по хостам (site.domen.ru, mail.domen.ru)...
2. Как я понял для 25 порта нужен один проброс, просто создаешь его... Если же нет, то на внешке выбираешь любой другой порт, к примеру, 2025 и пробрасываешь его на 25 порт ip внутреннего сервера, только всем клиентам из вне придется настраивать подключение smtp по порту 2025... Либо изменить порт SMTP на самом exchange...

  • если не ошибаюсь, nginx может и почту проксировать: https://nginx.org/en/docs/mail/ngx_mail_proxy_modu...
  • Михаил Ливач, вроде как да возможно вот

Ответы:

443 - это же для веба?
Раз так, то можно подняться на пару уровней выше, установить nginx и разруливать по доменному имени на уровне http-запросов.
Гугли nginx reverse proxy

На уровне портов ты точно не сможешь пробросить без изменения номера порта на входе.

Про то как перенаправить SMTP не подскажу.

Не совсем понятна задача и проблема. Проброс портов нужен для входящих соединений, для исходящих смысла в NAT нет (за редким исключением). И белый IP тут ни причем.
Поэтому никто не мешает создать 2 правила на один и тот же порт, и написать маршрутизацию пакетов для разных IP
spoiler

Как пробросить порты 443 и 25 одновременно на 2 сервера?

Просто работать это не будет как у тебя и случилось, т.е. будет, конечно, но работать будет для правила, которое расположено выше.
Как правильно делать, тебе уже подсказали, нужен виртуальный хостинг, тогда обращение к конкретному доменному имени (site0.mydomen.com, site1.mydomen.com и пр.) будет направлять запросы на конкретный сервис. Если же это разные машины внутри подсети - то реверспрокси надо настроить на маршрутизацию на конкретные внутренние IP.

Установи на отдельный хост или виртуалку nginx proxy manager. Это обратный прокси, он такое умеет. Также может дать и treafik... Только для почты {25 порт}может proxmox mail gateway.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Ирина WP Ответ

Для проброса портов 443 и 25 одновременно на два сервера, вам потребуется использовать прокси-сервер или балансировщик нагрузки.

Один из способов сделать это - использовать nginx как прокси-сервер. Вот пример конфигурации для nginx:

server {
    listen 443;
    server_name your_domain.com;
 
    location / {
        proxy_pass https://server1_ip;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
 
server {
    listen 25;
    server_name your_domain.com;
 
    location / {
        proxy_pass smtp://server2_ip;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

server { listen 443; server_name your_domain.com; location / { proxy_pass https://server1_ip; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } server { listen 25; server_name your_domain.com; location / { proxy_pass smtp://server2_ip; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }

В этом примере, все запросы на порт 443 будут направляться на сервер с IP-адресом server1_ip, а запросы на порт 25 будут направлены на сервер с IP-адресом server2_ip. Обратите внимание, что вам также потребуется настроить SSL-сертификаты для порта 443.

Если у вас есть балансировщик нагрузки, вы можете настроить его для проброса портов на разные сервера в зависимости от типа запроса.

Не забудьте также настроить правила файрвола для разрешения трафика на эти порты.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно