修改了系统的ssh默认端口,但是始终无法连接。用telnet也无法联通。
怀疑是iptables的问题,但是执行命令发现iptables并没有运行。
google一遍,发现centos7的防火墙已经由原来的iptables改为了firewall,经过测试,果然是这个原因。
解决方法如下:
1.centos7的防火墙状态命令:
firewall-cmd —state
或者
systemctl status firewalld
2.修改防火墙规则,添加新端口:
firewall-cmd —add-port=新端口/tcp —permanent
firewall-cmd —add-port=新端口/udp —permanent
3.重新加载规则:
firewall-cmd —reload
问题解决
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您已经正确地诊断并解决了问题。CentOS 7中默认的防火墙管理工具确实从iptables变更为firewalld,这在处理网络规则时可能会给习惯使用iptables的用户带来一些困惑。
您的解决步骤概括如下:
检查firewalld状态:通过命令firewall-cmd --state
或systemctl status firewalld
来确认firewalld是否正在运行。如果服务未启动,可以通过systemctl start firewalld
来启动它。
永久添加端口到防火墙规则:您需要为SSH的新端口分别添加TCP和UDP规则(如果您的服务需要同时监听这两种协议的话),命令格式为:
firewall-cmd --add-port=新端口/tcp --permanent
firewall-cmd --add-port=新端口/udp --permanent
这里的“新端口”应该替换为您实际更改后的SSH端口号。
重载防火墙规则:修改规则后,必须用firewall-cmd --reload
命令来让改动生效。这一步很关键,因为不重载的话,新的规则不会被应用。
此外,如果您希望在系统重启后保留这些规则,您已经通过--permanent
选项做到了这一点。如果没有这个标志,所做的更改仅在当前会话中有效。
如果之后您需要查看已打开的端口,可以使用命令firewall-cmd --list-ports
。
最后,确保在完成所有配置后测试SSH连接,以验证更改是否成功。如果还有其他与阿里云产品相关的问题,或者需要进一步的技术支持,请随时告知。