Как перенаправить трафик с VPS1 на VPS2?

Здравствуйте! Мне необходимо настроить перенаправление всего трафика по следующей схеме: pc -> vps1 -> vps2 -> server. Однако у меня есть проблема: из-за блокировки провайдером VPS не работают wireguard и openVPN. К тому же, требуется поддержка как TCP, так и UDP протоколов. В идеале, при подключении к vps1, у меня должен быть IP-адрес vps2. Я уже пробовал использовать 3x-ui, но соединение оказалось нестабильным, с пингом около ±30 ms. Какие средства могут помочь в создании такой структуры?
  • 3 октября 2024 г. 9:44
Ответы на вопрос 3
Для перенаправления трафика с одной VPS на другую, особенно если у вас есть ограничения на использование WireGuard и OpenVPN, вы можете рассмотреть следующие способы:

### 1. Использование SSH Tunneling
SSH-туннелирование — это один из простейших способов перенаправления трафика, поддерживающий как TCP, так и UDP.

#### Шаги:
1. Убедитесь, что на VPS1 и VPS2 установлен SSH-сервер.
2. На вашем ПК (клиенте) установите SSH-клиент.
3. Используйте команду SSH для создания туннеля. Пример для TCP:

```bash
ssh -D 8080 -N user@vps1
```
Это создаст SOCKS-прокси на порту 8080 на вашем ПК. Для использования UDP, вам потребуется использовать параметр `-w` в SSH.

Для создания перенаправления UDP, вам потребуется настройка на уровне сети (например, с помощью iptables), и ваша SSH должна поддерживать туннелирование UDP.

### 2. OpenSSH с настройкой TCP/UDP
Если SSH является единственным вариантом и вы не можете использовать VPN, попробуйте настроить редирект трафика через `iptables`.

#### На VPS1:
1. Откройте терминал и выполните следующие команды:

```bash
# Включите пакетный пересыл
echo 1 > /proc/sys/net/ipv4/ip_forward

# Перенаправьте TCP трафик на VPS2
iptables -t nat -A PREROUTING -p tcp --dport [порт_на_vps1] -j DNAT --to-destination [VPS2_IP]:[порт_на_vps2]
iptables -t nat -A POSTROUTING -j MASQUERADE
```

2. Сделайте аналогично для UDP:

```bash
iptables -t nat -A PREROUTING -p udp --dport [порт_на_vps1] -j DNAT --to-destination [VPS2_IP]:[порт_на_vps2]
iptables -t nat -A POSTROUTING -j MASQUERADE
```

### 3. Использование других VPN/Proxy решений
Если SSH не подходит, можно рассмотреть другие инструменты, которые могут обойти блокировки:
- **Tailscale** — позволяет легко создавать VPN, но также может оказаться под запретом.
- **WireGuard альтернативы** — есть возможность использовать другие VPN-решения, которые могут быть менее заметны.

### 4. Настройка Proxy-сервера
Вы также можете развернуть на VPS1 прокси-сервер (например, Squid или Nginx), который будет перенаправлять трафик на VPS2. Однако нужно помнить, что это может снизить производительность.

### 5. Устранение проблем с пингом
Проблемы с высокой задержкой могут быть связаны с рядом факторов:
- Неправильная настройка маршрутизаторов
- Загруженность сети
- Неоптимальные настройки TCP/IP

Постарайтесь оптимизировать конфигурацию, проверить качество сетевого соединения и настраивать MTU, чтобы снизить пинг.

Каждый из предложенных методов имеет свои преимущества и недостатки, поэтому выбор подходящего способа зависит от ваших конкретных нужд и сетевых условий.
перенаправить нужный порт - для подключения к VPN с VPS1 >> VPS 2 с помощью iptables, включить NAT в ядре так же на VPS1 

На VPS 2 настроить xray впн на протоколе vless xtls-reality (тот же 3x-ui это умеет)

стабильность подключения пингом не проверяется обычно, пинг это просто примерная скорость возврата пакета от Вас до сервера и обратно
Работающий тип ВПН от клиента до сервера1, работающий тип ВПН от сервера 1 до сервера 2. 
Соответствующая маршрутизация на пути.
Маршрутизация по source ip доступна из коробки, проблем не возникнет.
Также нужно на обоих серверах включить ip forward в ядре и проверить, что нет блокирующих правила iptables в цепочке FORWARD и сделать SNAT на сервере 2.
Похожие вопросы