[转]https://blog.csdn.net/qq564425/article/details/80760528

Web应用在Tomcat部署后无法访问,可能是防火墙端口限制导致

查看端口是否可访问:telnet ip 端口号 (如本机的35465:telnet localhost 35465)

开放的端口位于/etc/sysconfig/iptables中

查看时通过 more /etc/sysconfig/iptables 命令查看

如果想开放端口(如:8889)

(1)通过vi /etc/sysconfig/iptables 进入编辑增添一条-A INPUT -p tcp -m tcp --dport 8889 -j ACCEPT 即可

(2)执行 /etc/init.d/iptables restart 命令将iptables服务重启

#(3)保存 /etc/rc.d/init.d/iptables save

注:如若不想修改iptables表,可以直接输入下面命令:

# iptables -I INPUT -p tcp --dport 8889 -j ACCEPT

附:参考自:http://www.cnblogs.com/alimac/p/5848372.html

若/etc/sysconfig/iptables不存在,

原因:在新安装的linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件。

解决:

  1. 在控制台使用iptables命令随便写一条防火墙规则,如:iptables -P OUTPUT ACCEPT
  2. 使用service iptables save进行保存,默认就保存到了/etc/sysconfig目录下的iptables文件中
 
 
 
 
 
一、概要
1、防火墙分类
      ①包过滤防火墙(pack filtering)在网络层对数据包进行选择过滤,采用访问控制列表(Access control table-ACL)检查数据流的源地址,目的地址,源和目的端口,IP等信息。
      ②代理服务器型防火墙
2、iptables基础
      ①规则(rules):网络管理员预定义的条件
      ②链(chains): 是数据包传播的路径
      ③表(tables):内置3个表filter表,nat表,mangle表分别用于实现包过滤网络地址转换和包重构的功能
      ④filter表是系统默认的,INPUT表(进入的包),FORWORD(转发的包),OUTPUT(处理本地生成的包),filter表只能对包进行授受和丢弃的操作。
      ⑤nat表(网络地址转换),PREROUTING(修改即将到来的数据包),OUTPUT(修改在路由之前本地生成的数据包),POSTROUTING(修改即将出去的数据包)
      ⑥mangle表,PREROUTING,OUTPUT,FORWORD,POSTROUTING,INPUT
3、其它
   iptables是按照顺序读取规则
   防火墙规则的配置建议
    Ⅰ 规则力求简单
    Ⅱ 规则的顺序很重要
    Ⅲ 尽量优化规则
    Ⅳ 做好笔记
二、配置
1、iptables命令格式
     iptables [-t 表] -命令 匹配 操作 (大小写敏感)
   动作选项
     ACCEPT          接收数据包
     DROP             丢弃数据包
     REDIRECT      将数据包重新转向到本机或另一台主机的某一个端口,通常功能实现透明代理或对外开放内网的某些服务
     SNAT             源地址转换
     DNAT             目的地址转换
     MASQUERADE       IP伪装
     LOG               日志功能
2、定义规则
   ①先拒绝所有的数据包,然后再允许需要的数据包
      iptalbes -P INPUT DROP
      iptables -P FORWARD DROP
      iptables -P OUTPUT ACCEPT
   ②查看nat表所有链的规则列表
      iptables -t nat -L
   ③增加,插入,删除和替换规则
     iptables [-t 表名] <-A|I|D|R> 链名 [规则编号] [-i|o 网卡名称] [-p 协议类型] [-s 源ip|源子网] [--sport 源端口号] [-d 目的IP|目标子网] [--dport 目标端口号] [-j 动作]
    参数:-A 增加
               -I 插入
               -D 删除
               -R 替换

三、例子
①iptables -t filter -A INPUT -s 192.168.1.5 -i eth0 -j DROP
禁止IP为192.168.1.5的主机从eth0访问本机②iptables -t filter -I INPUT 2 -s 192.168.5.0/24 -p tcp --dport 80 -j DROP
禁止子网192.168.5.0访问web服务③iptables -t filter -I INPUT 2 -s 192.168.7.9 -p tcp --dport ftp -j DROP
禁止IP为192.168.7.9访问FTP服务
④iptables -t filter -L INPUT
查看filter表中INPUT链的规则
⑤iptables -t nat -F
删除nat表中的所有规则
⑥iptables -I FORWARD -d wwww.playboy.com -j DROP
禁止访问www.playboy.com网站
⑦iptables -I FORWARD -s 192.168.5.23 -j DROP
禁止192.168.5.23上网

