Винс Стюарт
У меня есть VPS на Ubuntu 12 и домашний компьютер на Ubuntu 12. У меня есть приложение Java на VPS, которое открывает сокет tcp, прослушивающий порт 4000, а также слушатель Http. Моя служба ssh работает через порт 55555. После запуска приложения я получаю этот отчет при вводе в командной строке: netstat -t -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:55555 *:* LISTEN
tcp6 0 0 [::]:http-alt [::]:* LISTEN
tcp6 0 0 [::]:55555 [::]:* LISTEN
tcp6 0 0 vps.mdomai.com:4000 [::]:* LISTEN
с denyhosts, управляющим моим / etc / hosts. allow это всего одна строка
ALL: xxx.xxx.xxx.xxx
(xxx.xxx.xxx.xxx is my static home IP address)
/etc/hosts.deny:
ALL:ALL
Я могу подключиться из дома, используя:
telnet yyy.yyy.yyy.yyy 55555 or telnet yyy.yyy.yyy.yyy 8080
(yyy.yyy.yyy.yyy is for my VPS address)
, но с:
telnet yyy.yyy.yyy.yyy 4000
выдана ошибка («Невозможно подключиться к удаленному хосту: соединение отклонено»). Это похоже на проблему с брандмауэром. Я уверен, что я не изменил iptables, поэтому должен быть VPS по умолчанию. Большое спасибо за любые предложения. Когда я выдаю sudo ufw raw, я получаю:
IPV4 (raw):
Chain INPUT (policy ACCEPT 21043 packets, 2314421 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 21077 packets, 2152970 bytes)
pkts bytes target prot opt in out source destination
Chain PREROUTING (policy ACCEPT 318 packets, 41345 bytes)
pkts bytes target prot opt in out source destination
Chain INPUT (policy ACCEPT 42 packets, 7128 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 347 packets, 24571 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 347 packets, 24571 bytes)
pkts bytes target prot opt in out source destination
Chain PREROUTING (policy ACCEPT 6241 packets, 691583 bytes)
pkts bytes target prot opt in out source destination
Chain INPUT (policy ACCEPT 5965 packets, 657366 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 5936 packets, 614188 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 10872 packets, 1131008 bytes)
pkts bytes target prot opt in out source destination
Chain PREROUTING (policy ACCEPT 6241 packets, 691583 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 5936 packets, 614188 bytes)
pkts bytes target prot opt in out source destination
IPV6:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Вы открыли только порт ipv6 4000, как описано в
. tcp6 0 0 vps.mdomai.com:4000 [::]:* LISTEN
Вы пробовали через ipv6 на vps.mdomai.com:4000?
Что делать, если вы идете:
netstat -an --inet | grep LISTEN
Я сейчас предоставляю то, что было возможным решением моей проблемы, потому что я думаю, что это выдвигает на первый план важную проблему для неспециалистов (таких как я). Это запись файла /etc/hosts
.
Я использовал одно и то же Java-приложение на своем VPS и домашнем компьютере, и они должны были обмениваться данными по TCP. Мой домашний компьютер подключался к Интернету через модем DSL с фиксированным IP-адресом. Когда я попытался перенаправить сообщение из дома на VPS, java сообщил об истечении времени ожидания (что означало, что соединение не может быть установлено).
Я уже выделил моему компьютеру фиксированный адрес в локальной сети (т. Е. 192.168.1.57), потому что это только казалось разумным. Но решающее изменение, которое я в конечном итоге сделал, состояло в том, чтобы зарегистрировать интернет-адрес моего компьютера (т.е. 192.168.1.57) в файле Ubuntu /etc/hosts
; теперь java, работающий на домашней машине, считал свой собственный «адрес inet» как 192.168.1.57 вместо 127.1.0.1, и все начало работать. Мне также нужно было предоставить VPS мой фиксированный IP-адрес DSL (203.x.x.x) и номер порта, который был перенаправлен на компьютер 192.168.1.57. Я надеюсь, что это может кому-то помочь.