LINUX.ORG.RU
ФорумAdmin

Роутинг на внешний адаптер из локалки

 


0

1

Салют, камрады(ныне саратники по консоли). . Установил warguN сервер, всё хорошо VPN подключается, но доступа во внешку в интернет, из сети VPN - нет. Возможно проблема с роутингом с адаптера wg0 на адаптер с интернетом ens3, кто сталкивался Подскажите куда смотреть. Из проделанных работ: Включил ip-форвардинг… sysctl -p

net.ipv4.ip_forward = 1
net.ipv4.tcp_syncookies = 0
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
net.ipv4.ip_forward = 1

Настроил iptables… ptables -S

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A FORWARD -i ens3 -o wg0 -j  ACCEPT
-A FORWARD -i wg0 -j ACCEPT
-A FORWARD -o wg0 -j ACCEPT
-A FORWARD -i ens3 -o wg0 -j  ACCEPT
-A FORWARD -i ens3 -o wg0 -j. ACCEPT

Настроил правила маршрутизации… ip route show

default via 100.64.0.1 dev e] ns3 onlink
10.10.10.0/24 dev wg0 proto
kernel scope link src 10.10.10.10
10.10.10.10 via 77.239.101.2 dev ens3
10.10.10.11 via 77.239.101.2 dev ens3

Проверяю курлом доступность с адаптера wg0(на сервере) … curl -vk –interface wg0 2ip.ru

* Host 2ip.ru:80 was resolved.
* IPv6: (none)
* IPv4: 188.40.167.82
*   Trying 188.40.167.82:80..
* socket successfully boundto interface 'wg0'
* connect to 188.40.167.82 port 80 from 10.10.10.10 port 49026 failed: No route to host
* Failed to connect to 2ip.ru port 80 after 9 ms: Couldn
't connect to server
* Closing connection curl: (7) Failed to connect
to 2ip.ru port 80 after 9 ms
: Couldn't connect to server]] 

Больно, печально, обидно. Пишет нет маршрутизации до Хоста, хотя маршрутизация прописана. Все устройства к сети VPN подключаются нормально, но выхода в интернет нет. Помогите пожалуйста разобраться.

P.S.Адаптер wg0 это локалка впн с сервером wg на 10.10.10.10 Ens3 адаптер с тырнетом.



Последнее исправление: Winer13 (всего исправлений: 2)

Форматирование поправьте.

Настроил правила маршрутизации… ip route show default via 100.64.0.1 dev e] ns3 onlink 10.10.10.0/24 dev wg0 proto kernel scope link src 10.10.10.10 10.10.10.10 via 77.239.101.2 dev ens3 10.10.10.11 via 77.239.101.2 dev ens3

В каком месте тут маршрутизация «интернета» через тоннель «настроена»?

Flotsky ★★★
()

curl -vk –interface wg0 2ip.ru

Не понятно где ты это делаешь.

Если делаешь на клиенте, который подключен к WG серверу - то, в конфигурации WG сервера у тебя нет NAT для сети WG клиентов.

А если делаешь на WG сервере - то пакет будет улетать в сторону сети WG клиента и в этом случае там нужно делать NAT.

kostik87 ★★★★★
()

Подскажите, что делать то, первый никс сервер, нужно впнке интернет дать, не могу ничего сделать, из гугл и по советам Алисы все попробовал, нипАМАгло.

Winer13
() автор топика
Ответ на: комментарий от Winer13

Доброго времени года. Прочитай, пожалуйста https://www.linux.org.ru/help/markdown.md

