Назад | Перейти на главную страницу

туннелирование smtp-соединений с localhost на другой порт

Хорошо, поэтому многие интернет-провайдеры теперь блокируют порт 25 для исходящих подключений, поэтому я установил сервер smtp на порт 1025. Теперь это отлично работает, и настроенные клиенты отправляют почту правильно. Но для большей части кода, уже находящегося на сервере, smtp-сервер должен быть на 25, теперь вместо того, чтобы перенастраивать весь код для использования нового порта, я думал об установке туннеля или чего-то еще, чтобы заставить всех с localhost до 25 перейти на localhost на 1025.

Я пробовал это, и это не сработало

iptables -t nat -A PREROUTING -p tcp -i lo --dport 25 -j DNAT --to 127.0.0.1:1025

что я могу сделать для этого?

Спасибо

Для пересылки с localhost используйте xinetd:

service smtp
{
        socket_type             = stream
        wait                    = no
        user                    = root
        redirect                = 127.0.0.1 1025
        bind                    = 127.0.0.1
}

Вы должны использовать REDIRECT не DNAT для портов с локальной переадресацией. Что-то вроде:

iptables -t nat -A PREROUTING -i lo -p tcp --dport 25 -j REDIRECT --to-ports 1025

Вы делаете это неправильно, концепция почти противоположная, попробуйте вместо этого:

iptables -t nat -I PREROUTING -p tcp --dport 1025 -j REDIRECT --to-ports 25
iptables -t nat -I OUTPUT 1 -o lo -d 127.0.0.1 -p tcp --dport 25 -j REDIRECT --to-ports 1025