Linux上JBOSS 启动后只能本机访问,其它机器不能访问问题解决。
操作系统为openSUSE :
jboss版本 4.2.2.GA
1.我的jboss安装后只能使用wget http://127.0.0.1:8080/ 而使用本机的IP172.20.80.148 wget http://72.1.80.148:8080 却不能访问。
这个问题烦了我两天的时间。开始我以为是iptables的问题。后来听同事说应用程序启动的时候会邦定一个
IP。也就是对应一块网卡。用ifconfig查看后,有一个eth0和lo两个信息。我使用的是jboss.4.2的版本
默认他邦定到了lo上。我修改了一下/usr/local/jboss/jboss-4.2.0.GA/server/default/deploy/jboss-web.deployer
中的server.xml 文件。将${jboss.bind.address} 修改为0.0.0.0 这样通过eth0,lo都可以访问jboss的
8080端口。
例如:
modify file: jboss-4.2.2.GA\server\default\deploy\jboss-web.deployer\server.xml
<!-- remark by rock for localhost problem
<Connector port="8080" address="${jboss.bind.address}"
maxThreads="250" maxHttpHeaderSize="8192"
emptySessionPath="true" protocol="HTTP/1.1"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
-->
修改address="${jboss.bind.address}"如下:
<Connector port="8080" address="0.0.0.0"
maxThreads="250" maxHttpHeaderSize="8192"
emptySessionPath="true" protocol="HTTP/1.1"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
2.使用命令netstat -nlp 查看一下。
Local Address 更改为 0.0.0.0:8080 而不是以前的127.0.0.1:8080
3. wget http://72.1.80.148:8080 也可以访问了。
注意:先用telnet 72.1.80.148 1099 测试远程的jboss是否连通。
设置SUSE系统的防火墙允许1099,8080和8083端口通过并关闭防火墙。
关闭SuSE防火墙的命令:
$ sudo /sbin/SuSEfirewall2 stop
永久关闭 chkconfig SuSEfirewall2 off
SUSE系统上启动JBoss服务使用 run.sh -b 72.1.80.148的命令。