Я пытался установить Apache Tomcat 5.5 и 6 двумя разными способами ( из исходного кода и с помощью apt-get ) на Debian 5 и Debian 6 - безуспешно. Сервер работает, но я не могу подключиться к нему.
netstat -a
:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 `hostname`:ssh my_home_ip:4318 ESTABLISHED
tcp 0 52 `hostname`:ssh my_home_ip:remctl ESTABLISHED
tcp6 0 0 [::]:8009 [::]:* LISTEN
tcp6 0 0 [::]:8180 [::]:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
udp 0 0 *:mdns *:*
udp 0 0 *:33059 *:*
udp6 0 0 [::]:mdns [::]:*
udp6 0 0 [::]:43829 [::]:*
netstat -tnlp
:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1416/sshd
tcp6 0 0 :::8009 :::* LISTEN 7880/jsvc
tcp6 0 0 :::8180 :::* LISTEN 7880/jsvc
tcp6 0 0 :::22 :::* LISTEN 1416/sshd
ps aux | grep tomcat
:
root 7878 0.0 0.0 1984 352 ? Ss 21:55 0:00 /usr/bin/jsvc -user tomcat55 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat5.5/bin/bootstrap.jar -outfile SYSLOG -errfile SYSLOG -pidfile /var/run/tomcat5.5.pid -Djava.awt.headless=true -Xmx128M -Djava.endorsed.dirs=/usr/share/tomcat5.5/common/endorsed -Dcatalina.base=/var/lib/tomcat5.5 -Dcatalina.home=/usr/share/tomcat5.5 -Djava.io.tmpdir=/var/lib/tomcat5.5/temp -Djava.security.manager -Djava.security.policy=/var/lib/tomcat5.5/conf/catalina.policy -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/var/lib/tomcat5.5/conf/logging.properties org.apache.catalina.startup.Bootstrap
root 7879 0.0 0.0 1984 460 ? S 21:55 0:00 /usr/bin/jsvc -user tomcat55 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat5.5/bin/bootstrap.jar -outfile SYSLOG -errfile SYSLOG -pidfile /var/run/tomcat5.5.pid -Djava.awt.headless=true -Xmx128M -Djava.endorsed.dirs=/usr/share/tomcat5.5/common/endorsed -Dcatalina.base=/var/lib/tomcat5.5 -Dcatalina.home=/usr/share/tomcat5.5 -Djava.io.tmpdir=/var/lib/tomcat5.5/temp -Djava.security.manager -Djava.security.policy=/var/lib/tomcat5.5/conf/catalina.policy -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/var/lib/tomcat5.5/conf/logging.properties org.apache.catalina.startup.Bootstrap
tomcat55 7880 0.1 5.3 324068 27932 ? Sl 21:55 0:01 /usr/bin/jsvc -user tomcat55 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat5.5/bin/bootstrap.jar -outfile SYSLOG -errfile SYSLOG -pidfile /var/run/tomcat5.5.pid -Djava.awt.headless=true -Xmx128M -Djava.endorsed.dirs=/usr/share/tomcat5.5/common/endorsed -Dcatalina.base=/var/lib/tomcat5.5 -Dcatalina.home=/usr/share/tomcat5.5 -Djava.io.tmpdir=/var/lib/tomcat5.5/temp -Djava.security.manager -Djava.security.policy=/var/lib/tomcat5.5/conf/catalina.policy -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/var/lib/tomcat5.5/conf/logging.properties org.apache.catalina.startup.Bootstrap
root 8013 0.0 0.0 1716 492 pts/0 R+ 22:13 0:00 grep tomcat
nmap
проверка порта:
# nmap localhost -p 8180
Starting Nmap 4.62 ( http://nmap.org ) at 2012-03-03
Interesting ports on localhost.localdomain (127.0.0.1):
PORT STATE SERVICE
8180/tcp closed unknown
Nmap done: 1 IP address (1 host up) scanned in 0.025 seconds
# nmap localhost -p 8009
Starting Nmap 4.62 ( http://nmap.org ) at 2012-03-03
Interesting ports on localhost.localdomain (127.0.0.1):
PORT STATE SERVICE
8009/tcp closed ajp13
Nmap done: 1 IP address (1 host up) scanned in 0.027 seconds
# nmap localhost -p 22
Starting Nmap 4.62 ( http://nmap.org ) at 2012-03-03
Interesting ports on localhost.localdomain (127.0.0.1):
PORT STATE SERVICE
22/tcp open ssh
Nmap done: 1 IP address (1 host up) scanned in 0.026 seconds
Каталина бревно:
Mar 3, 2012 9:55:26 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:
Mar 3, 2012 9:55:26 PM org.apache.coyote.http11.Http11BaseProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8180
Mar 3, 2012 9:55:26 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 486 ms
Mar 3, 2012 9:55:27 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Mar 3, 2012 9:55:27 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5
Mar 3, 2012 9:55:27 PM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
Mar 3, 2012 9:55:27 PM org.apache.coyote.http11.Http11BaseProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8180
Mar 3, 2012 9:55:27 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Mar 3, 2012 9:55:27 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/24 config=null
Mar 3, 2012 9:55:27 PM org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
Mar 3, 2012 9:55:27 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 321 ms
java -version
:
java version "1.5.0_22"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03)
Java HotSpot(TM) Client VM (build 1.5.0_22-b03, mixed mode)
Я также попытался принудительно назначить Tomcat для моего внешнего IP-адреса VPS. Я также получил сообщение об ошибке во время инициализации виртуальной машины. Не удалось зарезервировать достаточно места для кучи объектов. время от времени ошибка, но я думаю, что это не проблема, поскольку Tomcat все равно не отвечает.
Извините за столько текста - я старался быть информативным. Пожалуйста, помогите мне. Заранее спасибо!
ОБНОВЛЕНИЕ
Как указано в ответе, Tomcat прослушивал порт IPv6. Чтобы изменить это, я должен был добавить переменную окружения для компьютера JAVA в /etc/profile
файл
JAVA_OPTS="-Djava.net.preferIPv4Stack=true"
export JAVA_OPTS
... перезагрузить файл: source /etc/profile
... а затем настройте главный Tomcat, Connector
отредактировав /etc/tomcat5.5/server.xml
(в моем случае) следующим образом:
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" address="0.0.0.0" />
Обратите внимание на то, address="0.0.0.0"
что Tomcat связывается с IPv4-адресом.
Спасибо за ваше время, и всем хорошего дня.
::1
вместо localhost порт отображается как открытый ?nmap -6 ::1 -p 8009 PORT STATE SERVICE 8009/tcp open ajp13
. Не могли бы вы опубликовать это как ответ, чтобы я мог принять это?Ответы:
Кажется, что Tomcat прослушивает только адрес обратной связи IPv6
::1
.источник
$JAVA_OPTS
в/etc/profile
к значению-Djava.net.preferIPv4Stack=true
и настройке Tomcat для прослушиванияaddress="0.0.0.0"
.Это пахнет проблемой брандмауэра - попробуйте открыть соответствующие правила в вашем брандмауэре (подумайте только о том, чтобы разрешить все входы / выходы
lo
, я никогда не видел законных оснований для ограничения петлевого трафика).источник