Как открыть доступ к серверу извне, используя туннель к VPS с белым IP?
Доброго времени суток. Продолжаю свои "развлечения" с VPS и OpenVPN, попутно прокачивая навыки работы с сетью.
Имеется VPS (ubuntu) с белым статическим IP, удалось прокинуть туннель через OpenVPN и на личном компьютере (windows 10, где изначально был серый адрес) IP адрес поменялся на адрес сервера.
Но вот вопрос вот теперь в чём. Есть у меня желание запустить игровой сервер на ПК, чтобы без всяких дурацких сервисов дать IP знакомым - а те благополучно зашли на этот сервер. Но, увы, результат отрицательный. Хоть айпи и поменялся, но сервер не видно извне и никак к нему не подключиться. Мои предположения - нужно проброс портов устроить, а может что-то иное? Если порты, то на роутере прописал на внутренний адрес компьютера, может нужно переадресацию сделать? Вот чувствую, что что то близко, но не знаю что именно и как.
Может я неправильно туннель построил? Или вовсе не построил его.
Однажды пользовался утилитой Ngrok - она вроде тоже туннель создает и возвращает публичный адрес, в этом случае результат благоприятный, но не устраивал меня по ряду причин.
Надеюсь есть возможность осуществить мою маленькую мечту с помощью личного VPS (который у меня только из-за белого IP). Подскажите, куда я повернул не туда? В какую сторону двигаться? Буду благодарен, если сможете вывести меня из этих дебрей :) !
?
И всё это дело я ввожу на VPS в терминале, я правильно понимаю? В любом случае, "*nat" команда у меня отсутствует.
Прошу прощения за, возможно, глупые вопросы, но что поделать, пытаюсь разобраться как могу. По сути впервые столкнулся с такой реализацией.
Это надо смотреть на сервере, это интерфейс через который ходит VPN трафик. В моем примере интерфейс называется wg0 (vpn wireguard поднят) Если у вас OpenVPN то скорее всего интерфейс будет tun Имя интерфейса можно посмотреть коммандой ip addr
"*nat" команда у меня отсутствует.
это не команда, это название таблицы в файерволе. В данном случае iptables
Если у вас на сервере именно iptables то комманды будут выглядеть так:
- мне это многого стоило) Если бы я с ubuntu работал чуть больше, чем 8 часов в сумме за всю жизнь, возможно, таких вопросов и не возникало.
Да, действительно tun0. По поводу маршрутизации, то с
echo 1 >
ничего не выводит, отдельно если ввести
sudo /proc/sys/net/ipv4/ip_forward
, то такая команда отсутствует.
Про *nat понял. Да, iptables скорее всего и используются, хотя после всех манипуляций (ввёл исправленный шаблон) никакой информации в терминале не появилось (а должно?).
//кстати по поводу внешнего порта на VPS, что то меня это смутило. Любой же могу указать или через который идёт VPN соединение?
хотя после всех манипуляций никакой информации в терминале не появилось
Ничего и не должно появиться.
Что бы проверить результаты нужно: iptables-save
Выведет тот текст, который я писал в ответе, это список правил файервола. cat /proc/sys/net/ipv4/ip_forward
Должно вывести 1
Nird, да всё выводит, также ip_forward 1.
Осталось, получается, только маршруты во внутреннюю сеть VPN прописать? Или как можно правильно сформулировать этот запрос.
К сожалению, понимаю процентов 70. Видимо, не быть мне сис-админом :)
Ну и что бы после ребута не писать правила iptables заново, их надо сохранить в файл: iptables-save > /etc/iptables.up.rule
и в файл /etc/network/interfaces в конец записать:
post-up iptables-restore < /etc/iptables.up.rule
Nird, хорошо, спасибо. но что-то кажется, что у меня так и не получится нормально все это сделать. В любом случае благодарен за помощь, буду разбираться с маршрутами, с остальными пунктами вроде разобрался!
/а казалось так всё просто - взял VDS, проложил туннель и вуаля.
в правилах которые я выше писал, вместо eth0 должно быть ens3 в вашем случае.
Что бы долго не разбираться как через командную строку менять правила iptables, проще изменить в файле /etc/iptables.up.rule и потом выполнить iptables-restore < /etc/iptables.up.rule
Nird, да я уже сам подумываю над этим вариантом. Спасибо большое за уделённое время и советы! Всех благ. Теперь я хоть что-то действительно начал понимать, после ваших комментариев. Надеюсь получится :) Попробую wireguard.