Я пытаюсь получить доступ к веб-серверу, работающему на ПК, который находится за брандмауэром, которым я не управляю, используя VPN-соединение (openvpn). По сути, я хочу использовать общедоступный IP-адрес своего VPN-сервера для доступа к веб-серверу на удаленном ПК за брандмауэром.
Согласно изображению,http://193.105.1.1:8085 представит веб-сайт, расположенный по адресу 192.168.1.1:8080
Извините, если этот вопрос уже был рассмотрен. Я пытался найти что-то подобное, но на самом деле не знаю, что искать.
Достаточно просто!
Для простоты рассмотрим машину A - 193.105.1.1 и машину B - 192.168.1.1.
Установите сервер OpenVPN на машину A
Я предпочитаю Ubuntu 18.04 и скрипт установщика Nyr OpenVPN
Просто запустите это в терминале
wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh
Предполагая, что у вас уже есть установка apache или nginx на компьютере B, убедитесь, что он прослушивает все интерфейсы.
На машине B установите клиент OpenVPN, чтобы подключиться к вашему серверу!
Запустите этот код в терминале, чтобы установить OpenVPN Client.
sudo apt-get install openvpn
Теперь нам нужно настроить машину A для маршрутизации трафика с общедоступного IP-адреса на внутренний IP-адрес OpenVPN, машине B будет назначен адрес 10.8.0.2, если вы использовали скрипт Nyr.
Настроим маршрутизацию!
sudo ufw enable ssh && sudo ufw enable
sudo nano /etc/default/ufw
sudo nano /etc/ufw/sysctl.conf
sudo nano /etc/ufw/before.rules
В конце строки после строки «COMMIT» добавить следующее
* нац
-F
: PREROUTING ACCEPT [0: 0]
-A PREROUTING -i eth0 -d 193.105.1.1 -p tcp -m multiport --dports 23: 65535 -j DNAT --to-destination 10.8.0.2
-A POSTROUTING -s 10.8.0.0/24! -d 10.8.0.0/24 -j МАСКАРАД
COMMIT
Измените eth0 на имя вашего сетевого интерфейса.
Сохраните и перезагрузите оба сервера! Подключите машину B к машине A с помощью клиента OpenVPN.