JAVA开发运维(linux环境防火墙与端口开启使用总结记录)

news2024/9/25 19:14:46

一、问题背景:

       将web项目开发完成,需要上到生产环境。那么我们应用调用的一些ip,端口都是要设置的,比如说应用提供给谁访问,那些人不能访问,应用的端口是多少,也是需要开启才能访问的。在实际研发过程中,这一部分工作一般由运维工程师或者网络工程师管理。但是作为开发人员,也需要了解其中的原理,甚至需要熟练使用。要不然与网络工程师的沟通交流也是相当困难。

 

二、防火墙介绍:

  1. 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。
  2. 如果数据包就是进入本机的,它就会沿着图向下移动,到达INPUT链。数据包到了INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。
  3. 如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过FORWARD链,然后到达POSTROUTING链输出。

 

可以看出,刚从网络接口进入的数据包尚未进行路由决策,还不知道数据要走向哪里,所以进出口处没办法实现数据过滤,需要在内核空间设置转发关卡、进入用户空间关卡和离开用户空间关卡。

防火墙:

 

在RHEL 7系统中,firewalld防火墙取代了iptables防火墙。对于接触Linux系统比较早或学习过RHEL 6系统的读者来说,当他们发现曾经掌握的知识在RHEL 7中不再适用,需要全新学习firewalld时,难免会有抵触心理。其实,iptables与firewalld都不是真正的防火墙,它们都只是用来定义防火墙策略的防火墙管理工具而已,或者说,它们只是一种服务。iptables服务会把配置好的防火墙策略交由内核层面的netfilter网络过滤器来处理,而firewalld服务则是把配置好的防火墙策略交由内核层面的nftables包过滤框架来处理。换句话说,当前在Linux系统中其实存在多个防火墙管理工具,旨在方便运维人员管理Linux系统中的防火墙策略,我们只需要配置妥当其中的一个就足够了。虽然这些工具各有优劣,但它们在防火墙策略的配置思路上是保持一致的。大家甚至可以不用完全掌握本章介绍的内容,只要在这多个防火墙管理工具中任选一款并将其学透,就足以满足日常的工作需求了。

Iptables:

iptables是用来管理防火墙的的工具,属于静态防火墙,我们通过 iptables 将过滤规则写入内核,然后 Netfilter 再根据规则进行过滤数据包。所以实际上iptables是通过调用 Netfilter 来进行防火墙管理的,它本身不具备过滤数据包的功能。iptables程序位于 /sbin/iptables ,配置文件位于 /etc/sysconfig/iptables 。在Rhel7之前,防火墙是用 iptables

iptables中也有和netfilter中一模一样的5种规则链,还多了4个规则表。规则表的作用是容纳各种规则链。规则表的划分依据是防火墙规则的作用。四个表中常用的是 filter 表。最常用的链是 INPUT 和 OUTPUT 链。

 

三、防火墙与端口使用:

查看防火墙状态

firewall-cmd --state

 开启防火墙:

systemctl start firewalld.service

开启制定端口:

firewall-cmd --zone=public --add-port=8080/tcp --permanent

显示 success 表示成功
–zone=public 表示作用域为公共的
–add-port=8080/tcp 添加 tcp 协议的端口端口号为 8080
–permanent 永久生效,如果没有此参数,则只能维持当前 服 务生命周期内,重新启动后失效;

重启防火墙

systemctl restart firewalld.service

重新加载防火墙

firewall-cmd --reload

查看已开启的端口

firewall-cmd --list-ports

关闭指定端口

#关闭指定端口
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
systemctl restart firewalld.service
firewall-cmd --reload

查看端口被占用情况

#查看端口被哪一个进程占用
netstat -lnpt |grep 5672
# centos7默认没有 netstat 命令,需要安装 net-tools 工具:
# 安装 net-tools
yum install -y net-tools

临时关闭防火墙

# 临时关闭防火墙
systemctl stop firewalld.service
# 或者
systemctl stop firewalld

永久关闭防火墙

# 永久关闭防火墙(必须先临时关闭防火墙,再执行该命令,进行永久关闭)
systemctl disable firewalld.service
# 或者
systemctl disable firewalld

