Я установил 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
localhost
решает например это в / etc / hosts.netstat -nlp
выводите, если можете.telnet localhost 8005
или telnet 127.0.0.1