LINUX.ORG.RU

Доступ в Интернет через два VPS

 


1

2

Привет. Может найдется время ответить.

Имеется сервер WireGuard на VPS 1 (Ubuntu - ip 10.8.0.1). К нему в качестве клиента подключен второй VPS 2 (Ubuntu - ip 10.8.0.2). К серверу WireGuard также подключен компьютер пользователя (Win10 - ip 10.8.0.3).

Требуется для компьютера пользователя настроить выход в Интернет через VPS 2 так, чтобы пакеты проходили по цепочке Компьютер -> VPS 1 -> VPS 2 -> Интернет.

WireGuard сеть настроена и работает (пингуются все компьютеры). На сервере в iptables добавил следующее:

iptables -t nat -A PREROUTING -s 10.8.0.3 -j DNAT –to-destination 10.8.0.2

iptables -t nat -A POSTROUTING -d 10.8.0.2 -j SNAT –to-source 10.8.0.3

То есть сервер перенаправляет все пакеты с ip 10.8.0.3 (компьютер) на ip 10.8.0.2 (VPS 2).

Пинг проходит, однако Интернета на компьютере пользователя нет.



Последнее исправление: Virap (всего исправлений: 1)

А таблица маршрутизации на vps2?

Tanger ★★★★★
()

сервер перенаправляет все пакеты с ip 10.8.0.3 (компьютер) на ip 10.8.0.2 (VPS 2)

т.е. 10.8.0.3 открывает в хроме гугл, а вместо гугла попадает на 10.8.0.2, который никакого гугла в пакетах не видит, а наоборот видит, что пакеты предназначены ему самому?

rubic
()

VPS в одной подсети находятся или тоже через VPN связь?

Если кратко, то делаешь p2p маршрут между VPS (VPN канал если не в одной подсети)и настраиваешь на VPS1 Policy Base Routing для трафика приходящего с ПК, на VPS2 соответственно нужен маршрут до ПК (через созданный VPS до VPS1) и src-nat для WAN.

Kolins ★★★★
()
Ответ на: комментарий от Spoofing

Два VPNа лучше чем один, но хуже чем три.

rupert ★★★★★
()
10 мая 2022 г.

Оставлю здесь решение своей проблемы (источник).

Итак требуется настроить выход в Интернет через Wireguard по такой схеме:
PC → Server1 → Server2 → Internet

PC - Win10 без белого IP. Server1 и Server2 c белым IP - Ununtu20.04

  • Настройка Server2
    • Установка Wireguard
      sudo apt install wireguard
      
    • Создание ключей для Server2
      sudo wg genkey | sudo tee /etc/wireguard/server2.key | wg pubkey | sudo tee /etc/wireguard/server2.key.pub
      sudo cat /etc/wireguard/server2.key - выводим приватный ключ сервера, чтобы его скопировать
      sudo cat /etc/wireguard/server2.key.pub - выводим публичный ключ сервера, чтобы его скопировать
      
    • Файл конфигурации ( sudo nano /etc/wireguard/wg0.conf )
      [Interface] # Server2
      PrivateKey = секретный ключ Server2
      Address = 10.8.0.2/24
      ListenPort = 53701
      SaveConfig = false
      
      [Peer] # Server1
      PublicKey = публичный ключ Server1
      AllowedIPs = 10.8.0.0/24
      
    • Настройка iptables
      sudo iptables -A FORWARD -i wg0 -j ACCEPT
      sudo iptables -A FORWARD -o wg0 -j ACCEPT
      sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
      
    • Включение роутинга
      sudo nano /etc/sysctl.conf - открыть файл конфигурации для редактирования
      net.ipv4.ip_forward=1 - раскомментировать данную строку и сохранить изменения
      sudo sysctl -p /etc/sysctl.conf - запустить команду для вступления изменений в силу
      
    • Включение VPN
      sudo wg-quick up wg0  (для выключения: sudo wg-quick down wg0)
      
  • Настройка Server1
    • Установка Wireguard
      sudo apt install wireguard
      
    • Создание ключей для Server1
      sudo wg genkey | sudo tee /etc/wireguard/server1.key | wg pubkey | sudo tee /etc/wireguard/server1.key.pub
      sudo cat /etc/wireguard/server1.key - выводим приватный ключ сервера, чтобы его скопировать
      sudo cat /etc/wireguard/server1.key.pub - выводим публичный ключ сервера, чтобы его скопировать
      
    • Создание ключей для PC
      sudo wg genkey | sudo tee /etc/wireguard/pc.key | wg pubkey | sudo tee /etc/wireguard/pc.key.pub
      sudo cat /etc/wireguard/pc.key - выводим приватный ключ компьютера, чтобы его скопировать
      sudo cat /etc/wireguard/pc.key.pub - выводим публичный ключ компьютера, чтобы его скопировать
      
    • Файл конфигурации ( sudo nano /etc/wireguard/wg0.conf )
      [Interface] # Server1
      PrivateKey = приватный ключ Server1
      Address = 10.8.0.1/32
      ListenPort = 53701
      Table = wireguard2x
      SaveConfig = false
      
      [Peer] # Server2
      PublicKey = публичный ключ Server2
      Endpoint = 2.2.2.2:53701 # белый IP второго сервера
      AllowedIPs = 0.0.0.0/0
      #PersistentKeepalive = 25
      
      [Peer] # PC
      PublicKey = публичный ключ PC
      AllowedIPs = 10.8.0.11/32
      
    • Настройка iptables
      sudo iptables -A FORWARD -i wg0 -j ACCEPT
      sudo iptables -A FORWARD -o wg0 -j ACCEPT
      
    • Настройка правил роутинга через дополнительную таблицу
      sudo echo 123 wireguard2x >> /etc/iproute2/rt_tables - добавляем свою таблицу wireguard2x
      sudo ip rule add iif wg0 table wireguard2x - если VPN включен, то для роутинга используется таблица wireguard2x
      
    • Включение роутинга
      sudo nano /etc/sysctl.conf - открыть файл конфигурации для редактирования
      net.ipv4.ip_forward=1 - раскомментировать данную строку и сохранить изменения
      sudo sysctl -p /etc/sysctl.conf - запустить команду для вступления изменений в силу
      
    • Включение VPN
      sudo wg-quick up wg0  (для выключения: sudo wg-quick down wg0)
      
  • Настройка PC
    • Установка Wireguard
      Скачать с оф. сайта и установить как обычную программу. Затем добавить файл конфигурации.
      
    • Файл конфигурации ( /etc/wireguard/wg0.conf )
      [Interface] # PC
      PrivateKey = приватный ключ PC
      Address = 10.8.0.11/32 
      DNS = 8.8.8.8
      
      [Peer] # Server1
      PublicKey = публичный ключ Server1
      Endpoint = 1.1.1.1:53701 # белый IP первого сервера
      AllowedIPs = 0.0.0.0/0 # весь трафик компьютера направляется в туннель VPN
      #PersistentKeepalive = 25
      

Делал вот по этой инструкции: ссылка. Там же есть еще один вариант решения данной задачи.

Virap
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.