Проброс портов с VPS в виртуальную/физическую машину
Всем привет. в этом гайде будем пробрасывать порты с VPS
в вашу виртуальную машину с помощью OpenWRT + WireGuard
Для начала. Почему я выбрал именно WireGuard?
Потому-что WireGuard работает быстрее OpenVPN + меньше проблем
с организацией статического ip для клиента.
OpenWRT нам пригодится для обхода NAT провайдера.
Если у вас белый ip и вы хотите просто его скрыть
за счёт пропускания всего траффика через вашу VPS.
Начнём с простого, настройка VPS для проброса портов.
Логинимся под root аккаунт на вашей VPS и вводим
echo 1 > /proc/sys/net/ipv4/ip_forward
теперь установим WireGuard, данный гайд
для не самых опытных юзеров лини. потому будем использовать скрипт.
Если у вас не установлен curl. ставим (Я использовал Debian)
# apt install curl -y (-y используется для утснаовки без подтверждения)
# curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh
# chmod +x wireguard-install.sh
# ./wireguard-install.sh
При установке WG можно ничего не менять, по вашему желанию.
В самом конце после установки скрипт предложит назвать юзера.
после установки WG пропишем:
clear
cat your-file.conf
копируем содержимое (В Putty просто выделяем текст)
[Interface]
PrivateKey = *************
Address = *************/32, *************/128
DNS = *************, *************
[Peer]
PublicKey = *************
PresharedKey = *************
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = *************:*****
Для удобства создадим файл на рабочем столе.
Вставляем в этот файл ваш скопированный конфиг
Сохранить как -> все файлы
Называем как угодно. расширение вписываем .conf
Теперь заходим в настройки openwrt. как установить OpenWRT я писал ТУТ
В шапке веб интерфейса роутера наводим курсор на пункт "System"(Система)
Заходим в "Software" (Программы)
Кликаем по кнопке "Update Lists"
теперь в фильтрах (строке пойска) пишем wireguard-install
Устанавливаем:
luci-app-wireguard
luci-proto-wireguard
После установки желательно перезагрузить роутер
После перезагрузки наводим курсор на "Network" (сеть)
Заходим в "Interfaces" (Интерфейсы)
Кликаем по кнопке "Add new Interface" (Добавить новый интерфейс)
Name - любое
Protocol - WireGuard VPN
В Private key вводим ваш приватный ключ
PrivateKey = *************
Listen Port не трогаем
Ip address вводим тот, что прописан в конфиге. Это клиентский ip
Находится в строке
Address = *************/32, *************/128 (вводим ipv4 - тот, что с маской /32)
Переходим во вкладку peers
Кликаем по кнопке "add peer"
В поля вводим Public Key, Preshared Key, Allowed IPs, Endpoint Host, Endpoint Port.
10.10.10.10:8888 (Endpoint Host 10.10.10.10, Endpoint port 8888) [EXAMPLE]
Ставим галочку route Allowed IPs
Сохраняем настройки
Кликаем Save & Apply
После сохранения настроек, кликаем по кнопке edit (изменить) на нашем WireGuard тоннеле.
Заходим в Firewall Settings и выбираем зону WAN.
Сохраняем настройки, жмём кнопку Edit уже на WAN порте роутера.
Заходим в Advanced Settings и убираем галочку "Use default gateway"
Сохраняем настройки, жмём Save & Apply и желательно перезагружаем наш роутер.
Теперь займёмся пробросом портов с VPS на OpenWRT.
В консоли VPS введём
iptables -A PREROUTING -t nat -i (YOUR_NET_INTERFACE) -p tcp --dport (PORT/PORT-RANGE) -j DNAT --to (IP ADDRESS_IN CONFIG:PORT)
FOR EXAMPLE:
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j DNAT --to 10.7.0.2:80
теперь вводим
iptables -A FORWARD -p tcp -d (IP ADDRESS_IN CONFIG) --dport (PORT/PORT/PORT-RANGE) -j ACCEPT.
Теперь уже пробрасываем порты в роутере.
Заходим в Network -> Firewall
Port Forwards -> Add
Задаём имя, Destination Zone в зависимости куда пробрасывать нужно, если на ваш Пк например, ставим WAN
Если в виртуальную машину, которая подкючена к вашему роутеру - то LAN. собственно говоря и всё.
Пример конфига
NAME: alo
PROTOCOL: TCP UDP
Source Zone: WAN
External port: 80
Destination Zone: WAN
Internal IP address: 192.168.1.35
Internal Port: 80
Спасибо за прочтение
|