无法访问 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. LGP6825题解

    科技的力量!!!!!!我德意志科技天下第一!!! 这是一篇需要一点儿科技的题解,但实际上这个科技我认为甚至算不上科技,太 simple 了. 首先是推柿子: \[\sum_{i=1}^n\sum_{j ...

  2. Python入门随记(3)

    1.len() 长度或规模函数 2.Unicode转为单字符用chr() 单字符转为Unicode用ord() 3.关于字符的操作函数 函数 作用 lower() 变为小写 upper() 变为大写 ...

  3. python发送邮件之宝藏库yagmail

    之前使用email模块+smtplib模块发送邮件,虽然可以实现功能,但过程比较繁琐,今天发现一个宝藏库(yagmail),可以说是炒鸡好用啦!!! 贴上实现代码,大家细品 yagmail安装 pip ...

  4. Java注释相关以及IDEA配置相关的注释

    本文章主要包括以下6个内容: 一.注释分类以及javadoc的使用 二.使用Alibaba Java Coding Guidelines规范编码. 三.IDEA配置类注释 四.IDEA配置方法注释 = ...

  5. Redis数据结构详解(2)-redis中的字典dict

    前提知识 字典,又被称为符号表(symbol table)或映射(map),其实简单地可以理解为键值对key-value. 比如Java的常见集合类HashMap,就是用来存储键值对的. 字典中的键( ...

  6. 在Windows环境下构建Lua 入门

    在Windows环境下构建Lua 一:准备软件 1.C-compiler(TDM GCC)  http://tdm-gcc.tdragon.net/download 2.Lua源代码  http:// ...

  7. Vue-cli安装步骤,搭建一个完整的 Vue 项目

    安装node环境下载 node.js 官网地址:https://nodejs.org/en/ 下载完成后打开然后一路next安装完成后打开 dos 窗口输入命令:node -v 回车会输出node的版 ...

  8. 写clone()方法时,通常都有一行代码,是什么?

    clone 有缺省行为,super.clone();因为首先要把父类中的成员复制到位,然后才是复制自己的成员.

  9. 深入理解Java虚拟机-内存分配与回收策略

    一.内存分配策略 新生代中98%的对象都是"朝生夕死"的,所以并不需要按照1:1的比例来划分内存空间,而是将内存(新生代内存)分为一块较大的Eden(伊甸园)空间和两块较小的Sur ...

  10. String类有哪些常用的方法

    String类常用方法 1.String类长度:String没有length的属性,有length()这个方法,可以获取字符串的长度. 可以求得字符串s的长度,但是该长度会包含空格. 2.indexO ...