zoukankan      html  css  js  c++  java
  • 局域网访问不到linux下的tomcat

    问题描述:

    CentOS安装完成Tomcat后,访问本地:http://localhost:8080/正确。但局域网内无法访问,而且服务器可ping通

    经查原因为防火墙开启:

    [root@localhost conf]#  service iptables status
    iptables: Firewall is  running.

    有两种解决方案:一是关闭防火墙;二是开放8080端口

    直接关闭防火墙会影响服务器的安全性,比较暴力,开放相应的端口号来说更符合安全性,更温和

    第一种方案:关闭iptables ,相对比较简单

    service iptables stop

    若想永久关闭: chkconfig --level 35 iptables off

     第二种方案:配置防火墙,开放8080端口,相对复杂点,但是值得推荐

      首先查看一下iptables的配置

    [root@bogon ~]# vi /etc/sysconfig/iptables
    # Firewall configuration written by system-config-firewall
    # Manual customization of this file is not recommended.
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    :RH-Firewall-1-INPUT - [0:0]
    -A INPUT -j RH-Firewall-1-INPUT
    -A FORWARD -j RH-Firewall-1-INPUT
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
    -A INPUT -j REJECT --reject-with icmp-host-prohibited
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
    COMMIT

      其中红色部分为自己添加的,其意义:

    :RH-Firewall-1-INPUT - [0:0]

      上面可以理解为定义了一个子链 RH-Firewall-1-INPUT

    -A INPUT -j RH-Firewall-1-INPUT
    -A FORWARD -j RH-Firewall-1-INPUT

       其实上面这两条规则就是将子链RH-Firewall-1-INPUT分别加到INPUT和FORWORD主链中,把父链INPUT和FORWARD的所有数据包都转发到子链RH-Firewall-1-INPUT,也就意味着,当一个数据包进入主机后,首先会进入INPUT链和FORWARD链,然后再由INPUT和FORWARD链进入RH-Firewall-1-INPUT进行处理

    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

      使用子链RH-Firewall-1-INPUT,配置8080端口,允许8080端口的数据包传输

     如上配置并重启iptables就可以在局域网内访问8080端口了

    [root@bogon ~]# service iptables restart
    iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
    iptables: Flushing firewall rules:                         [  OK  ]
    iptables: Unloading modules:                               [  OK  ]
    iptables: Applying firewall rules:                         [  OK  ]

    ---------------------------------------------------------------------------------------------------------------------------------------------

    防火墙相关命令:

    service  iptables  status        查看防火墙状态
    service  iptables  start           开启防火墙
    service  iptables  stop           关闭防火墙
    service  iptables  restart        重启防火墙

    这里简单讨论一下iptables:

    iptables是Linux内置的数据包过滤软件(即 防火墙)。它定义了进出Linux数据包的过滤规则。Iptables由多个表格组成,每个表格由若干链组成,每个链由若干规则组成。

    其中最常用也是最重要的是管理本机进出数据包的filter(过滤器)表格,filter默认包含以下3个链:

    •  INPUT链:定义了进入Linux主机的数据包的过滤规则;
    •  OUTPUT链:定义了送出Linux主机的数据包的过滤规则;
    •  FORWORD链:这个链与本机没有什么关系,它可以转递数据包到后台的计算机中,与iptables中的另外一个表格nat相关性较高;

    上面三个链是filter表格中默认的链,可以称作父链。用户还可以自定义自己的链规则,可以称作子链。当数据包满足一定规则,则由父链跳转到子链进行特定的处理。

    上面iptables配置信息中:开头的为防火墙filter过滤器定义的4个链:INPUT,FORWARD,OUTPUT,RH-Firewall-1-INPUT。其中前面三个链是系统默认的链,称为父链;RH-Firewall-1-INPUT是用户自定义的链,称为子链。

  • 相关阅读:
    一个转角--->程序猿
    一个转角--->程序猿
    科技申报项目总结
    科技申报项目总结
    mysql事务
    mysql事务
    浅谈SSM框架
    浅谈SSM框架
    Spring-IOC(解释依赖注入DI)
    Maven基础知识,如何搭建Maven环境,Maven常用命令,如何搭建一个Maven项目
  • 原文地址:https://www.cnblogs.com/qixing/p/5900680.html
Copyright © 2011-2022 走看看