Scapy SYN отправляет на нашем собственном IP-адресе

Я пытался отправить пакеты SYN в своей локальной сети и контроле их с Wireshark, и все работает просто великолепно, кроме тех случаев, когда я пытаюсь отправить пакет в свой собственный IP-адрес, это, "кажется", работает, потому что это говорит Отправленный 1 пакет, но это действительно не отправляется, я не вижу пакет в Wireshark, ни любых ответах на пакет. Моя установка является компьютером (192.168.0.1) с Сервером Сокета TCP, слушающим на порте 40508 и компьютером B (192.168.0.2).

На Компьютере B я тестирую:

ip=IP(src="192.168.0.2",dst="192.168.0.1")  
SYN=TCP(sport=40508,dport=40508,flags="S",seq=12345)
send(ip/SYN)

Это хорошо работает, я вижу пакет SYN на Wireshark и ответе SYN/ACK от 192.168.0.1

На Компьютере я протестируйте:

ip=IP(src="192.168.0.1",dst="192.168.0.2")  
SYN=TCP(sport=40508,dport=40508,flags="S",seq=12345)
send(ip/SYN)

Это хорошо работает также, я вижу пакет SYN и RST/ACK (нет никакого сервера, слушающего на порте 40508 на 192.168.0.2, таким образом, это отправляет RST/ACK), ответ от 192.168.0.2

Но когда я примеряю Компьютер A:

ip=IP(src="192.168.0.2",dst="192.168.0.1")  
SYN=TCP(sport=40508,dport=40508,flags="S",seq=12345)
send(ip/SYN)

Ничто не появляется в Wireshark, как будто пакет никогда не отправлялся, но он сказал как другие тесты: Отправленный 1 пакет. и не возвратил ошибки вообще. Если я запускаю тот же тест на компьютере B и пытаюсь отправить пакет в его собственный IP-адрес, я получил ту же проблему.

Для моей программы я действительно должен отправить пакет SYN в свой собственный IP-адрес, есть ли способ сделать это, или действительно ли это невозможно?

Заранее спасибо,

Nolhian

6
задан Nolhian 10 July 2010 в 01:44
поделиться

1 ответ

Какие сетевые устройства прослушивает ваша установка Wireshark? Я подозреваю, что он прослушивает настоящую сетевую карту (Ethernet, Wi-Fi или что-то еще, согласно Wireshark FAQ ) - и при отправке с компьютера на себя ОС, конечно, может обойти устройство (зачем беспокоиться с ним?) и просто выполните «отправку», скопировав биты внутри стека TCP / IP в память ядра.

Другими словами, я подозреваю, что ваш пакет отправляется нормально, но Wireshark может его не увидеть. Чтобы проверить эту гипотезу, вы можете попробовать (например) использовать свой браузер для посещения существующих и несуществующих портов на вашем локальном компьютере и посмотреть, видит ли Wireshark те пакеты или нет.

2
ответ дан 17 December 2019 в 20:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: