Невозможно установить TCP-соединение в частной сети

214
Makoto Emura

Я тестирую локальное соединение между двумя компьютерами OS X, используя netcat. Они оба подключены к одному и тому же маршрутизатору (через wifi) и имеют один и тот же общедоступный IP-адрес, поэтому я считаю, что они имеют доступ к одной и той же частной сети. У обоих свои брандмауэры отключены.

На одном компьютере я вошел

nc -l 2000 

и на другом компьютере,

nc localhost 2000 

Насколько я понимаю, при успешном соединении любое сообщение, которое вводится на стороне клиента, должно появляться на стороне прослушивания. В настоящее время вторая команда не запускает netcat, что означает, что соединение не было установлено.

Какие потенциальные проблемы мешают мне получить доступ к локальной сети через эти тесты?

1
Крайне маловероятно, что ваша вторая команда «не запускает netcat», так как это приведет к сообщению об ошибке. Почти наверняка это _is_ запуск netcat, который пытается подключиться и терпит неудачу и поэтому немедленно завершает работу. Попробуйте `nc -v localhost 2000`, чтобы увидеть ошибку. Но localhost преобразуется в адрес обратной связи (127.0.0.1 и / или :: 1), который вообще не имеет доступа ни к какой сети, даже к (или) локальной сети. dave_thompson_085 6 лет назад 0

2 ответа на вопрос

0
davidgo

Если ваше утверждение «и иметь тот же IP» является верным - если это так, то это объясняет проблему. IP-адрес должен быть уникальным в среде. IP-адреса должны быть в одной подсети (диапазоне), но они не должны быть идентичными - в случае двух компьютеров с одинаковым IP-адресом они не смогут общаться друг с другом (они будут общаться друг с другом), и это вызовет огромные проблемы для других устройств, пытающихся говорить с IP-адресом.

Я думаю, что OP означает, что они имеют один и тот же публичный IP и находятся за NAT. multithr3at3d 6 лет назад 0
Мой плохой, я исправил вопрос. Я хотел сказать, что они имеют одинаковые публичные IP-адреса. Makoto Emura 6 лет назад 0
0
multithr3at3d

Во второй команде вы не должны подключаться к localhost, так как это ваш локальный компьютер. Вместо этого вы должны ввести имя хоста или IP-адрес первого компьютера.

Он говорит о "localhost", так что я не думаю, что это так. davidgo 6 лет назад 0
@Davidgo Я не верю в это. multithr3at3d 6 лет назад 0
Вау, спасибо. До сих пор я не знал, что IPv4 (частные) и публичные IP-адреса различаются. Makoto Emura 6 лет назад 0