无法访问 CentOS7服务器上应用监听的端口

参考资料

  1. 云主机上Centos7配置Iptables规则开启80、3306等端口https://blog.csdn.net/qq_37960007/article/details/80374782
  2. CentOS 7 找不到 iptables 文件(需要安装 iptables 服务)
    https://www.cnblogs.com/miracle-luna/p/13714709.html
  3. 如何在CentOS 7 的机器上配置白名单
    https://www.cnblogs.com/miracle-luna/p/13714809.html
  4. 关于mysql服务器3306端口不能远程连接的解决
    https://blog.csdn.net/m0_37477061/article/details/83275408
  5. Linux关闭防火墙命令
    https://blog.csdn.net/qq_39399966/article/details/102660601
  6. CentOS7开启端口(永久)
    https://blog.csdn.net/zx110503/article/details/78787483
  7. centos7 打开mysql 3306端口并 设置外部访问
    https://www.cnblogs.com/yangxunwu1992/p/6091422.html

问题由来

我在自己的虚拟机中的CentOS7 中(MySQL 8 安装过程)并启动了 mysql 8 服务,并且确认了服务启动没有问题。
定位问题:

  1. telnet 服务器的22 端口,访问正常
  2. netstat -ntpl |grep 3306 查看监听端口,没有问题
  3. telnet 服务器的3306端口,无法访问

经过百度,发现是防火墙的问题。

防火墙开启端口供其他访问

1. 使用 firewalld 开启端口

1、运行命令:

firewall-cmd --get-active-zones

运行完成之后,可以看到zone名称,如下:

2、执行如下命令命令:

# --permanent 表示 永久生效
firewall-cmd --zone=public --add-port=3306/tcp --permanent

3、重启防火墙,运行命令:

firewall-cmd --reload

4、查看端口号是否开启,运行命令:

firewall-cmd --query-port=3306/tcp

5、如果firewall 已经注销的了,运行以下命令可恢复:

systemctl unmask firewalld

2. 使用 iptables

在CentOS 7.x 的机器上,给指定主机和指定端口配置白名单的时候,发现机器的 /etc/sysconfig/ 目录下没有找到 iptables 文件。

原因是因为CentOS 7.x 默认是使用 firewalld 服务作为防火墙,我们需要禁用该服务,安装 iptables 服务。

1、停止 firewall 服务

systemctl stop firewalld

2、注销 firewall 服务

systemctl mask firewalld

可以通过systemctl unmask firewalld 重新注册 firewalld 服务
3、安装 iptables 服务

yum install -y iptables
yum install iptables-services

4、启动 iptables 服务

systemctl start iptables

或者

service iptables start

5、设置 iptables 开机自启动

systemctl enable iptables

6、查看 iptables 状态

systemctl status iptables

或者

service iptables status

7、查看 iptables 文件
此时可以在 /etc/sysconfig/ 目录下看到 iptables 文件

8、编辑 iptables 文件,加入防火墙规则

vi /etc/sysconfig/iptables

加入 3306 端口规则

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

注意: 3306 端口规则 一定不能是两个 icmp-host-prohibited 中间,否则仍然不能访问!

====== 错误示范========
之前新增的规则,在两个 icmp-host-prohibited 中间,所以不能访问:


====== 错误示范========

9、重启 iptables

systemctl restart iptables.service

然后再查看

iptables -L -n

10、Telnet 服务器 3306 端口
访问正常。

iptables 一些命令

# iptables 服务的停止命令
systemctl stop iptables
或者
service iptables stop # iptables 服务的重启命令
systemctl restart iptables
或者
service iptables restart # Saving firewall rules to /etc/sysconfig/iptables
service iptables save # 重载 iptables 文件
systemctl reload iptables
或者
service iptables reload # 查看已配置的iptables规则: iptables -n -L
iptables -n -L --line-numbers

