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

Маршрутизация входящего трафика через туннель GRE

Итак, у меня есть сервер VPS и Dedi, на которых работает Debian 9.9.

139.99.x.x: VPS
139.89.x.x: DEDI

Сервер Dedi запускает игровой сервер, но не может быть доступен напрямую, я хочу сначала направить весь трафик через мой VPS (obv, чтобы замаскировать IP-адрес игрового сервера).

Я хочу сделать это с помощью туннеля GRE. Итак, на деди я сделал:

ip tunnel add gre1 mode gre remote 139.99.x.x local 139.89.x.x ttl 255
ip link set gre1 up
ip addr add 10.10.10.1/24 dev gre1

На VPS:

ip tunnel add gre1 mode gre remote 139.89.x.x local 139.99.x.x ttl 255
ip link set gre1 up
ip addr add 10.10.10.2/24 dev gre1

Это работает, я могу пинговать в обоих направлениях. Я также включил переадресацию ip в sysctl.conf.

Теперь я хочу, чтобы внешний трафик, попадающий на VPS на 139.99.x.x: 27015, проходил через туннель и достигал 10.10.0.1:27015 на DEDI.

Итак, моя попытка была такой, которую я получил из другого вопроса здесь, на VPS:

iptables -t nat -A PREROUTING -p tcp -m tcp -m multiport -d 139.99.x.x --dports 27015 -j DNAT --to-destination 10.10.10.1
iptables -t nat -A POSTROUTING -o gre1 -p tcp -m tcp -m multiport -d 10.10.10.1 --dports 27015 -j SNAT --to-source 10.10.10.2

Кто-нибудь может предоставить мне рабочий пример?

Спасибо!

Ваша настройка верна, и все должно работать. При возникновении любых проблем вы должны использовать следующие шаги для устранения проблем:

  1. Проверьте счетчики правил iptables в таблице nat с помощью iptables-save -c -t nat команда. Счетчики правил должны быть ненулевыми. Порядок правил важен, если у вас есть другие правила в таблице nat.

  2. Если счетчики равны нулю, запустите tcpdump для обеспечения входящего трафика.

  3. Кроме того, вы должны разрешить пересылку пакетов в брандмауэре. Универсальное правило, как это делать: iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED,DNAT -j ACCEPT.

  4. Запустите tcpdump на сервере DEDI (tcpdump -ni gre1) для обеспечения перенаправления пакетов от VPS.

  5. На VPS вы должны разрешить входящие пакеты: iptables -A INPUT -i gre1 -p tcp --dport 27015.

P.S. Убедитесь, что ваш игровой сервер использует протокол tcp. В большинстве игр используется udp, потому что он больше всего подходит для игр.