测试端口是否能连接

telnet  ip  port

四、iptables的一些使用:

CentOS6

1、查看防火墙状态:service iptables status/etc/init.d/iptables status

2、启/停/重启防火墙:service iptables start/stop/restart

3、查看防火墙是否开机启动:chkconfig iptables --list

4、设置防火墙开机自启/不自启:chkconfig iptables on/off

CentOS7

1、查看防火墙状态:systemctl status firewalld

2、启/停/重启防火墙:systemctl start/stop/restart firewalld.service

3、设置防火墙开机自启/不自启:systemctl enable/disable firewalld.service

4、开启端口:firewall-cmd --zone=public --add-port=80/tcp -permanent

1、基本操作

# 查看防火墙状态

service iptables status  

# 停止防火墙

service iptables stop  

# 启动防火墙

service iptables start  

# 重启防火墙

service iptables restart  

# 永久关闭防火墙

chkconfig iptables off  

# 永久关闭后重启

chkconfig iptables on  

2、开启80端口

vim /etc/sysconfig/iptables
# 加入如下代码
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
保存退出后重启防火墙

service iptables restart
二、firewall防火墙
1、查看firewall服务状态

systemctl status firewalld

出现Active: active (running)切高亮显示则表示是启动状态。

出现 Active: inactive (dead)灰色表示停止,看单词也行。
2、查看firewall的状态

firewall-cmd --state
3、开启、重启、关闭、firewalld.service服务

# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
4、查看防火墙规则

firewall-cmd --list-all
5、查询、开放、关闭端口

# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

# 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/712702.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用BBI指标如何分析平台现货白银走势?

分析平台现货白银走势,主要有几种理论,包括指标类,价格形态类,切线类和K线理论类等几种方法。其实,技术指标依赖投资者开发的算法,被认为是相对更先进的技术,所以也深受很多投资者喜爱。今日&am…

SQL Server创建定时维护计划(备份数据库)

一.备份前将日志收缩至1MB 1.连接数据库——管理——维护计划——新建维护计划 在左下角找到执行T-SQL语句任务将其拖拽到右侧,点击编辑将数据库改为简单模式的SQL语句添加到里面,添加完成后设置执行计划任务 设置执行时间计划任务 2.将数据库log日志收缩…

zynq emio 外接emmc/SD 相关问题与描述总结

在使用emio的情况要注意,由于通过PL的扩展,导致一些问题,如时钟时序,数据、cmd的方向控制都需要注意。 A、emio的clk和clk_fb要短接(原因是要通过反馈修复clk输出时序),可通过内部直接短接&…

GC回收器演进之路

