无法通过ssh的22端口连接服务器,无法通过3306端口连接到mysql,排查了两天错误,发现是校园网的问题,应该是限制了22端口和3306端口的出方向,改了这两个的端口就可以访问了。
修改mysql的默认端口:
环境:centos7/8,mysql5.7/8.0
- 添加新端口到mysql的配置文件:
vim /etc/my.cnf
- 加入端口(假设是3307)
port=3307
- 阿里云安全组打开3307端口
- 服务器防火墙打开3307端口
firewall-cmd --add-port=3307/tcp --permanent
- 防火墙重新加载
firewall-cmd --reload
- 启动mysql服务
service mysqld start
修改ssh的默认端口:
-
如果用本地的ssh连接工具连接不到远程服务器,就使用阿里云自己的workbench连接,如果workbench也不行,就用阿里云的vnc连接。
-
运行以下命令备份sshd服务配置文件。
cp /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
-
修改sshd服务的端口号。
-
运行以下命令重启sshd服务
systemctl restart sshd
-
防火墙放行1022端口
firewall-cmd --add-port=1022/tcp --permanent
- 防火墙重启
firewall-cmd --reload
- 安全组放行
第一次通过22
端口连不上服务器,误打误撞通过修改端口
解决了。
然后又连不到服务器的mysql,自己从头到尾排查信息,一开始以为是端口和防火墙
问题,改过来改过去,不奏效,后来以为是mysql
自己的问题,在用户权限
里改过来改过去,不奏效,后来以为是mysql版本
问题,改过来改过去不奏效,后来以为是服务器
的问题,在虚拟机上装了一个centos,安装mysql,改了改,不奏效,再后来,怀疑是navicat
自己的问题,就找了个本地的springboot项目,把url改成了服务器的地址,发现还是不奏效,再后来,索性不用3306
端口了,通过ssh
先连接到服务器,再连接服务器本地的3306端口,奏效了。
然后又买了一台服务器,新服务器还是无法通过22
端口连接到,排查问题,发现别人(不是同一个网络下的)可以通过22端口连接到我的服务器,我就不行,然后排查了自己本地的防火墙
,端口
等问题,不奏效,然后让室友试了一下,发现他也不能连接,我才发现原来是校园网
的问题,初步判定是校园网限制了对外网某些端口的访问,比如22
,3306
,因为80
端口和8080
端口,我部署好服务器上的tomcat
和nginx
之后是可以访问这两个端口的。
找到原因之后,就把之前通过ssh
连接的mysql
的端口改成了3307
,然后直接连接,发现成功。
哎,搞了两天,百度和谷歌都查完了,都没有解决我的问题,看来排查问题,有的时候不要太深,可以更广,其实中间测试过网络,当时是通过服务器和本地网络互相ping,但是本地网络是内网,不是公网ip,自然ping不通,就放过了本地网络的问题,看来还是网络方面的基础知识太薄弱。