Skip to content

Is TCP_FASTOPEN supported on Debian 12 (bookworm) ? #3001

Open
@Hacksign

Description

@Hacksign

What version of shadowsocks-libev are you using?

shadowsocks-libev 3.3.5

What operating system are you using?

# uname -an
Linux xxhost 6.1.0-25-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.106-3 (2024-08-26) x86_64 GNU/Linux
# cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
# cat /proc/sys/net/ipv4/tcp_fastopen 
3

What did you do?

Setup a ss-server with --fast-open option.

What did you expect to see?

The ss-server would enable tcp fast open feature.

What did you see instead?

I saw a log:

ERROR: fast open is not supported on this platform

Question

Is Debian 12 bookworm support fast open or not ?

I investgated the source code of this project and found :

setfastopen(int fd)
{
    int s = 0;
#ifdef TCP_FASTOPEN
    if (fast_open) {
#if defined(__APPLE__) || defined(__MINGW32__)
        int opt = 1;
#else
        int opt = 5;
#endif
        s = setsockopt(fd, IPPROTO_TCP, TCP_FASTOPEN, &opt, sizeof(opt));

        if (s == -1) {
            if (errno == EPROTONOSUPPORT || errno == ENOPROTOOPT) {
                LOGE("fast open is not supported on this platform");
                fast_open = 0;
            } else {
                ERROR("setsockopt");
            }
        }
    }
#endif
    return s;
}

It seems the system call setsockopt gave the error result ? I guess this is the Debian system problem (?) ...

I run ss-server in docker container BTW.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions