TOP云提供高性价比云服务器租用,有中国内地/港澳台、海外等全球各地节点,TOP云国内云服务器只要有域名备案号就能直接用,无须重复备案;港澳台及海外云服务器不用备案,购买之后直接使用,省时省力省心。价格实惠,续费同价,2核2G5M仅需27元每月,8核8G50M仅需66元每月,更多配置套餐请进入下面网址了解:
TOP云总站云服务器:https://topyun.vip/server/buy.html
TOP云C站云服务器:https://c.topyun.vip/cart
在云服务器上修改默认的 SSH 端口(默认是 22)是一种常见的安全措施,可以减少被自动化工具扫描和攻击的风险。通过修改 SSH 端口,只有知道新端口的用户才能连接到服务器,从而提高安全性。
一、修改 SSH 端口的前提条件
在修改 SSH 端口之前,请注意以下事项:
确保你有其他方式访问服务器(如云服务器控制台的 VNC 或救援模式),以防配置错误导致无法通过 SSH 登录。
确保新的端口号未被占用,并且符合 IANA(互联网号码分配机构)的端口规范(建议使用 1024-65535 之间的端口)。
开放新的端口:修改 SSH 端口后,需要在云服务器的安全组(如阿里云、腾讯云等云平台的安全组)和服务器的防火墙中放行新的端口。
备份 SSH 配置文件:修改配置文件前,务必备份原始文件,以便在出错时恢复。
二、修改 SSH 端口的步骤
以下以 CentOS 和 Ubuntu 系统为例,介绍如何修改 SSH 默认端口。
1. 选择一个新端口
选择一个未被系统和其他服务占用的端口号,建议使用 1024-65535 之间的端口。例如,我们可以选择 2222 作为新的 SSH 端口。
注意:避免使用知名服务端口(如 80、443、3306 等),以减少冲突的可能性。
2. 修改 SSH 配置文件
SSH 的主配置文件通常位于:
CentOS/RHEL:/etc/ssh/sshd_config
Ubuntu/Debian:/etc/ssh/sshd_config
编辑配置文件:
sudo vi /etc/ssh/sshd_config
找到以下行(默认情况下可能是注释状态):
#Port 22
去掉注释(删除行首的 #),并将端口号修改为你选择的新端口,例如 2222:
Port 2222
如果你想保留默认的 22 端口,同时新增一个端口(例如 2222),可以同时保留两行:
Port 22
Port 2222
这样,SSH 服务会同时监听 22 和 2222 两个端口。修改完成后,保存并退出编辑器。
3. 检查新端口是否被占用
在修改配置文件之前或之后,可以检查新端口是否已被系统或其他服务占用:
sudo netstat -tuln | grep 2222
# 或者使用 ss 命令
sudo ss -tuln | grep 2222
如果没有输出,说明该端口未被占用,可以使用。
4. 配置防火墙放行新端口
修改 SSH 端口后,需要在服务器的防火墙中放行新的端口,否则外部将无法通过新端口访问 SSH 服务。
(1)在 CentOS 上配置防火墙(firewalld)
如果你的服务器使用的是 firewalld(CentOS 7/8 默认防火墙),运行以下命令放行新端口:
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
参数说明:
--permanent:表示永久生效(如果不加此参数,重启后会失效)。
--add-port=2222/tcp:放行 TCP 协议的 2222 端口。
检查是否放行成功:
sudo firewall-cmd --list-ports
(2)在 Ubuntu 上配置防火墙(ufw)
如果你的服务器使用的是 ufw(Ubuntu 默认防火墙),运行以下命令放行新端口:
sudo ufw allow 2222/tcp
sudo ufw reload
检查是否放行成功:
sudo ufw status
5. 配置云服务器安全组放行新端口
如果你使用的是云服务器(如阿里云、腾讯云、华为云等),除了在服务器本地防火墙中放行新端口外,还需要在云平台的安全组中放行新端口。
操作步骤(以阿里云为例):
登录阿里云控制台。
进入 ECS(云服务器) 管理页面。
找到你的服务器实例,点击进入实例详情。
在左侧菜单中选择 安全组。
找到绑定到该实例的安全组,点击 配置规则。
添加一条新的入方向规则:
协议类型:自定义 TCP
端口范围:2222/2222(根据你设置的新端口填写)
授权对象:0.0.0.0/0(表示允许所有 IP 访问,生产环境建议限制为你的 IP 地址)
保存规则。
不同云平台的操作界面可能略有不同,但基本逻辑一致。
6. 重启 SSH 服务
修改完配置文件后,需要重启 SSH 服务使更改生效:
CentOS/RHEL:
sudo systemctl restart sshd
Ubuntu/Debian:
sudo systemctl restart ssh
注意:如果重启失败,可能是因为配置文件中有语法错误。可以通过以下命令检查配置文件是否正确:
sudo sshd -t
如果没有输出,说明配置文件语法正确;如果有错误提示,请根据提示修复配置文件。
7. 测试新端口是否生效
在本地机器上,使用新的端口号尝试连接服务器:
ssh -p 2222 用户名@服务器IP
参数说明:
-p 2222:指定使用新端口 2222。
用户名@服务器IP:目标服务器的登录用户名和 IP 地址。
如果连接成功,说明新端口配置生效。
三、恢复默认端口(如果需要)
如果修改端口后无法连接服务器,可以通过以下方式恢复:
通过云平台控制台登录:
使用云服务器控制台的 VNC 或 救援模式 登录服务器。
修改 SSH 配置文件:
将 /etc/ssh/sshd_config 中的 Port 配置改回 22,或者添加一行 Port 22。
放行默认端口:
在防火墙和安全组中放行 22 端口。
重启 SSH 服务:
sudo systemctl restart sshd
# 或者
sudo systemctl restart ssh
四、安全建议
限制访问来源 IP:
在云平台的安全组和服务器防火墙中,限制只有你的 IP 地址可以访问 SSH 端口,避免暴露给所有人。
例如,在 ufw 中可以这样配置:
sudo ufw allow from 你的IP地址 to any port 2222
使用密钥登录代替密码登录:
配置 SSH 免密登录(基于公钥认证),进一步提高安全性。
定期检查 SSH 配置:
定期检查 /etc/ssh/sshd_config 文件,确保没有不必要的配置或潜在的安全漏洞。
监控 SSH 登录日志:
/var/log/secure(CentOS/RHEL)
/var/log/auth.log(Ubuntu/Debian)
定期查看 SSH 登录日志,及时发现异常登录行为。
SSH 登录日志通常位于:
如果你告诉我你使用的:
操作系统(如 CentOS 7、Ubuntu 20.04)
云平台(如阿里云、腾讯云)
是否已经配置了防火墙或安全组
我可以提供更具体的指导。