我是这些论坛的新手,我希望我不会问一个愚蠢的问题。我已经在网上多次看到了我的问题的答案,但它从来没有对我有用。
所以基本上我在Debian 8.1远程服务器上安装了tomcat 8,我想简单地连接到那台服务器。但是当我尝试在我的网络浏览器中连接到MY_SERVER_IP:8080时,我收到“无法访问此网站”的消息,而不是“它有效!”我应该得到的页面。
当我在ssh软件(Putty)上输入此代码时:
telnet MY_SERVER_IP 8080
GET /
服务器发送一个html页面,其中写着“如果你看到这个,你已经成功安装了Tomcat。恭喜!”。所以它看起来真的是我的服务器已正确安装,但我无法从外部访问它。我们还使用ssh软件检查了哪些端口是打开的,端口8080实际上只对IPv6地址开放...
我试图从/opt/apache-tomcat-8.5.13/conf/server.xml中的“Connector”标签中删除“address”属性,我也尝试将address =“0.0.0.0”添加到它。我尝试将JAVA_OPTS= $JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses
添加到catalina.sh启动脚本中,并将其写入新的TOMCAT_HOME/bin/setenv.sh
脚本中。这些都不起作用。
有没有办法解决我的问题?在此先感谢您的帮助。
编辑:在我拨打指令netstat -pln
之后,我的ssh软件会返回此信息(其中一些是法语版,所以如果您需要翻译,请告诉我):
Connexions Internet actives (seulement serveurs)
Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 15594/named
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 15624/sshd
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 15594/named
tcp6 0 0 :::8080 :::* LISTEN 19285/java
tcp6 0 0 ::1:53 :::* LISTEN 15594/named
tcp6 0 0 :::22 :::* LISTEN 15624/sshd
tcp6 0 0 ::1:953 :::* LISTEN 15594/named
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 19285/java
udp 0 0 127.0.0.1:53 0.0.0.0:* 15594/named
udp6 0 0 ::1:53 :::* 15594/named
Sockets du domaine UNIX actives(seulement serveurs)
Proto RefCnt Flags Type State I-Node PID/Program name Chemin
unix 2 [ ACC ] STREAM LISTENING 16166 1/systemd /run/systemd/private
unix 2 [ ACC ] SEQPACKET LISTENING 811 1/systemd /run/udev/control
unix 2 [ ACC ] STREAM LISTENING 815 1/systemd /run/systemd/journal/stdout
unix 2 [ ACC ] STREAM LISTENING 25198 1/systemd /run/lvm/lvmetad.socket
unix 2 [ ACC ] STREAM LISTENING 34670 1/systemd /var/run/dbus/system_bus_socket
unix 2 [ ACC ] STREAM LISTENING 5612 1/systemd /run/acpid.socket
因此,除非我弄错了,看起来服务器只监听端口8080上的IPv6地址。
编辑3:我再次添加了两个关于IP4的JAVA_OPTS参数,重新启动了我的tomcat,重新启动了netstat,然后执行了ps -ef | grep java
。结果如下:
root@ns397627:~# netstat -pln
Connexions Internet actives (seulement serveurs)
Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 2532/java
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 15594/named
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 15624/sshd
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 15594/named
tcp6 0 0 ::1:53 :::* LISTEN 15594/named
tcp6 0 0 :::22 :::* LISTEN 15624/sshd
tcp6 0 0 ::1:953 :::* LISTEN 15594/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 15594/named
udp6 0 0 ::1:53 :::* 15594/named
Sockets du domaine UNIX actives(seulement serveurs)
Proto RefCnt Flags Type State I-Node PID/Program name Chemin
unix 2 [ ACC ] STREAM LISTENING 16166 1/systemd /run/systemd/private
unix 2 [ ACC ] SEQPACKET LISTENING 811 1/systemd /run/udev/control
unix 2 [ ACC ] STREAM LISTENING 815 1/systemd /run/systemd/journal/stdout
unix 2 [ ACC ] STREAM LISTENING 25198 1/systemd /run/lvm/lvmetad.socket
unix 2 [ ACC ] STREAM LISTENING 34670 1/systemd /var/run/dbus/system_bus_socket
unix 2 [ ACC ] STREAM LISTENING 5612 1/systemd /run/acpid.socket
root@ns397627:~# ps -ef | grep java
tomcat8 2532 1 99 10:15 ? 00:00:20 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/var/lib/tomcat8/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses -Djava.endorsed.dirs=/usr/share/tomcat8/endorsed -classpath /usr/share/tomcat8/bin/bootstrap.jar:/usr/share/tomcat8/bin/tomcat-juli.jar -Dcatalina.base=/var/lib/tomcat8 -Dcatalina.home=/usr/share/tomcat8 -Djava.io.tmpdir=/tmp/tomcat8-tomcat8-tmp org.apache.catalina.startup.Bootstrap start
root 2557 2016 0 10:15 pts/4 00:00:00 grep java
答案 0 :(得分:1)
对于debian jessie(8.7)上的tomcat8的默认安装,您可以强制tomcat在setenv.sh文件中使用以下IPv4地址:
JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses"
请注意在语句的值部分周围使用双引号。
以下命令将附加到当前setenv.sh文件的正确位置(如果已经设置了JAVA_OPTS,请记得删除原始的setenv.sh)
echo 'JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses"' >> /usr/share/tomcat8/bin/setenv.sh