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

LXC и iptables - как изменить исходный IP-адрес с основного IP на другой IP-адрес

У меня есть контейнер LXC с почтовым сервером и «выделенным» IP-адресом.

«Выделенный» означает, что порт 25 и 110 IP-адреса перенаправляется на порт 25 и 110 контейнера. Это делается с помощью iptables.

Предположим, что внутренний адрес контейнера - 192.168.0.5, а публичный - 30.30.30.30.

Предположим также, что у сервера есть один сетевой адаптер "eth0" с одним основным IP-адресом (30.30.30.1) и несколькими дополнительными IP-адресами "eth0: 0" 30.30.30.30.

Когда почтовый сервер отправляет электронную почту, электронная почта отправляется с основного IP-адреса сервера.

Как я могу изменить это поведение и сделать весь исходящий трафик через «30.30.30.30»

Помните важную вещь: если вы хотите, чтобы все изменения вносились каждый раз при перезагрузке сервера, вам необходимо выполнить это правило в вашем / etc / network / interfaces и в разделе eth0:

post-up iptables -t nat -I POSTROUTING -o eth0 -s 192.168.0.5 -j SNAT --to-source 30.30.30.30

post-down iptables -t nat -D POSTROUTING -o eth0 -s 192.168.0.5 -j SNAT --to-source 30.30.30.30

И у вас всегда наготове ваши изменения, когда вы перезагружаете сервер.

Я нашел способ сделать это.

Вот правило:

iptables -t nat -I POSTROUTING -o eth0 -s 192.168.0.5 -j SNAT --to-source 30.30.30.30

Важные моменты:

  • правило нужно ввести (вставить) вверху, используя -I вместо того -A
  • интерфейс должен быть указан как eth0 вместо того eth0:0