Чтобы было нормальное форматирование всяких листингов — ставь в начале и в конце ``` на отдельной строке.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от anonymous

Благадарю за совет, а можно подробней, получается мне нужно в iptables маскарад нг прописать? Первый никс сервер,, ничего не понятно, но капеак интерестно. Все предыдущие настройки - это попытки с советов Алисы и гугл дать интернет на впн сетку . Не помешают ли они, если прописать маскарад, может почистить чего нужно?

Winer13
() автор топика
Ответ на: комментарий от Winer13

iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE - это добавление маскарадинга. Удали два свои маршрута которые прописал вот так вот - ip route del 10.10.10.10 via 77.239.101.2 dev ens3

ip rotute del 10.10.10.11 via 77.239.101.2 dev ens3 , а так учи строение ситей и сейчас тот же google ai очень умный проси его он тебе скажеть, что делать…

anonymous
()
Ответ на: комментарий от anonymous

К сожалению,не помогло, на данный момент конфиг выглядит так: iptables -t nat -S

-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -o ens3 -j MASQUERADE

ip route show

default via 100.64.0.1 dev ens3 onlink
10.10.10.0/24 dev wg0 proto
kernel scope link src 10.10.10.10

К сети VPN подключение устройств нормальное устройство друг друга видят, но Интернета нет Как нет. Curl на сервере с адаптера wg0 , выдаёт по-прежнему результат : curl -vk –interface wg0 2ip.ru

* Host 2ip.ru:80 was resolved.
* IPv6: (none)
* IPv4: 188.40.167.82
*   Trying 188.40.167.82:80...
* socket successfully bound
to interface 'wg0'
* connect to 188.40.167.82 port 80 from 10.10.10.10 port
 43090 failed: No route to host
* Failed to connect to 2ip.ru 
port 80 after 18 ms: Couldn't connect to server
* Closing connection
curl: (7) Failed to connect
to 2ip.ru port 80 after 18 ms: Couldn't connect to server

Нет даже идей куда смотреть…

Winer13
() автор топика
Ответ на: комментарий от Winer13

Смотреть в конфигурационный файл клиента там есть строчка AllowedIPs это параметр разрешает туннелирование к указанным ip адресам через vpn, а другие нет. Тебе надо указать в какие подсети ты хочешь ходить через vpn. Я полагаю во все, тогда тебе сюда https://colab.research.google.com/drive/1spIsqkB4YOsctmZV83aG1HKISFFxxMCZ#scrollTo=wBfKLXowd1P5 там есть строка exclude_subnets пишешь туда свой внейшний адрес (который присвоен интерфейсу ens3) с маской пример: 1.1.1.1/32 и нажимаешь ctr-f9 , и все что выдаст надо вставить в conf файл. Пример: AllowedIPs = 0.0.0.0/1, 128.0.0.0/2, 224.0.0.0/3, 208.0.0.0/4, 192.0.0.0/5, 204.0.0.0/6, 200.0.0.0/7, 202.0.0.0/8, 203.128.0.0/9, 203.64.0.0/10, 203.32.0.0/11, 203.16.0.0/12, 203.8.0.0/13, 203.4.0.0/14, 203.2.0.0/15, 203.1.0.0/16, 203.0.128.0/17, 203.0.0.0/18, 203.0.64.0/19, 203.0.96.0/20, 203.0.120.0/21, 203.0.116.0/22, 203.0.114.0/23, 203.0.112.0/24, 203.0.113.128/25, 203.0.113.64/26, 203.0.113.0/27, 203.0.113.48/28, 203.0.113.32/29, 203.0.113.40/30, 203.0.113.46/31, 203.0.113.44/32

anonymous
()
Ответ на: комментарий от Winer13

И сервер в интернет ходит, через ens3, а wg0 это туннель (локальная сеть), там Интернета быть не может…) с такими знаниями ты далеко не уедешь….

anonymous
()
Ответ на: комментарий от anonymous

Большое спасибо, а есть способ попроще? Я подключаюсь к серверу через ssh клиент с планета(так уж вышло). А по ссылке судя по всему пайтон скрипт. Получается мне на сервере нужно установить python с зависимостями(либами pip3) и запускаться там. Будет много крови. В любом случае скрип полезный Спасибо скопировал себе на диск.

P. S. Я прекрасно понимаю, что wg0 - это локалкаvpn, a ens - 0это основной адаптер. По сути просто пытаюсь дать общий доступ к основному адаптеру с ллокалки. В Windows это делается в четыре клика. Не думал что будет столько шаманских танцев с бубном на нексах для WG с AllowIp.

Winer13
() автор топика
Ответ на: комментарий от Winer13

просто пытаюсь дать общий доступ к основному адаптеру с ллокалки

С какой локалки? Давай сначала.

Установил warguN сервер

куда? На VPS? Что такое warguN?

всё хорошо VPN подключается

Откуда подключается? Как понял, что подключается?

но доступа во внешку в интернет, из сети VPN - нет

По сути просто пытаюсь дать общий доступ к основному адаптеру с ллокалки

Если я правильно понял. Ты подключился к VPN с ПК, создался интерфейс wg0. У тебя в сети есть другие устройства в локальной сети на интерфейсе этого ПК ens3. Ты хочешь дать им доступ в туннель wg0 через этот ПК?

NyXzOr ★★★★★
()
Ответ на: комментарий от Winer13

Проще только AllowdIPs = 0.0.0.0/0, по сути конфликта с Endpoint быть не должно, WireGuard автоматически добавляет исключение для IP-адреса самого сервера (Endpoint), ну я перестраховался и сам делал исключения, с помощью вот такого скрипта.

anonymous
()
Ответ на: комментарий от NyXzOr

Привет, да всё верно VPN установил на VPS. Подключаюсь к нему с телефонов, планшетов и компуктера. Подключение- полёт нормальный, устройство друг друга видят. Но по работе, ещё нужен интернет на всех устройствах помимо VPN сети. Трафиком через данные VPN сервер, потому что на некоторые ресурсы просто не пускает, а работать нужно. Пользоваться публичными VPN сервисами, не комильфо. Не хочется переживать за свой трафик(ssl от сниферов, спуфинг и т. д,). Вот и пытаюсь поднять свой VPN сервер, не получается… Вроде всё по инструкции, а шаманские танцы с бубном уже есть.Усттал, ПАМААГИТЕ.

Winer13
() автор топика
Ответ на: комментарий от kostik87

Дружище, если нет конкретных предложений или советов, а в эту тему ты заходишь пофлудить, то проходи мимо. Воспитание, это не то как ты держишь ложку, а то как ты относишься к этому миру. И Судя по твоим сообщениям, к твоим родителям есть вопросики. Убедительная просьба - не заниматься флудерастией и не подбивать на это дело окружающих, включая меня.

Winer13
() автор топика
Ответ на: комментарий от Winer13

Дружище, если ты не понимаешь, что с сервера WG, через который ты хочешь выходить в Internet нет смысла делать проверку соединения через интерфейс в сторону WG клиентов - это мягко говоря твоя проблема.

kostik87 ★★★★★
()
Ответ на: комментарий от anonymous

На данный момент, у меня так и стоят нули в конфиге. Если я прописываю IP адреса клиентов устройств, трафик идёт в обход VPN и ip-адрес не маскируются под Европу. Таким образом доступа на нужный мне ресурсы нет. Я вообще дизайнер и с «этим» делом, даже не на Вы, а на «йоп твою мать», простите за грубость.

Winer13
() автор топика
Ответ на: комментарий от Winer13

ты уж определись что именно ты хочешь и как?

wg твой где оконечивается с другой стороны?

неужели, как ты написал, «в локалке»? эт чо за бред?

поэтому начать надо с этого, выяснить - кто на ком стоял.

если тебе надо в wg0 отправить часть обращений с локалки, то надо так и формулировать задачу.

а если ещё нужен только HTTPS - то может оказаться проще замутить HTTPS проксю

справка: на данный момент сетей РФ - более 8000, даже с агрегацией. а остальной мир - ещё больше. и если нужен только обозреватель - то проще proxy.pac/wpad.dat подсовывать.

mumpster ★★★★★
()
Ответ на: комментарий от Winer13

Вот тебе два конфига для примера, сделай у себя аналагично:

Конфиг сервера (/etc/wireguard/wg0.conf)

# Приватный ключ сервера
PrivateKey = <SERVER_PRIVATE_KEY>
# IP-адрес сервера внутри туннеля
Address = 10.0.0.1/24
# Порт, который нужно открыть в фаерволе (UDP)
ListenPort = 51820

# Правила для проброса трафика в интернет (NAT)
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
# Публичный ключ клиента
PublicKey = <CLIENT_PUBLIC_KEY>
# Внутренний IP клиента, которому разрешен доступ
AllowedIPs = 10.0.0.2/32

Конфиг клиента (client.conf)

Этот файл импортируется в приложение WireGuard на ПК или смартфоне.

# Приватный ключ клиента
PrivateKey = <CLIENT_PRIVATE_KEY>
# IP-адрес клиента внутри туннеля
Address = 10.0.0.2/24
# DNS-сервер (можно Google или Cloudflare)
DNS = 1.1.1.1

[Peer]
# Публичный ключ сервера
PublicKey = <SERVER_PUBLIC_KEY>
# Белый IP или домен сервера и порт
Endpoint = 1.2.3.4:51820
# Маршрутизация: 0.0.0.0/0 направит весь трафик через VPN
AllowedIPs = 0.0.0.0/0
# Поддержка соединения активным (полезно за NAT)
PersistentKeepalive = 20 
anonymous
()
Ответ на: комментарий от mumpster

Для большинства домашних и VPS-инсталляций WireGuard MASQUERADE является стандартом де-факто из-за простоты настройки в параметрах PostUp и PostDown.

anonymous
()
Ответ на: комментарий от mumpster

Я просто хочу свой VPN сервер, к которому подключусь клиентами с графического планшета и кампуктера, и гребанные фотожоп и иллюстратор будут думать, что я в Европе, не грохая мне дорогую лицуху - купленную до ограничений… Итого, есть VPS, c подшятым на нем wireguard, два устройства которые подключаются к VPN, видят друг друга, но в интернет не ходят. Для меня колоссальный опыт, столько узнал до этого момента(и про свою маму и про умственные способности, включая задержки в развитии, трололо жгет). Прокси с носками не подойдут, у адоба хитросделанная проверка, да и я уже прям хочу свой впн с блекджеком и шлюхами. Должен быть логический конец у этой истории

Winer13
() автор топика
Ответ на: комментарий от anonymous

Мои конфиг: Сервер

[Interface]
Address = 10.10.10.10/24,fd42:42:42::1/64
ListenPort = 1321
PrivateKey = ***
PostUp = iptables -I INPUT -p udp --dport 1321 -j ACCEPT
PostUp = iptables -I FORWARD -i ens3 -o wg0 -j ACCEPT
PostUp = iptables -I FORWARD -i wg0 -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostUp = ip6tables -I FORWARD -i wg0 -j ACCEPT
PostUp = ip6tables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D INPUT -p udp --dport 1321 -j ACCEPT
PostDown = iptables -D FORWARD -i ens3 -o wg0 -j ACCEPT
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
PostDown = ip6tables -D FORWARD -i wg0 -j ACCEPT
PostDown = ip6tables -t nat -D POSTROUTING -o ens3 -j MASQUERADE




### Client art
[Peer]
PublicKey = ***
PresharedKey = ***
AllowedIPs = 0.0.0.0/0

Клиент

[Interface]
PrivateKey = ***
Address = 10.10.10.11/32,fd42:42:42::11/128
DNS = 8.8.8.8,8.8.4.4

# Uncomment the next line to set a custom MTU
# This might impact performance, so use it only if you know what you are doing
# See https://github.com/nitred/nr-wg-mtu-finder to find your optimal MTU
# MTU = 1420

[Peer]
PublicKey = ***
PresharedKey = ***
Endpoint = 77.239.101. 1:1321
AllowedIPs = 0.0.0.0/0,::/0

Уже AllowedIPs, что только не прописывал, какие только настройки не пробовал с гугла, хоть тресни не пускает дальше локалки VPN-a… Проще уже сэжечь все, чем начальнымми настройками для диагностики поэтапно догнаться.

Winer13
() автор топика
Ответ на: комментарий от Winer13

Не думаю, что тебе нужен и справишься с IPv6. Можешь убирать:

,fd42:42:42::1/64
ip6tables...
,fd42:42:42::11/128
,::/0

С помощью чего запускаешь wg на VPS? wg-quick?

В Windows это делается в четыре клика

Расскажи как там делал.

Лучше вместо Алисы спроси у арчвики - https://wiki.archlinux.org/title/WireGuard#Specific_use-case:_VPN_server

NyXzOr ★★★★★
()
Последнее исправление: NyXzOr (всего исправлений: 1)