出现无法连接问题的解决思路

防火墙规则错误

问题示例

以上是两次连接SSH的测试,第一次连接时使用“丢弃0.0.0.0/0全部端口的全部协议”防火墙参数,导致连接失败,第二次添加了“允许0.0.0.0/0的22端口的TCP协议连接”,成功连接SSH

在创建防火墙规则时,最下方的规则说明中提到:“案例: 若想让除了123.123.123.123能访问,其他IP都不能访问,则需添加2条规则(一黑一白),并把白名单规则拖到上方位置”,上述的例子就算是“一黑一白”的防火墙配置

常见问题

配置了“一黑一白”依然无法通过某端口(例如MySQL和MariaDB的3306端口)来访问服务器上的某个服务

  • 原因1

可能是因为防火墙优先级错误,如下图所示
image

丢弃0.0.0.0/0 IP和所有端口的黑名单规则必须放在所有规则的下面

  • 原因2

系统防火墙未开放,在雨云的云服务器管理面板里的防火墙可以形象的理解为是你服务器的出入境管理员,而在你服务器系统中还有一个防火墙,系统防火墙可以形象的理解为小区保安,而你运行的服务和进程都住在这个小区中,毕竟出入境管理员不可能跟小区保安打招呼说“xxx确认有权限了”,这时候就会导致虽然雨云防火墙放行了,但系统防火墙没有放行,导致无法访问,最简单的解决方法就是搜索“你的系统+如何关闭防火墙”

  • 原因3(不常见)

如果你使用1Panel等基于docker来部署应用的管理面板,docker出现玄学问题或容器的网络连接方式设置错误都会导致无法外部连接,此方法处理起来较为复杂

但如果是使用1Panel,那么需要手动查看连接方式,如MySQL在宝塔或其他面板中均可通过127.0.0.1或者loaclhost进行本地连接,但如果使用1Panel,那么则需要填写“mysql:3306”来连接,如果修改过端口,本地连接依然是使用“服务名:默认端口”来连接,但远程连接会变为“服务器IP:配置的端口”

  • 原因4(几乎不可能遇到)

服务器安装了CSF,但未正确配置,CSF需要同时配置“允许哪个端口流量进入服务器”,“哪个端口流量输出服务器”才行,但雨云防火墙或系统防火墙的管理工具均为只设置一个端口就同时放开了这个端口的入流量与出流量

端口开放错误

以下是常见服务的端口(雨云禁止的服务所使用的端口将不列出)
格式为“名称:端口-协议”
HTTP:80-tcp
HTTPS:443-tcp
QUIC:443-udp
SSH:22-tcp
Windows远程桌面:3389-tcp
Windows远程桌面传输优化:3389-udp
FTP:21-tcp
宝塔面板:8888-tcp(新版已改为默认随机端口-tcp)
PHP-FPM:9000-tcp
CyberPanel:8090-tcp
OpenLiteSpeed Web Admin:7080-tcp
MySQL和MariaDB:3306-tcp
Redis:6379-tcp
MemCached:11211-tcp
Alist:5244-tcp
我的世界Java服务端:25565-tcp
我的世界基岩版服务端:19132-udp
Rust游戏服务器:28015-udp
Rust+服务:28082-tcp
SQL Server:1433-tcp

最后

TCP协议下135,137,138,139 局域网相关默认端口,应关闭
我已经发现好多因为没关这些端口导致暴露服务器信息的了(多为确认这是源服务器IP用的)