Назад | Перейти на главную страницу

Не удается проверить связь с Localhost, поэтому я не могу выключить Tomcat

Я установил Tomcat 6 с помощью tar-Ball через wget. Запуск сервера в порядке, но при выключении я получаю исключение тайм-аута.

root@88:/usr/local/tomcat/logs# /usr/local/tomcat/bin/shutdown.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar
30-Mar-2010 17:33:41 org.apache.catalina.startup.Catalina stopServer
SEVERE: Catalina.stop: 
java.net.ConnectException: Connection timed out
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    ...

Я читал, что это может быть связано с тем, что у меня есть брандмауэр, блокирующий входящие соединения на порту выключения (8005). У меня установлен Ubuntu 9.04 по умолчанию, работающий на VPS без правил в моих iptables. Как я могу узнать, заблокирован ли этот порт? Как я могу проверить, прослушивает ли сервер соединения на 8005?

Причудливый pinging localhost или IP моего сервера не срабатывает с самого сервера, тогда как pinging IP моего сервера с другой машины проходит успешно.

-------- РЕДАКТИРОВАТЬ -------- (в ответ Дэйви)

Спасибо за все советы и предложения!

netstat -nlp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:8005          0.0.0.0:*               LISTEN      9611/java       
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      28505/mysqld    
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      9611/java       
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      

...

Итак, мы видим, что кот слушает, я просто не могу его достать.

root@88:/usr/local/tomcat# telnet localhost 8005
Trying 127.0.0.1...

Попытка telnet к порту зависает бесконечно. У меня нет правил в iptables, поэтому я не думаю, что это связано с брандмауэром.

root@88:/usr/local/tomcat# iptables --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

Это содержимое / etc / hosts

127.0.0.1 localhost.localdomain localhost
# Auto-generated hostname. Please do not remove this comment.
88.198.31.14 88.198.31.14  88 88

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

root@88:/usr/local/tomcat# ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.

--- localhost ping statistics ---
7 packets transmitted, 0 received, 100% packet loss, time 5999ms

Пытаемся выяснить, как сконфигурирован возвратный цикл;

root@88:~# ifconfig lo
lo        Link encap:Local Loopback  
          LOOPBACK  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

РЕШЕНИЕ СПАСИБО ДЭВИ

Мне нужно было вызвать интерфейс (не знаю, почему он не работает). ifconfig вот так сделали свое дело.

root@88:~# ifconfig lo up
root@88:~# ifconfig lo
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@88:~# ping localhost
PING localhost.localdomain (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=1 ttl=64 time=0.025 ms

Еще раз спасибо,

Гав

Команда netstat -nlp покажет вам, что слушает:

]# netstat -nlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address       Foreign Address    State       PID/Program name   
tcp        0      0 127.0.0.1:8005      0.0.0.0:*          LISTEN      13940/java          
tcp        0      0 0.0.0.0:8009        0.0.0.0:*          LISTEN      13940/java          
tcp        0      0 0.0.0.0:8080        0.0.0.0:*          LISTEN      13940/java          
tcp        0      0 0.0.0.0:22          0.0.0.0:*          LISTEN      3377/sshd   

В lsof команда в pid процесса tomcat покажет нечто подобное:

java    13940 root   35r   CHR    1,9              942 /dev/urandom
java    13940 root   36r   CHR    1,9              942 /dev/urandom
java    13940 root   38u  IPv4  31050              TCP *:8009 (LISTEN)
java    13940 root   39u  IPv4  31053              TCP 127.0.0.1:8005 (LISTEN)

Когда ты бежишь shutdown.sh вы должны увидеть, что трафик идет на порт 8005:

[root@test001 ~]# tcpdump -i lo 'port 8005'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 96 bytes
20:11:22.168395 IP test001.36696 > test001.8005: S 2859727005:2859727005(0) win 32792 <mss 16396,sackOK,timestamp 20428874 0,nop,wscale 7>
20:11:22.168922 IP test001.8005 > test001.36696: S 2855491174:2855491174(0) ack 2859727006 win 32768 <mss 16396,sackOK,timestamp 20428874 20428874,nop,wscale 7>
20:11:22.168598 IP test001.36696 > test001.8005: . ack 1 win 257 <nop,nop,timestamp 20428874 20428874>
20:11:22.171127 IP test001.36696 > test001.8005: P 1:2(1) ack 1 win 257 <nop,nop,timestamp 20428877 20428874>
20:11:22.171144 IP test001.8005 > test001.36696: . ack 2 win 256 <nop,nop,timestamp 20428877 20428877>
20:11:22.171443 IP test001.36696 > test001.8005: P 2:3(1) ack 1 win 257 <nop,nop,timestamp 20428877 20428877>
20:11:22.171453 IP test001.8005 > test001.36696: . ack 3 win 256 <nop,nop,timestamp 20428877 20428877>
20:11:22.171686 IP test001.36696 > test001.8005: P 3:4(1) ack 1 win 257 
  1. Проверь это localhost решает например это в / etc / hosts.
  2. Убедитесь, что вы не используете брандмауэр Ubuntu.
  3. Разместите свой netstat -nlp выводите, если можете.
  4. Пытаться telnet localhost 8005 или telnet 127.0.0.1