linux 查看并对外开放端口(防火墙拦截处理)的更多相关文章

  1. linux查看本服务端口开放情况

    在Linux使用过程中,需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过netstat命令进行简单查询. 1.netstat命令各个参数说明如下: -t : 指明显示T ...

  2. Linux下Centos7对外开放端口

    转载:https://blog.csdn.net/realjh/article/details/82048492 命令集合: ()查看对外开放的端口状态 查询已开放的端口 netstat -anp 查 ...

  3. linux 查看某一端口的占用情况

    查看某一端口的占用情况: lsof -i:端口号,例如查看端口21是否被占用 lsof -i: 实例:查看端口是否被占用,如果被占用结束掉该端口 [root@localhost splunk]# ls ...

  4. Linux查看监听端口的脚本测试

    本文是按照lfree的博客(https://www.cnblogs.com/lfree/p/10368332.html)中的内容,进行学习.测试.总结的.有些知识点也是在阅读这篇博文时,发现不了解这方 ...

  5. Widows 和Linux 查看和操作端口方法

    Windows 打开cmd1.netstat -n查看本机的使用的所有端口①.proto表示协议 有tcp和udp两种②.Local Address 表示本机的IP,后面跟的是我们使用的端口号③.Fo ...

  6. Linux查看某一个端口监听情况

    1.使用lsof   lsof -i:端口号查看某个端口是否被占用 2.使用netstat 使用netstat -anp|grep 80 

  7. linux查看进程、端口

    1 查看进程pidps -ef|grep tomcat 2 查看进程占用的端口netstat -ntlp|grep pid 3 查看端口对应的进程号lsof -i:portid

  8. linux 查看进程和端口

    1.进程查看 #ps aux | grep java 2.查看系统与内核相关信息 #uname [-asrmpi] 查看系统位数 # uname -m 3.查看端口 #netstat [-aatunl ...

  9. linux 安装【jdk、tomcat】查看对外开放端口(防火墙拦截处理)

    1.安装 jdkhttps://www.cnblogs.com/xu-dong/p/6422938.html 查看Linux下查看JDK安装路径: https://www.cnblogs.com/im ...

随机推荐

  1. 解决 ImportError: No module named _internal

    参考: My pip is broken. _internal module cannot be imported. #5253 解决 ImportError: No module named _in ...

  2. HackerRank-Python攻城歷程-2.List comprehensions

    if __name__ == '__main__': x = int(input()) y = int(input()) z = int(input()) n = int(input()) print ...

  3. 工具类封装之--BaseController

    package cn.xxx.base; import cn.xxx.gecustomer.beans.GeCustomer; import cn.xxx.gecustomer.beans.GeCus ...

  4. (23)socket多进程并发

    # 对于服务器自己本身,一个程序只能绑定一个端口 # 同一个端口可以多个客户端来连接, # 只要server_ip+ server_port +client_ip + cilent_port 不一样, ...

  5. Oracle高级查询之over(partition by...)

    现有表,数据如下: eg1:查询年龄第二的队员 通常写法: select * from (select a.*, rownum r from (select t.* from l_student_in ...

  6. java.nio.file.NoSuchFileException

    springboot +es es 2.1.0 参考这个 https://www.cnblogs.com/yueshutong/p/9381543.html cluster-nodes :改成127. ...

  7. 解决angular ui-grid 中添加input date修改日期

    需求:在angular ui-grid列表中添加一个日期组件来修改时间. 在angular ui-grid添加了一个html5 date input,后端返回的数据是YYYY-MM-DD,比如:201 ...

  8. 使用Dockerfile定制ubuntu+nginx镜像

    实验目的:书写Dockerfile,定制ubuntu 14.04 + nginx 1.14.0的镜像. 实验过程: 1. 下载nginx-1.14.0  http://nginx.org/downlo ...

  9. xtratabcontrol控件的标签样式--文本的宽高

    Skin skin_ = TabSkins.GetSkin(DevExpress.LookAndFeel.UserLookAndFeel.Default.ActiveLookAndFeel); Ski ...

  10. The innodb_system data file 'ibdata1' must be writable

    在安装MySQL的时候报的错,我理解的这个错是因为有个文件是Innodb需要在安装MySQL(或者创建数据库的时候)的时候需要写入这个文件,但是他现在没有写的权限. 日志中的错误是: 5.7版本以前是 ...