Я столкнулся с сетевым поведением, которое сбивает меня с толку при попытке заставить работать Java RMI.

Я использую Netcat для подключения к локальной машине:

[my_machine]$ nc -w 1 192.168.0.100 60000 && echo success
success

Я пытаюсь сделать то же самое с моим сервером:

[my_machine]$ nc -w 1 my-servers-ip 60000 && echo success

Это не работает, если я явно не слушаю сокет сервера:

[amazon_ec2]$ nc -l 60000 

[my_machine]$ nc -w 1 my-servers-ip 60000 && echo success
success

Для версии, которая не работает, пакет SYN получает RST, ACK в ответ.

Я не слишком осведомлен об этом, на данный момент у меня есть только дикие теории, подобные той, о которой идет речь. Есть идеи?

Потенциально полезные детали:

Local Machine (192.168.0.100) - Macbook

Remote Machine (Amazon EC2) - Amazon Linux AMI 2012.03 
    Security Group Settings:
        22 (SSH)        0.0.0.0/0
        1099            0.0.0.0/0
        49152-65535     0.0.0.0/0
    "iptables -L" shows no rules set 

1 ответ1

1

Нет, TCP-соединения работают одинаково для локальных или удаленных (маршрутизируемых) серверов. Трёхстороннее рукопожатие такое же.

Ты можешь проверить

  • некоторые службы активно прослушивают порт 60000 (netstat)
  • служба не настроена на отклонение нелокальных клиентов каким-либо образом
  • брандмауэр не блокирует трафик

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .