Linux: более тонкое управление привязкой сокета прослушивания INET?

У меня есть интерфейсы lo, eth0 и eth0:1.

progA создает сокет прослушивания и привязывает его к порту p на INADDR_ANY.

Одновременно я хотел бы использовать ncat для переадресации портов, прослушивая тот же порт p, но только на IP-адресе, связанном с eth0:1. Как и ожидалось, ncat не работает с "адрес уже используется".

Что я хотел бы сделать, так это: заставить progA связать свой сокет прослушивания с адресами, связанными с интерфейсами lo и eth0, но не с адресом, связанным с eth0:1, оставив этот адрес открытым для ncat для привязки.

Есть ли альтернатива INADDR_ANY, позволяющая привязываться к нескольким интерфейсам и/или нескольким IP-адресам?


person stuart.    schedule 01.06.2010    source источник


Ответы (1)


Вам нужно отдельно привязываться к каждому из отдельных интерфейсов, используя разные сокеты. В качестве альтернативы вы можете написать программу, использующую libpcap для захвата пакетов на eth0:1 и пересылки их. Захват пакетов позволяет наблюдать за интерфейсом без фактической привязки к нему.

person John Kugelman    schedule 01.06.2010