目录 未来演进方向 历经之路 引用计数法 标记清除法 复制法 标记整理 分代式 三色标记法的诞生 三色标记法的基本概念 产生的问题 问题 1:浮动垃圾 问题 2:对象消失 遍历对象图不需要 STW 的解决方案 屏障机制 插入屏障(Dijks…

springboot web

Springboot入门介绍 一、Spring框架概述 1.1 什么是Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》。Spring是为了解决企业级应用开发的复…

【生活分享】《哈姆雷特》· 苏州站 - 有趣的观后感

平时博客里大部分都是写技术相关的文章,感觉内容还是比较单一的,也想分享一下最近的一些有趣的生活~ 6月30号的时候,便订好了7月2号徐俊导演编排的《哈姆雷特》音乐剧。而实际上,苏州场 7月1号就上映了,但感觉那天太晚…

python函数调用时的关键字参数

python 函数调用使用关键字参数来确定传入的参数值; 使用关键字参数允许函数调用时参数的顺序与声明时不一致, Python 解释器能够用参数名匹配参数值; 在命令行定义一个函数printstu; 如下都可以正确调用; printstu(…

❤ 15个基于Vue3.0全家桶的优秀开源项目

❤ 15个基于Vue3.0全家桶的优秀开源项目 Vue Admin Better github : https://github.com/chuzhixin/vue-admin-better vue admin better 对比其他来源 admin 框架有如下优势: 支持前端控制路由权限 intelligence、后端控制路由权限 all 模式 已知来源 vue admin 框架中首家支…

【Spring Cloud Alibaba】OpenFeign的使用

Feign is a Java to HTTP client binder inspired by Retrofit, JAXRS-2.0, and WebSocket. Feign’s first goal was reducing the complexity of binding Denominator uniformly to HTTP APIs regardless of ReSTfulness. Feign是一个Java到HTTP的客户端绑定器,灵…

点云模型概述

点云与三维图像 三维图像是一种特殊的信息表达形式,其特征是表达的空间中三个维度的数据。和二维图像相比, 三维图像借助第三个维度的信息,可以实现天然的物体和背景解耦。 对于视觉测量来说,物体的二维信息往往随射影方式而变化…

2023年,从初级岗进阶到中级测试工程师岗,突破内卷...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 初级测试如何成长…

vue3----解决字体包太大响应慢以及打包文件大的问题 解决font-spider 报错问题

vue3----解决字体包太大响应慢以及打包文件大的问题 && 解决font-spider 报错问题 前言:使用font-spider压缩字体(亲测可用) 参考链接:https://blog.csdn.net/nanchen_J/article/details/126973856 一、解决字体包太大响应…

【报错】ros1中使用opencv4.8时,报错Segmentation fault

现象: ubuntu18.04下,使用ros1进行opencv4.8,操作opencv2库的时候报错了 原因: cmakelists.txt中不要加 ${catkin_LIBRARIES} 否则ros在执行时会导入默认的3.2.0版本,与4.8.0冲突。

Mybatis-Plus不能更新对象字段为空值问题解决

问题描述: 在使用Mybatis-Plus调用updateById方法进行数据更新默认情况下是不能更新空值字段的,而在实际开发过程中,往往会遇到需要将字段值更新为空值的情况,该如何解决呢? 原因分析: Mybatis-Plus中字…

esp8266学习记录

前言 本文主要介绍了esp8266固件的烧写和基本AT指令,然后结合stm32开发板实现三个实验。分别是手机远程控制开发板LED;开发板温度传感器数据和光强上传到云平台实时监控;从云平台获取数据来控制开发板板载资源。每个实验我都保留了工程源和效…

[AJAX]原生AJAX——自定义请求头

客户端 <script>// 1、创建对象const xhr new XMLHttpRequest();// 2、初始化&#xff1a;设置请求类型和urlxhr.open(POST, http://127.0.0.1:8000/server);// 设置请求头// Content-Type&#xff1a;设置请求体内容类型// application/x-www-form-urlencoded&#xf…

分布式服务一篇概览

分布式服务开发复杂于服务间交互&#xff0c;协调&#xff0c;治理等。服务的复杂性由应用本身转移到了网络交互层。 一、关于12-factor问题 在开发分布式服务时&#xff0c;我们通常会考虑如12-factor 问题&#xff0c;如配置中心、无状态化、日志等。 一个代码库&#xff…

数通王国历险记之地址分析协议(ARP)

系列文章目录 数通王国历险记&#xff08;4&#xff09; 目录 前言 一&#xff0c;什么是地址解析协议&#xff08;ARP&#xff09; 二&#xff0c;封装和解封装 三&#xff0c;为什么需要地址解析协议&#xff08;ARP&#xff09; 四&#xff0c;ARP的验证实验 4.1&#x…

线程池ThreadPoolExecutor详解以及多种线程池的实现

1、线程池状态含义 ThreadPoolExecutor 使用 int 的高 3 位来表示线程池状态&#xff0c;低 29 位表示线程数量&#xff0c;之所以将信息存储在一个变量中&#xff0c;是为了保证原子性。 具体的高三位与线程池状态如下&#xff0c;引用自网课的图片&#xff1a; 2、构…

【数据库编程】最新版MySQL的JDBC编程(图文演示)

数据库系列文章 1. 零基础带你快速上手SQL语言 2. 玩转表及其数据 3. 上手表设计 4. 索引和事务 5. 最新版MySQL的JDBC编程 文章目录 前言1. 数据库编程的必备条件2. Java的JDBC编程3. JDBC工作原理3.1 数据库驱动包从哪里来 4. JDBC编程4.1 创建 Java 项目4.2 导入数据库驱动包…