Я пытаюсь узнать что-то о сокетах в Linux. У меня есть небольшая доска разработки, вроде малины Pi с Linux, работающей внутри. К сожалению, у него нет Ethernet-порта или USB-порта.отправлять данные из raw socket в udp или tcp socket
Я создал фиктивный сетевой интерфейс и использовал его как шлюз по умолчанию. Я написал небольшую программу, используя сырые сокеты, которые прослушивают фиктивный интерфейс (затем отправляет все пакеты по последовательной линии на компьютер, где программа, которая отправляет эти пакеты в Интернет и получает ответы, отправляет их обратно).
Моя проблема в том, что когда я пытаюсь выполнить ping какой-то публичный IP-адрес, я могу видеть в tcpdump ICMP-запросы и ответы как на компьютере, так и на доске разработки. Но пинг выглядит так, будто ничего не получает.
Я попытался использовать loopback-интерфейс вместо фиктивного интерфейса, но в этом случае пинги зацикливаются, и устройство перестает отвечать на запросы через некоторое время :). Но пинг действительно получил ICMP-ответ, а TCP-соединение не работало.
Я также попытался использовать 2 фиктивных интерфейса и создать мост.
Буду очень признателен за любые предложения.
решаемых с помощью интерфейса туна :) это выглядит как Linux не может «связывать» сырой сокет другого типа сокета, поскольку все пакеты передаются и никто не получил , – nergalino