Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

socket: Address family not supported by protocol / docker ipv6 disable #55

Open
james007blond opened this issue Aug 9, 2024 · 2 comments

Comments

@james007blond
Copy link

Приветствую и благодарю за проделываемую работу ,

На докерхабе есть такой контейнер
image: tazihad/byedpi:latest

Сам бинарник в контейнере запускал с такими параметрами
command: --hosts /hosts.dpi --disorder 1 --fake 0 --ttl 1 -A torst --tlsrec 1+s --debug 1 --auto=none

Подцепился терминалом
docker exec -u 0 -it b783bb6540f sh

В отсутствии tcpdump в контейнере, что странно, просто параллельно запустил еще один бинарь на соседнем порту и стал смотреть с расширенным дебагом
/opt/byedpi/ciadpi -p 1081 --hosts /hosts.dpi --disorder 1 --fake 0 --ttl 1 -A torst --tlsrec 1+s --debug 1 --auto=none

И в терминал валится вот что:

new event: fd: 3, evt: EV_ACCEPT, mod_iter: 0
accept: fd=5
new event: fd: 5, evt: EV_REQUEST, mod_iter: 1
new event: fd: 5, evt: EV_REQUEST, mod_iter: 1
socket: Address family not supported by protocol
socket: Address family not supported by protocol
ss error: 97
close: fds=5,-1

Бегло глазами, что могло вызывать подобное и ....
Just had a look at this (needed to boot with ipv6.disable=1 to reproduce the issue) and I arrived at the same patch by @klynastor

И таки да, действительно, машина, в которой запускается на linux хосте имеет

root@root:# dmesg | grep 'Kernel command line'
[    0.066415] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-6.8.0-40-generic maybe-ubiquity ipv6.disable=1 max_loop=64

Убрал и ребутнулся, проблема исчезла. Как вариант кто-то предложил такой вариант исправить в исходниках ping'a.
Проект хоть и не большой у тебя, но, я думаю, ты быстрее найдешь, как пофиксить в нем сею ошибку.
Спасибо.

    --- iputils-s20200821/ping/ping.c.bak   2020-11-25 00:22:54.000000000 -0500
    +++ iputils-s20200821/ping/ping.c       2020-11-25 00:23:13.000000000 -0500
    @@ -150,8 +150,8 @@
                    /* Report error related to disabled IPv6 only when IPv6 also failed or in
                     * verbose mode. Report other errors always.
                     */
    -               if ((errno == EAFNOSUPPORT && family == AF_INET6) ||
    -                   rts->opt_verbose || requisite)
    +               if ((errno == EAFNOSUPPORT && family == AF_INET6 && requisite) ||
    +                   rts->opt_verbose)
                            error(0, errno, "socket");
                    if (requisite)
                            exit(2);

@hufrea
Copy link
Owner

hufrea commented Aug 9, 2024

У вас просто поддержка IPv6 была выключена, проблема не в программе.
Запустите с параметром --conn-ip 0.0.0.0, ошибки должны исчезнуть.

@james007blond
Copy link
Author

james007blond commented Aug 9, 2024

проблема не в программе.
А я и не говорил, что проблема в программе ) Как говориться - это не "баг", а "фича" )

Я просто где-то на "просторах" вкладки issues бегло прочитал тираду про "не плохо было бы помогать и все такое", но, видимо, она была крайне витьевато написана.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants