Kentx Posted September 30, 2025 Posted September 30, 2025 (edited) Всем привет. Столкнулся с проблемой, которую сам пока не смог победить. Схема такая: PC → VPS (Ubuntu, WireGuard) → Keenetic Hero (через SIM-модем) → интернет. IPv4 работает идеально, трафик с мака уходит наружу именно через симку. А вот с IPv6 засада. Что делал: на VPS включил форвардинг IPv6 (sysctl net.ipv6.conf.all.forwarding=1), пробовал и SNAT, и MASQUERADE через ip6tables; крутил policy-routing, fwmark и таблицы маршрутов; на Keenetic поднимал WG-интерфейс с адресом fd00:20::30/64, VPS с fd00:20::1/64, PC с fd00:20::2/128; на PC адрес появляется, пинг по fd00 работает, но во внешний интернет IPv6 трафик не уходит; curl -6 ifconfig.co на маке пустой, хотя сам роутер по IPv6 наружу выходит без проблем; пробовал разные варианты AllowedIPs (::/0 у пира VPS, фиксированные префиксы и т.д.). По итогу получается, что IPv6 на клиенте остаётся только локальный (fd00), а наружу он не пробрасывается. Нужно, чтобы именно PC получал реальный IPv6 от симки и чтобы отпечаток в сети (IP+WebRTC) совпадал, а не шёл через VPS-адрес. Может, кто-то уже настраивал похожую схему и подскажет, как правильно прокинуть глобальный IPv6 с Keenetic через WireGuard на клиент? Spoiler Я собираю такую схему: есть клиент (например, MacBook), он подключается по WireGuard к моему VPS в Польше. VPS нужен только как промежуточная точка. С этого VPS весь трафик дальше должен уходить по второму туннелю в Keenetic, который стоит в Польше и подключён через SIM-карту к мобильному оператору. Идея в том, чтобы весь интернет у клиента шёл через роутер, а наружу он выходил именно через польскую SIM, чтобы IP и геолокация были не как у VPS, а как у мобильного интернета. Хочу, чтобы работал и IPv4, и IPv6 (если оператор даёт). То есть схема примерно такая: Клиент → VPS (WireGuard) → Keenetic (WireGuard) → SIM → Интернет. VPS тут нужен только как хаб, чтобы я мог подключаться из разных мест и устройств. Spoiler @Le ecureuil <?xml version="1.0" encoding="UTF-8"?> <selftest xmlns="https://www.keenetic.com/ns/ndm" version="0.1"> <!-- cat --> <file name="ndm:sharing-config"> <![CDATA[ ! $$$ Agent: http/rci ! $$$ Last change: Tue, 30 Sep 2025 xxxx:xxxx:xxxx:04:07 GMT ! $$$ Md5 checksum: <KEY_REDACTED> ! $$$ Model: Keenetic Hero 4G ! $$$ Username: admin ! $$$ Version: 2.06.1 system set net.ipv4.ip_forward 1 set net.ipv4.neigh.default.gc_thresh1 256 set net.ipv4.neigh.default.gc_thresh2 1024 set net.ipv4.neigh.default.gc_thresh3 2048 set net.ipv4.tcp_fin_timeout 30 set net.ipv4.tcp_keepalive_time 120 set net.ipv6.neigh.default.gc_thresh1 256 set net.ipv6.neigh.default.gc_thresh2 1024 set net.ipv6.neigh.default.gc_thresh3 2048 set net.netfilter.nf_conntrack_tcp_timeout_established 1200 set vm.overcommit_memory 0 set vm.swappiness 60 set vm.vfs_cache_pressure 1000 clock timezone Europe/Vienna domainname WORKGROUP hostname Keenetic-0406 caption default ]]> </file> <file name="ndm:interfaces-config"> <![CDATA[ interface UsbQmi0 description "Mobile Broadband" security-level public mobile pdp ipv4v6 ip global xxx.xxx.xxx.45 ip name-servers <REDACTED_DNS> ipv6 address auto ipv6 prefix auto ipv6 name-servers auto up interface Wireguard0 description WGG-TUNA-NEW security-level private ip address xxx.xxx.xxx.12 255.255.255.0 ip mtu 1500 ip global <REDACTED_PRIORITY> ip nat loopback ipv6 address fd00:xxxx:xxxx::2/64 wireguard peer <WG_PUB_1> endpoint <ENDPOINT_REDACTED> keepalive-interval 5 allow-ips 10.20.10.0 255.255.255.0 allow-ips fd00:xxxx:xxxx::1/128 allow-ips fd00:xxxx:xxxx::/64 allow-ips ::/0 connect ! up interface Bridge0 rename Home description "Home network" mac address 00:11:22:xx:xx:xx security-level private ip address xxx.xxx.xxx.1 255.255.255.0 ipv6 address fd00:xxxx:abcd::1/64 up ]]> </file> <file name="ndm:network-stat"> <![CDATA[ WAN: MobileBroadband (UsbQmi0) status: up ip: xxx.xxx.xxx.45 ipv6: xxxx:xxxx:xxxx:abcd:1234 signal: -77 dBm operator: OPERATOR ]]> </file> <file name="ndm:wireguard-config"> <![CDATA[ wireguard peer <WG_PUB_1> publickey = <WG_PUB_KEY_REDACTED> allowedips = 10.20.10.0/24, fd00:xxxx:xxxx::/64 endpoint = <ENDPOINT_REDACTED> ]]> </file> <file name="ndm:routes"> <![CDATA[ IPv4 routing table: default via xxx.xxx.xxx.1 dev UsbQmi0 10.20.10.0/24 dev Wireguard0 proto kernel scope link src xxx.xxx.xxx.12 IPv6 routing table: ::/0 via xxxx:xxxx:xxxx:abcd::1 dev UsbQmi0 fd00:xxxx:xxxx::/64 dev Wireguard0 proto kernel scope link src fd00:xxxx:abcd::2 ]]> </file> <file name="ndm:logs"> <![CDATA[ [info] wireguard: interface Wireguard0 up [info] wireguard: peer <WG_PUB_1> handshake OK, endpoint <ENDPOINT_REDACTED> [warn] ipv6: no route for fd00:xxxx:abcd:: -> attempting RA discovery [error] dns: query timeout for resolver <REDACTED_DNS> ]]> </file> </selftest> Edited October 1, 2025 by Kentx mac pc 1 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.