![1 在 yast2 停止防火墙并防止其自动启动](https://linux22.com/image/526067/1%20%E5%9C%A8%20yast2%20%E5%81%9C%E6%AD%A2%E9%98%B2%E7%81%AB%E5%A2%99%E5%B9%B6%E9%98%B2%E6%AD%A2%E5%85%B6%E8%87%AA%E5%8A%A8%E5%90%AF%E5%8A%A8.png)
我有一台Suse11.2的机器,上面有以下服务:oracle数据库XE Jboss+Tomcat6.0
我需要将 oracle 默认的 dbms_xdb httpport 更改为 9080,这样我就可以使用 tomcat @8080 端口。由于我正在开发这个应用程序,我使用 localhost:8080 进行了大量测试,并通过 localhost:1521 访问数据库,并且运行良好。但是当我需要访问这个 ip 时,它没有响应:例如 192.168.1.4:8080 和 :1521,它在浏览器中显示,当我尝试连接 oracle 时,它无法连接到服务器......但我不明白为什么它连接到 9080 端口(oracle dbms http)
我做的事情:
1 在 yast2 停止防火墙并防止其自动启动
2 运行“/etc/init.d/SuSEfirewall2_setup stop”
回复:“关闭防火墙......完成”
3 列出 iptables 规则:
============================================================开始链输入(策略接受)目标保护选择源目标
链转发(策略接受)目标保护选择源目标
链输出(策略接受)目标保护选择源目标=========================================================结束
但是它一直阻塞除 9080 和 icmp 之外的其他端口...有人知道发生了什么吗:?
提前谢谢你,安德烈。
答案1
netstat -lnt |复制代码
tcp 0 0 127.0.0.1:8080 0.0.0.0:* 侦听
netstat -lnt |复制代码
tcp 0 0 127.0.0.1:1521 0.0.0.0:* 侦听
netstat -lnt |复制代码
tcp 0 0 0.0.0.0:9080 0.0.0.0:* 监听
好吧,也许我没有说清楚:但是 oracle(1521) 和 (jboss+tomcat)8080 正在工作,但只能通过本地主机访问。
这就是答案:端口 1521 和 9080 仅监听 IP 地址 127.0.0.1 (localhost)。不涉及防火墙。
您需要更改这些服务的配置以监听服务器的所有 IP 地址。我不知道如何对 Oracle 执行此操作。
答案2
确保数据库引擎正在运行:
这将告诉您监听器是否正在运行:
$ netstat -tnl | grep 1521
如果这里没有看到结果,请启动监听器(确保环境设置正确):
$ lsnrctl start
$ lsnrctl status
这将告诉您进程监视器是否正在运行:
$ pgrep -fl pmon
如果 pmon 正在运行,则数据库引擎需要一些时间才能注册。如果该命令没有结果,请启动它(再次检查您的环境):
$ sqlplus /nolog
sqlplus> conn / as sysdba
sqlplus> startup
如果数据库已启动,但您有其他问题(SQLNet),您可以随时使用内部。作为运行该进程的用户(通常是 oracle),您可以执行几乎相同的行:
$ sqlplus /nolog
sqlplus> conn / as sysdba
sqlplus> # your statements / alter system / alter database
如果一切正常,请通过 1521 端口 telnet 到您的 IP:
$ telnet <ip> 1521
另外,确保 iptables 允许您连接:
# iptables -nL
如果您发现任何可疑规则,请将其全部清除(您将不再有防火墙规则):
# iptables -F
答案3
您是否尝试过确保这些端口确实在监听?
netstat -lnt | grep 1521
netstat -lnt | grep 8080