Допустим, у меня есть 2 сервера

Сервер А и Сервер Б

Я хочу, чтобы весь трафик с сервера B проходил через сервер A (как прокси-сервер для всей системы), я понимаю, что один из способов сделать это - использовать VPN-сервер на сервере A. Но, насколько я знаю, есть способ сделать это с помощью iptables или ip route, который будет очень надежным.

Как этого достичь? обе машины работают под управлением Debian Linux.

Каждый сервер размещен у другого интернет-провайдера.

2 ответа2

1

Этого нельзя достичь, если оба компьютера не находятся в одной подсети.

Если это так, тогда вы сначала настроите сервер A в качестве "шлюза по умолчанию" для B - и аналогично, для реального шлюза необходим обратный маршрут к B через A:

  • на сервере B: to 0.0.0.0/0 via <A's IP>
  • на реальном шлюзе: to <B's IP>/32 via <A's IP>

Но если они вообще находятся в разных сетях (как вы сказали, "размещены у другого провайдера"), единственный способ использовать A в качестве шлюза - это настроить виртуальную сеть уровня 2 - что да, VPN.

(Это исключает IP "маршрутизацию источника", которая была удалена с огнем из большинства современных сетевых стеков из-за проблем безопасности.)

Если вас беспокоит конфиденциальность (трафик "протекает"), настройте сервер B таким образом, чтобы единственный маршрут по умолчанию, который он имеет, проходил через VPN - если он общается только с сервером A, тогда ему нужен только определенный "маршрут хоста" (a /32 или /128) к А. Например:

  • to ::/0 via <A's internal IP>
  • to <A's external IP>/128 via <real default gateway>
-1

используя iptables:

Попробуйте это: очевидно, измените интерфейс в соответствии с вашими настройками.

iptables -t nat -A ПРЕДУПРЕЖДЕНИЕ -i eth0 -j DNAT - к месту назначения 192.168.3.2

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .