Доброго дня.
Тестирую работу утилиты netcat. Для этого создал две виртуальные машины на vmvare с OC Opensuse c адресами 192.168.0.1 и 192.168.0.2. Обе машины видят друг друга, ping проходит.
На 192.168.0.1 запускаю: cat ./file.out | nc -l 3333.
На 192.168.0.2 запускаю: nc 192.168.0.1 3333 > file.in
В итоге файл не передается, а на машине 192.168.0.1 выводится:
[2543.041146] SFW2-INEXT-DROP-DEFLT IN=eth0 OUT= MAC=00:0c:29:b7:09:b5 SRC=192.168.0.2 DST=192.168.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=62472 DF PROTO=TCP SPT=48251 DPT=3333 WINDOW=14600 RES=0x00 SYN URGP=0 OPT (020405B40402080A0500000000001030306)
Подозрение что где-то что-то криво работает при соединении машин. Но как это выявить не пойму ?
Подскажите в чем может быть проблема ?
Не работает соединение через netcat
На 192.168.0.1: cat ./file.out | nc -l -p 3333.
На 192.168.0.2: nc 192.168.0.1 3333 > file.in
при команде cat ./file.out | nc -l -p 3333 netcat вообще не работает, в man так и написано, что совместное использование -l и -p является ошибкой.
nc -l -p 3333
Только что проверил эту команду всё норм запускается и порт слушается.
при команде cat ./file.out | nc -l -p 3333 netcat вообще не работает
это как-так «вообще не работает»?
в man так и написано, что совместное использование -l и -p является ошибкой.
какой у тебя netcat? у меня — самый ламповый... в нём именно так надо...
да... и ссылку на ман, в котором это написано в студию....
в некоторых реализациях netcat номер порта для прослушивания задаётся через -l, а ключ -p отсутствует, в частности сборка из пакета OpenBSD. У меня такая сборка. идет вместе с opensuse последней версии. Так что ошибка не в ключе -p.
Я не понял. У вас Open SUSE, а вы ставите пакет из OpenBSD. А как вы его конвертировали в rpm. Что нельзя установить netcat из офф репозитория Open SUSE.
nc -h
OpenBSD netcat (SUSE Linux)
This is nc from netcat-openbsd package/ An alternative nc is available in the netcat-traditional package
То есть этот пакет идет в репозитарии Opensuse и ставится он по умолчанию. Других пакетов nc в репозитарии нет.
Получается что порт на сервере слушается, но данные передаются в непонятном виде, и пакеты не дропаются.
В общем что-то с соединением мне кажется не так. Если запускать nc на одной машине - в одном терминале как сервер (nc -l 2389), а на другом терминале как клиент (nc localhost 2389), то все работает. А если с разных машин то не работает.
Настройки машин такие сделал:
сервер 192.168.1.1 маска 255.255.255.0
клиент 192.168.1.2 маска 255.255.255.0
Может сетевые настройки надо как то изменить ?
После сеанса передаси через nc между двумя машинами в ifconfig eth0 выводит:
RX packets: 54 errors:0 dropped:0 overruns:0 frame:0
TX packets: 49 errors:0 dropped:0 overruns:0 frame:0
То есть пакеты приходят, но почему они в таком виде:
[2543.041146] SFW2-INEXT-DROP-DEFLT IN=eth0 OUT= MAC=00:0c:29:b7:09:b5 SRC=192.168.0.2 DST=192.168.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=62472 DF PROTO=TCP SPT=48251 DPT=3333 WINDOW=14600 RES=0x00 SYN URGP=0 OPT (020405B40402080A0500000000001030306)
нашел проблему - брандмауэр