Привет. Уже несколько недель пытаюсь настроить wireguard для роутера, чтобы он шел через trojan или что-то подобное.
Дано, есть два роутера, один из которых имеет интернет, другой берет интернет от первого и используется как роутер с впн. Раньше он подключался по wireguard напрямую к удаленному серверу, сейчас протокол неработает.
Поэтому идея была подключать raspberrypi4, чтобы она раздавала wireguard( для второго роутера) и проксировала трафик наружу каким-то незаблокированным протоколом. Для этих целей купил trojan/vless проксю и пытаюсь ее настроить таким образом.
Сразу оговорюсь, что я хоть и из айти, но никогда не работал с iptables, роутингами и прочим, поэтому все делается без понимания, но очень хотелось бы понять, как это должно работать.
Идея была такая, чтобы поднять в sing-box интерфейс и заставить через него работать wg, но ничего не получилось.
Удалось подключиться с помощью sing-box и настроить интерфейс:
{
"inbounds": [
{
"type": "tun",
"tag": "tun-inbound",
"interface_name": "tun0",
"inet4_address": [
"10.0.0.2/24"
],
"mtu": 1500
},
{
"type": "socks",
"tag": "socks-inbound",
"listen": "127.0.0.1",
"listen_port": 1080
}
],
"outbounds": [
{
"type": "trojan",
"tag": "trojan-outbound",
"server": "domain",
"server_port": 443,
"password": "password",
"tls": {
"enabled": true,
"server_name": "domain",
"insecure": false
},
"transport": {
"type": "ws",
"path": "/tw",
"headers": {
"Host": "host"
}
}
}
],
"route": {
"rules": [
{
"inbound": [
"tun-inbound",
"socks-inbound"
],
"outbound": "trojan-outbound"
}
]
}
}
Через него даже заработал курл:
curl --interface tun0 ipinfo.io/ip
Далее установил wg через скрипт быстрой установки GitHub - angristan/wireguard-install: WireGuard VPN installer for Linux servers
Во время установки он спросил про интерфейс, я там напечатал tun0 и он настроил такой конфиг:
[Interface]
Address = 10.66.66.1/24,fd42:42:42::1/64
ListenPort = 52590
PrivateKey = private_key
PostUp = iptables -I INPUT -p udp --dport 52590 -j ACCEPT
PostUp = iptables -I FORWARD -i tun0 -o wg0 -j ACCEPT
PostUp = iptables -I FORWARD -i wg0 -o tun0 -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
PostUp = ip6tables -I FORWARD -i wg0 -j ACCEPT
PostUp = ip6tables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
PostDown = iptables -D INPUT -p udp --dport 52590 -j ACCEPT
PostDown = iptables -D FORWARD -i tun0 -o wg0 -j ACCEPT
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o tun0 -j MASQUERADE
PostDown = ip6tables -D FORWARD -i wg0 -o tun0 -j ACCEPT
PostDown = ip6tables -t nat -D POSTROUTING -o tun0 -j MASQUERADE
### Client router
[Peer]
PublicKey = public_key
PresharedKey = p9zs0WAMxRLPwhOUAAVv9mn2vJGKVexw7VI7dfi+nfU=
AllowedIPs = 10.66.66.2/32,fd42:42:42::2/128
Но с таким конфигом трафик на клиенте не работает. Если поменять tun0 везде на eth0 в этом конфиге, то интернет появляется.
Возможна ли вообще такая схема и если да, то что надо сделать чтобы заработало?
На самом деле даже не понимаю зачем wireguard свой интерфейс и как правильно должен идти трафик.
ВПН на роутере нужен для работы, так как на работе используется проприетарный palo alto, который нужно запускать поверх зарубежного. Возможно тут еще какие-то ограничения всплывут.