LINUX.ORG.RU

RAW_SOCKET


0

0

Здравствуйте.

Создаю своими силами TCP соединение, посылаю SYN серверу, получаю ACK, но ОС шлет RST серверу, так как клиент использует RAW SOCKET.

как можно решить проблему?

Спасибо.


> но ОС шлет RST серверу, так как клиент использует RAW SOCKET

А она с тобой не разговаривает?

tailgunner ★★★★★
()

1) задизейблить локальный TCP 2) написать драйвер который не будет пропускать пакеты которые вы скажите вверх по стеку

больше что-то в голову ничего не приходит

anonymous
()

какая ОС?
если freebsd, то можно сделать sysctl -w net.inet.tcp.blackhole=2
в линуксе наверное придеться ядро патчить

Cosmicman ★★
()

А если

iptables -A INPUT -j DROP
? Тогда по идее ты через «сырой сокет» будешь получать все пакеты, но TCP-стек ядра их видеть не будет.

Deleted
()

лекарство: iptables -A OUTPUT --tcp-flags RST RST -dport <port> -d <dest> -j DROP

и более красивое: создать сокет на нужном порту и слушать его (listen), чтобы обмануть ядро

Chumka ★★★
()

Спасибо всем за ответы. Досадно, что приходится эту проблему решать такими путями.

kasha
() автор топика
Ответ на: комментарий от Chumka

боюсь в общем случае это работать не будет. например локальный тсп будет слать RST на данные/ACK которые приходят в LISTEN сокет что не обрадует удаленный тсп. хотя на этапе хендшейка работать это будет, да

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.