Почему пакет не знает куда ему идти? Вообщем, делаю обход NAT через OpenVPN. Что у нас имеется: VPS с белым IP, на нём установлен сервер OpenVPN Мой компьютер с серым IP, на нём установлен клиент OpenVPN (так-же, тут установлен web сервер) Комп из рандомной точки планеты с серым IP (выступает в роли клиента для моего web сервера) Я настроил между моим компьютером и VPS, VPN туннель, я могу спокойно делать пинги на 10.9.8.2 и 10.9.8.1 с друг друга. Так-же настроил проброс портов на VPS, и пакеты приходящие на порт 80, автоматически шлются в туннель (идут на IP 10.9.8.2). Что дальше? Пакет приходит на компьютер, VPS отредактировал пакет, и теперь там в IP назначения IP моего компьютера. Мой веб сервер принял пакет, и теперь шлёт ответ на IP рандомного компьютера (веб клиента), допустим это IP 172.225.130.43 и на порт 65536, и вот что происходит, пакет идёт не через туннель, а через обычный сетевой интерфейс, в итоге пакет теряется. Как заставить ответ идти по туннелю? ведь порт клиента и его айпи заранее то, неизвестен
Прежде всего, убедитесь, что на вашем компьютере установлен правильный маршрут для отправки ответных пакетов через туннель OpenVPN. Вы можете добавить маршрут с помощью команды route add на вашем компьютере. Например, если IP адрес вашего компьютера в туннеле OpenVPN равен 10.9.8.2, а IP адрес вашего клиента равен 172.225.130.43, вы можете добавить маршрут следующим образом:
Эта команда указывает вашему компьютеру отправлять все пакеты для IP адреса 172.225.130.43 через IP адрес 10.9.8.2 (ваш компьютер в туннеле OpenVPN).
Также убедитесь, что соединение OpenVPN на вашем компьютере настроено правильно и пакеты маркируются для отправки через туннель. В вашем конфигурационном файле OpenVPN добавьте следующие строки:
redirect-gateway def1 route-nopull
Эти строки установят маршрут по умолчанию через OpenVPN и предотвратят подтягивание дополнительных маршрутов из сервера OpenVPN.
После настройки этих параметров попробуйте еще раз отправить запрос с рандомного компьютера к вашему веб-серверу. Теперь ответные пакеты должны идти через туннель OpenVPN и достигнуть правильного адресата.
Прежде всего, убедитесь, что на вашем компьютере установлен правильный маршрут для отправки ответных пакетов через туннель OpenVPN. Вы можете добавить маршрут с помощью команды route add на вашем компьютере. Например, если IP адрес вашего компьютера в туннеле OpenVPN равен 10.9.8.2, а IP адрес вашего клиента равен 172.225.130.43, вы можете добавить маршрут следующим образом:
route add 172.225.130.43 mask 255.255.255.255 10.9.8.2
Эта команда указывает вашему компьютеру отправлять все пакеты для IP адреса 172.225.130.43 через IP адрес 10.9.8.2 (ваш компьютер в туннеле OpenVPN).
Также убедитесь, что соединение OpenVPN на вашем компьютере настроено правильно и пакеты маркируются для отправки через туннель. В вашем конфигурационном файле OpenVPN добавьте следующие строки:
redirect-gateway def1
route-nopull
Эти строки установят маршрут по умолчанию через OpenVPN и предотвратят подтягивание дополнительных маршрутов из сервера OpenVPN.
После настройки этих параметров попробуйте еще раз отправить запрос с рандомного компьютера к вашему веб-серверу. Теперь ответные пакеты должны идти через туннель OpenVPN и достигнуть правильного адресата.