Перейти к содержанию

avn

Участники форума
  • Постов

    685
  • Зарегистрирован

  • Посещение

  • Победитель дней

    7

Весь контент avn

  1. random-балансировка именно это и делает, только для коннектов.
  2. Я пытаюсь выяснить, что не работает? Изначальный вопрос был про балансировку ("Подскажите пожалуйста, предположим xray сконфигурирован так что у него несколько внешних vless соединений. Возможно ли сделать так что разные устройства в локалке шли бы на разные внешние vless сервера? Это возможно сделать на политике или надо разруливать по другому?"). Сформулируйте свою мысль, что хотите непонятно. Все работает, в том числе и с leastPing
  3. А где вопрос? Достаточно так: { "balancers": [ { "tag": "random-balancer", "selector": [ "vpn1", "vpn2" ], "strategy": { "type": "random" }, "fallbackTag": "vpn1" } ] }
  4. А что Вы просто взяли и вставили к себе без модификации?
  5. Она в документации описана, значит работает.
  6. avn

    Поддержка ipset

    Добрый день! Прошу добавить возможность резолва ip-адресов в ipset. Делаем новую настройку ipset, например: ipset ipset1 ya.ru goole.ru ! Запросы к dns-серверу, которые идут на домены и поддомены настройки ipset1 резолвятся в ipset1. Это позволит убрать для многих dnsmasq и adguardhome с роутера и использовать штатный dns-server. Уважаемые разработчики, что скажете на предложение?
  7. "balancers": [ { "tag": "balancer", "selector": [ "portal-1", "portal-2", "portal-3" ], "strategy": { "type": "leastPing" }, "fallbackTag": "portal-2" } ], "observatory": { "subjectSelector": [ "portal-1", "portal-2", "portal-3" ], "probeURL": "https://www.google.com/generate_204", "probeInterval": "60s", "enableConcurrency": false }
  8. Снял трейс также с xray xray.pcapng
  9. Спасибо. Обязательно попробую и посмотрю различия в транспорте.
  10. Вот еще одна реализация, правда опять на go. Может станет понятнее.
  11. Вот пост от 22 года, там уже коннект по ipv6
  12. Через dns. Можно как локальный использовать, так и глобальный, разницы нету.
  13. К примеру VPN-ipv6 у меня сейчас не работает, опять чего то сломали. Перейду на 4.2 буду разбираться.
  14. Это проблема всего кинетика. Плохая работа цепочек, постоянная их перечитка по несколько раз (в момент перечитки, что происходит с трафиком). Так что подход для anti* выглядит более правильным для кинетика. Я сейчас отказался от цепочек. Переписал все на минимум правил, как для VPN, так и для tproxy. Для VPN:
  15. Сложно сказать. kvas отлично работает с приложениями, у которых идет в порт (shadowsocks, xray, и т.д.). Но в тоже самое время у него костыльная (сложная, ненадежная) маршрутизация на впн серверы. У анти* свой днс сервис, который выдает фейк-адреса из определенной локальной сети на блокресурсы. Отсюда простая маршрутизация (надежная, работает и на самом роутере) на блокресурсы обычным и единственным маршрутом. Но он не работает c shadosocks, xray и т.д.
  16. Да, правильно. Но надо помнить, что эти изменения только стороны клиента (не сервера). Также при коннекте клиентом, они их еще и зануляют. func (bind *netBindClient) connectTo(endpoint *netEndpoint) error { ...... i, err := c.Read(v.buff) if i > 3 { v.buff[1] = 0 v.buff[2] = 0 v.buff[3] = 0 } Вообще, если смотреть конфиг WARP в оригинале, запрошенный через api, то он выглядит так Здесь client_id - это "client_id": "LHJ3". Но китайцы раскладывают его на массив из 3 байт.
  17. А вот и реализация https://gist.github.com/kaseiwang/422d5ef585a1501ac0bde8ccdb76e4f5
  18. Добрый день! Для нормальной работы warp на keenetic хотелось бы реализовать возможность влиять на поле Reserved структуры message_header. По аналогии с командой asc interface {name} wireguard warp {b1} {b2} {b3} У китайцев в Xray-Core получилось это сделать правкой двух методов Xray-core-main\proxy\wireguard\bind.go: func (bind *netBindClient) connectTo(endpoint *netEndpoint) error { c, err := bind.dialer.Dial(bind.ctx, endpoint.dst) if err != nil { return err } endpoint.conn = c go func(readQueue <-chan *netReadInfo, endpoint *netEndpoint) { for { v, ok := <-readQueue if !ok { return } i, err := c.Read(v.buff) if i > 3 { v.buff[1] = 0 v.buff[2] = 0 v.buff[3] = 0 } v.bytes = i v.endpoint = endpoint v.err = err v.waiter.Done() if err != nil && errors.Is(err, io.EOF) { endpoint.conn = nil return } } }(bind.readQueue, endpoint) return nil } func (bind *netBindClient) Send(buff [][]byte, endpoint conn.Endpoint) error { var err error nend, ok := endpoint.(*netEndpoint) if !ok { return conn.ErrWrongEndpointType } if nend.conn == nil { err = bind.connectTo(nend) if err != nil { return err } } for _, buff := range buff { if len(buff) > 3 && len(bind.reserved) == 3 { copy(buff[1:], bind.reserved) } if _, err = nend.conn.Write(buff); err != nil { return err } } return nil } Тестовый конфиг можно получить так: bash -c "$(curl -L warp-reg.vercel.app)" Может и нам можно добавить этот функционал?
  19. junk_packet_count; junk_packet_min_size; junk_packet_max_size; init_packet_junk_size; response_packet_junk_size; init_packet_magic_header; response_packet_magic_header; cookie_packet_magic_header; transport_packet_magic_header;
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.