Соединению клиента Java отказывает сервер Linux

[

]Использование ImageMagick, пожалуй, самый простой способ:[

] [
convert document-p*.tiff output.pdf
]
1
08.02.2015, 03:07
2 ответа

«Соединение отказалось» означает: Соединение TCP имеет достижение сервера (или явно заблокировано брандмауэром между клиентом и сервером), предполагая, что последний не соответствует действительности - есть 3 возможностей: 1. IP-адрес подключается к IP-адресу или интерфейсу, который серверный процесс прослушивает, при этом операционная система отклоняет соединение. 2. Серверная программа явно отклоняет соединение, потому что он внутренне фильтрует запрос 3. Есть еще один процесс брандмауэра на сервере, который отклоняет запрос.

Во-первых, проверьте процесс сервера, прослушивающий на действительный IP / порт:

sudo netstat -apn | grep "server process name"

Вы должны получить вроде ответа (для примера «Имя процесса сервера» SMBD - Samba):

user@host:~# sudo netstat -apn | grep smbd
tcp        0      0 192.168.10.1:139        0.0.0.0:*               LISTEN      7721/smbd

Обратите внимание на «192.168. 10.1: 139 «- Вы хотите увидеть конкретный IP, к которому подключается ваш клиент, или 0.0.0.0:139 (что означает все интерфейсы, все локальные IPS). Если вы видите 127.0.0.1 или IP, который не достижится от клиента, то ваша проблема там.

Во-вторых, проверьте свою серверную программу не включательно блокируют входящие соединения с определенных хостов (поскольку вы не предоставили информацию о том, что есть сервер, мне придется оставить это до вас)

, если наконец, если Вы уверены, что процесс сервера прослушивает действительный интерфейс, который можно добраться с клиентом, и серверная программа не фильтрует входящие соединения, а затем вернуться к основам:

1- Validate Запрос ударил на сервер, Там, где eth0 и порт TCP будут меняться в соответствии со своей средой:

sudo tcpdump -i eth0 -n -v tcp port 139

вы увидите двустороннее движение:

user@host:~# sudo tcpdump -i eth1 -n -v tcp port 139
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
12:27:45.339982 IP (tos 0x0, ttl 128, id 12153, offset 0, flags [DF], proto TCP (6), length 52)
  192.168.10.10.24411 > 192.168.10.1.139: Flags [S], (output cut)

примечание 192.168.10.10.24411 (клиент) переговоры с «>» 192.168.10.1.139 (Сервер) Флаги [S] с пакетом TCP SYN (-> [S])

Следующий пакет, показанный Dump TCP, скорее всего, будет иметь флаги [R.] (сброс - соединение отказано)

Из этого, если вы видите, что SYN, затем RST - Server определенно блокирует соединение, возможно, запустить свою серверную программу в режиме отладки, чтобы показать, что происходит.

Если вы не видите, что пакет SYN (и вы дважды проверил порт TCP и интерфейс, который вы указали для TCPDUMP), то у вас есть брандмауэр или, возможно, проблема маршрутизации между клиентом и сервером.

Удачи.

1
27.01.2020, 23:37

Это исключение обычно возникает, когда нет службы, прослушивающей порт, к которому вы пытаетесь подключиться. Может произойти следующее:

  1. Вы не запустили свой сервер.
  2. Ваш сервер не ожидает приема соединений.
  3. Вы пытаетесь подключиться к неверному номеру порта.
1
27.01.2020, 23:37

Теги

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