linux 查看并对外开放端口(防火墙拦截处理)
[转]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文件。
解决:
- 在控制台使用iptables命令随便写一条防火墙规则,如:iptables -P OUTPUT ACCEPT
- 使用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 查看并对外开放端口(防火墙拦截处理)的更多相关文章
- linux查看本服务端口开放情况
在Linux使用过程中,需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过netstat命令进行简单查询. 1.netstat命令各个参数说明如下: -t : 指明显示T ...
- Linux下Centos7对外开放端口
转载:https://blog.csdn.net/realjh/article/details/82048492 命令集合: ()查看对外开放的端口状态 查询已开放的端口 netstat -anp 查 ...
- linux 查看某一端口的占用情况
查看某一端口的占用情况: lsof -i:端口号,例如查看端口21是否被占用 lsof -i: 实例:查看端口是否被占用,如果被占用结束掉该端口 [root@localhost splunk]# ls ...
- Linux查看监听端口的脚本测试
本文是按照lfree的博客(https://www.cnblogs.com/lfree/p/10368332.html)中的内容,进行学习.测试.总结的.有些知识点也是在阅读这篇博文时,发现不了解这方 ...
- Widows 和Linux 查看和操作端口方法
Windows 打开cmd1.netstat -n查看本机的使用的所有端口①.proto表示协议 有tcp和udp两种②.Local Address 表示本机的IP,后面跟的是我们使用的端口号③.Fo ...
- Linux查看某一个端口监听情况
1.使用lsof lsof -i:端口号查看某个端口是否被占用 2.使用netstat 使用netstat -anp|grep 80
- linux查看进程、端口
1 查看进程pidps -ef|grep tomcat 2 查看进程占用的端口netstat -ntlp|grep pid 3 查看端口对应的进程号lsof -i:portid
- linux 查看进程和端口
1.进程查看 #ps aux | grep java 2.查看系统与内核相关信息 #uname [-asrmpi] 查看系统位数 # uname -m 3.查看端口 #netstat [-aatunl ...
- linux 安装【jdk、tomcat】查看对外开放端口(防火墙拦截处理)
1.安装 jdkhttps://www.cnblogs.com/xu-dong/p/6422938.html 查看Linux下查看JDK安装路径: https://www.cnblogs.com/im ...
随机推荐
- [mysql]You must reset your password using ALTER USER statement before executing this statement.
原因分析: MySQL版本5.6.6版本起,添加了password_expired功能,它允许设置用户的过期时间.这个特性已经添加到mysql.user数据表,但是它的默认值是”N”,可以使用ALTE ...
- 【NET Core】Nuget包发布流程
1.新建一个.NET Core类库 2.新增一个方法,并编译项目 3.下载Nuget.exe,与刚才新建的类库放在同一目录下 下载地址:https://www.nuget.org/downloads ...
- java.lang.ClassNotFoundException: javax.servlet.SessionCookieConfig
使用 MockMvc 模拟进行单元测试时出现以下的错误,网上看到的资料应该是说Spring4.0需要servlet3.0的支持? 在pom.xml更改servlet的版本依赖后即可
- springboot访问数据库(MySql)
1.使用JDBC访问数据库:JDBC是用于在Java语言编程中与数据库连接的API <dependency> <groupId>org.springframework.boot ...
- postgis 随笔
一.表的定义: 对于任何一种关系型数据库而言,表都是数据存储的最核心.最基础的对象单元.现在就让我们从这里起步吧. 1. 创建表: CREATE TABLE products ( ...
- sunset
may there be enough clouds in your life to make a beautiful sunset
- C++ 中缀转后缀表达式并求值
//中缀转后缀 #include<iostream> #include<stack> using namespace std; int prio(char x){ ; ; ; ...
- js 取整 取余
1.取整//保留整数部分parseInt(3/2) // 1 2.向上取整// 向上取整,有小数就整数部分加1Math.ceil(3/2) // 2 3.四舍五入// 四舍五入Math.round(3 ...
- python 几分钟前,几小时前,几天前转为时间戳
一开始我是这么做的 import time import datetime def conv_time(t): min = re.findall('\d+', t)[0] if u'分钟' in t: ...
- 和初学者交流学习java语言一些体会。
对初学者,自己学习java语言的一些体会: 1.工欲善其事,必先利其器.先把Java学习工具准备好,包括集成开发环境IDE,自己觉得MyEclipse比较适合,还有数据库,Oracle或MySQL,S ...