无法访问 CentOS7服务器上应用监听的端口的更多相关文章

  1. 配置SSH隧道访问Ubuntu服务器上的MongoDB

    为了数据安全,在MongoDB的配置文件里,一般会把默认的27017端口port改为自定义的端口号,然后把允许访问的IP设为127.0.0.1(即主机本身).但是这样就会在开发的过程查看数据时带来麻烦 ...

  2. SpringMVC拦截器实现:当用户访问网站资源时,监听session是否过期

    SpringMVC拦截器实现:当用户访问网站资源时,监听session是否过期 一.拦截器配置 <mvc:interceptors> <mvc:interceptor> < ...

  3. CentOS7服务器上部署深度/机器学习环境推荐首选anaconda3

    CentOS7服务器上部署深度/机器学习环境推荐首选anaconda3,亲测~~ 因为可以创建不同的环境版本或虚拟环境 CentOS7服务器安装anaconda3后,CentOS7服务器开启后自动将a ...

  4. 浏览器通过http协议通过nginx访问ftp服务器上的文件

    1.修改nginx配置文件 2.修改nginx默认目录为ftp默认目录 3.修改成自定义路径后,并修改此目录第一行,修改为root或是nginx用户 4.重新加载 cd /usr/local/ngin ...

  5. Oracle 11g RAC 环境下单实例非缺省监听及端口配置

    如果在Oracle 11g RAC环境下使用dbca创建单实例数据库后,Oracle会自动将其注册到缺省的1521端口及监听器.大多数情况下我们使用的为非缺省监听器以及非缺省的监听端口.而且在Orac ...

  6. 配置Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志

    6月27日任务 16.4 配置Tomcat监听80端口16.5/16.6/16.7 配置Tomcat虚拟主机16.8 Tomcat日志扩展邱李的tomcat文档 https://www.linuser ...

  7. 剥开比原看代码03:比原是如何监听p2p端口的

    作者:freewind 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchai ...

  8. linux系统实现多个进程监听同一个端口

    通过 fork 创建子进程的方式可以实现父子进程监听相同的端口. 方法:在绑定端口号(bind函数)之后,监听端口号之前(listen函数),用fork()函数生成子进程,这样子进程就可以克隆父进程, ...

  9. 【网络通信】服务器端Socket监听80端口,建立连接传输数据时也是使用的80端口么?

    1. 服务器端Socket监听80端口,建立连接传输数据时也是使用的80端口么? 答:对.建立连接时服务器会分配一个新的Socket,但是用的源端口号还是80端口.套接字是由协议类型.源IP.目的IP ...

随机推荐

  1. PHP命令执行集锦

    前言 代码审计总要遇到命令执行或者说RCE,打CTF的过程中难免不会碰见,毕竟PHP是世界上最好的语言,总结一下 命令执行函数 E.g.1 <?php error_reporting(0); s ...

  2. 使用SymPy

    最近工作的原因,需要进行一些积分运算,通过一些搜索得知了SymPy,记录一下使用历程. 1. SymPy介绍 SymPy是关于Symbolic Mathematics的Python库,它旨在成为一个功 ...

  3. vue学习过程总结(07) - vue的后台服务API封装及跨域问题的解决

    以登录流程为例说明接口的封装. 1.登录调用后台的登录api 登录界面的代码 <template> <div class="login-page"> < ...

  4. 一个简单的模拟实例说明Task及其调度问题

    Task对于.NET的重要性毋庸置疑.通过最近的一些面试经历,发现很多人对与Task及其调度机制,以及线程和线程池之间的关系并没有清晰的认识.本文采用最简单的方式模拟了Task的实现,旨在说明Task ...

  5. Map的野路子

    首先有一张user数据表,数据库名称为mybatis,数据如下: 我们使用以下两种方式实现数据更新的操作. 方式一 UserMapper.java如下: /** * @description: 更改用 ...

  6. TypeSciprt webpack配置

    初始化 初始化项目 npm init -y 安装依赖 npm install ... --save-dev 依赖包列表 名称 作用 webpack 构建工具webpack webpack-cli we ...

  7. java中遗留的小问题

    一.类型转换 short s = 1; s = s + 1; //false,因为1是int类型,会损失精度 short s = 1; s += 1; //true,因为+=有自带强转 二.逻辑运算符 ...

  8. eureka自我保护机制是什么?

    当Eureka Server 节点在短时间内丢失了过多实例的连接时(比如网络故障或频繁启动关闭客户端)节点会进入自我保护模式,保护注册信息,不再删除注册数据,故障恢复时,自动退出自我保护模式.

  9. redis 淘汰策略有哪些?

    noeviction: 不删除策略, 达到最大内存限制时, 如果需要更多内存, 直接返回错误信息. 大多数写命令都会导致占用更多的内存(有极少数会例外, 如 DEL ). allkeys-lru: 所 ...

  10. ThreadLocal是什么?使用场景有哪些?

    什么是ThreadLocal? ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本. 测试代码: package ...