恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

云服务器安全加固:从SSH端口更换到OpenClaw部署的完整指南

  • 首页
  • 资讯中心
  • /
  • 云服务器安全加固:从SSH端口更换到OpenClaw部署的完整指南

相关资讯

Table as a Modality for Large Language Models 2026/8/16 21:35:17
从PE启动盘制作到UEFI引导修复:手把手解决Windows系统无法启动问题 2026/8/16 21:35:17
DrawingBench: Evaluating Spatial Reasoning and UI Interaction Capabilities of Large Language Mode... 2026/8/16 21:35:17

最新资讯

Excalidraw本地化部署实战:从Docker到生产环境的私有白板搭建
CTF PHP代码审计实战:从文件包含到反序列化漏洞利用
视觉特征-自监督-对比学习:CLIP
戴尔灵越14R笔记本拆解升级全攻略:清灰换硅脂与SSD升级实战
AI Agent Skill实现播客到小红书图文自动创作:工作流拆解与开源实践
【Android开发日记01】新拟态汉服管理APP - 已开源

今日推荐

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码
【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码
隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

本周热门

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码
【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码
隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

云服务器安全加固:从SSH端口更换到OpenClaw部署的完整指南

发布时间:2026/8/16 21:40:17
云服务器安全加固:从SSH端口更换到OpenClaw部署的完整指南 1. 为什么“养龙虾”的第一步是换掉SSH的22端口最近在折腾OpenClaw这类AI工具链的云服务器部署发现一个挺有意思的现象很多新手朋友拿到云服务器后第一件事就是兴奋地跑各种安装脚本从Docker到Ollama再到OpenClaw忙得不亦乐乎。但往往忽略了最基础、也最致命的一步——服务器安全。这就像你准备养一池子名贵的龙虾比如你的AI模型、数据和应用却把养殖场的正门钥匙SSH的22端口直接挂在网上还贴了张“内有龙虾欢迎光临”的告示。结果可想而知龙虾还没养大可能就被“不速之客”捞走了。这里的“龙虾”指的就是你部署在云服务器上的宝贵资产可能是你辛苦调教的OpenClaw智能体可能是正在运行的Ollama大模型服务也可能是你的个人项目数据。而“养龙虾”的第一步绝不是急着投喂饲料安装软件而是先加固池塘的围栏。在云服务器安全里更换默认的SSH端口就是加固围栏最直接、最有效的一步。SSHSecure Shell是我们远程管理服务器的生命线但全世界都知道这条生命线的默认入口是22端口。每天都有无数的自动化脚本在扫描互联网上所有开放22端口的IP尝试用弱密码或已知漏洞进行爆破登录。不换端口就等于把你的服务器暴露在枪林弹雨之下安全纯粹靠运气。所以这篇内容我们就聚焦在Ubuntu 20.04及以上系统上如何稳妥、彻底地更换SSH端口。这不仅是OpenClaw部署的“安全第一步”也是任何云服务器初始化时都应该做的“标准动作”。我会把原理、操作、以及我踩过的坑都讲清楚让你不仅能“换掉”还能理解“为什么这么换”以及换完之后如何验证和应对意外情况。2. SSH服务核心从sshd_config到systemd的掌控链路要安全地更换端口不能只知其然必须知其所以然。你得清楚你改的每一个配置背后对应的是哪个服务组件以及它们是如何协同工作的。在Ubuntu 20.04的系统里这条链路的核心是OpenSSH服务端sshd和systemd这个系统和服务管理器。2.1 OpenSSH服务端配置文件/etc/ssh/sshd_config这是SSH服务的行为准则。所有关于SSH服务如何运行的参数都在这里定义包括监听的端口、允许的认证方式、用户登录限制等等。当我们说“更换SSH端口”本质上就是修改这个文件里的Port指令。默认情况下该文件里会有一行#Port 22注意它默认是被注释掉的以#开头但SSH服务默认行为就是监听22端口。我们要做的就是取消注释或者添加一个新的Port行。一个更安全的做法是多端口监听比如Port 22 Port 23456这样配置后SSH服务会同时监听22和23456端口。在测试新端口完全可用之前保留22端口是一个重要的“逃生通道”防止配置错误导致自己也无法登录。待新端口确认无误后再回来删除Port 22这一行只保留新端口。2.2 Systemd服务的管家在Ubuntu 20.04上SSH服务是由systemd来管理的。这意味着启动/停止/重启服务我们不再使用老旧的/etc/init.d/ssh restart命令而是使用systemctl命令例如sudo systemctl restart ssh。服务状态查看sudo systemctl status ssh可以查看服务是否在运行、最近的日志、以及是否有错误。开机自启sudo systemctl enable ssh确保服务在系统启动时自动运行。理解这两者的关系至关重要我们修改/etc/ssh/sshd_config只是改变了“行为准则”要让新准则生效必须通过systemd“管家”去重新通知SSH服务即重启服务。同时systemd也是我们排查服务故障的第一站。2.3 防火墙端口的守门人仅仅修改SSH配置并重启服务端口就开放了吗不一定。这还取决于系统的防火墙。Ubuntu 20.04默认安装并启用了ufwUncomplicated Firewall防火墙。如果防火墙是激活状态它默认会阻止所有传入连接除非你明确放行规则。所以完整的链路是在sshd_config中声明要监听新端口。通过systemctl重启SSH服务让它开始尝试监听新端口。在防火墙如ufw中放行新端口的传入流量。这三步缺一不可。很多人在第二步和第三步之间栽跟头修改了配置却连不上就是因为防火墙把连接挡在了外面。3. 实操演练一步步更换SSH端口并验证理论清楚了我们开始动手。请务必在现有的SSH连接会话中操作或者通过云服务商提供的VNC/控制台登录操作以防操作失误导致当前连接中断而无法恢复。3.1 备份原始配置文件好习惯从备份开始任何重要文件修改前先备份这是铁律。sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup.$(date %Y%m%d)这条命令会将原配置文件复制一份并在文件名后加上当天日期便于追溯。3.2 编辑SSH服务配置文件使用你熟悉的文本编辑器比如nano或vim。sudo nano /etc/ssh/sshd_config找到关于Port的行。通常在第13行左右。你会看到#Port 22我们的策略是先添加再禁用。在这行下面添加一个新的端口号。端口号范围是1-65535但应避免使用众所周知的端口如80、443和小于1024的“特权端口”。建议在10000-65535之间选择一个比如23456。#Port 22 Port 23456现在SSH服务会同时监听22端口和23456端口。保存并退出编辑器在nano中是CtrlX然后按Y确认再按Enter。注意选择端口时可以稍微“冷门”一点但不要用2222,22222这种过于明显的替代端口因为扫描器也会扫这些常见替代端口。随机一个5位数是不错的选择。3.3 重启SSH服务使配置生效执行以下命令sudo systemctl restart ssh然后立即检查服务状态确保重启成功没有报错sudo systemctl status ssh --no-pager -l重点查看输出中是否有“Active: active (running)”字样以及下面是否有红色的“error”或“failed”信息。如果状态是active通常意味着配置语法正确服务已重新加载。3.4 配置防火墙放行新端口现在需要告诉防火墙允许外部连接到我们的新端口。首先查看UFW状态sudo ufw status如果状态是inactive说明防火墙没开你可以跳过这一步但强烈建议启用防火墙并精细配置。如果状态是active则需要添加规则。sudo ufw allow 23456/tcp这条命令允许TCP协议访问23456端口。接着重新加载UFW规则sudo ufw reload再次检查状态确认新规则已生效sudo ufw status numbered你应该能在输出列表中看到类似这样的一行[ 1 ] 23456/tcp ALLOW IN Anywhere3.5 关键测试在新端口上创建新的SSH连接这是最核心的验证步骤。千万不要关闭当前的SSH连接窗口打开一个新的终端窗口或标签页尝试用新端口连接服务器。ssh -p 23456 your_usernameyour_server_ip将your_username和your_server_ip替换为你的实际用户名和服务器公网IP。如果连接成功恭喜你已成功在新端口上登录。现在你有了两个有效的SSH连接旧端口和新端口。如果连接失败不要慌你还有当前的连接可以排查。常见的失败原因和排查步骤我们放在下一节详细讲。3.6 禁用旧端口并最终确认假设新端口23456测试连接完全正常。现在我们回到最初的SSH连接窗口进行最终配置。再次编辑/etc/ssh/sshd_config文件sudo nano /etc/ssh/sshd_config将之前添加的两行改为#Port 22 Port 23456即确保Port 22被注释只有Port 23456生效。保存退出。再次重启SSH服务sudo systemctl restart ssh现在SSH服务只监听23456端口。我们可以用netstat或ss命令来验证sudo ss -tlnp | grep sshd或者sudo netstat -tlnp | grep sshd输出应该只显示你的新端口例如:23456而不再有:22。最后更新防火墙规则拒绝旧端口的连接虽然服务已经不听了但防火墙规则清理一下更干净sudo ufw delete allow 22/tcp sudo ufw reload至此SSH端口更换的核心操作全部完成。4. 避坑指南连接失败的完整排查链路在实际操作中从第3.5步“测试新连接”开始就可能遇到问题。下面是我总结的一套完整的排查链路你可以像侦探一样一步步排除可能性。4.1 现象新端口连接超时或拒绝连接首先在新终端里执行连接命令时如果长时间卡住后显示“Connection timed out”或者立刻显示“Connection refused”排查思路如下检查SSH服务状态与配置语法回到原连接窗口运行sudo systemctl status ssh。如果服务状态不是active (running)或者有明确的错误信息如“Failed to listen on port”说明配置有问题。重点检查/etc/ssh/sshd_config文件的语法特别是Port指令后面是否跟了正确的数字是否有拼写错误。可以用sudo sshd -t命令测试配置文件语法它会报告任何语法错误而不重启服务。确认服务是否监听在新端口运行sudo ss -tlnp | grep 23456将23456换成你的端口。如果没有任何输出说明SSH服务根本没有在这个端口上监听。原因可能是配置文件修改后没有重启SSH服务。请执行sudo systemctl restart ssh。配置文件中Port指令仍然被注释或写错位置。与SELinuxUbuntu默认不安装或AppArmorUbuntu使用有关。Ubuntu上SSH的AppArmor配置文件通常不会阻止监听非特权端口但极端情况下可以检查sudo aa-status看看是否有关于sshd的拒绝日志。检查防火墙UFW规则运行sudo ufw status numbered确认你的新端口如23456的规则是否存在且是ALLOW。如果不存在用sudo ufw allow 23456/tcp添加。如果防火墙根本没开 (inactive)那问题就不在防火墙。检查云服务商的安全组/网络ACL这是最容易忽略、也最致命的一环云服务器如阿里云、腾讯云、AWS等除了操作系统自身的防火墙在虚拟网络层还有一层安全组Security Group或网络访问控制列表ACL。你必须在云服务商的控制台里找到你这台云服务器所属的安全组添加入站规则允许你的IP地址或0.0.0.0/0以允许所有IP但不推荐访问你设置的新TCP端口如23456。很多朋友改了系统配置和UFW却忘了这里导致连接始终无法到达服务器。检查本地网络或ISP极少数情况下你本地网络或互联网服务提供商ISP可能会封锁某些端口。可以尝试换一个端口号比如从23456换成34567重复上述配置步骤看是否能连通。4.2 现象连接被重置或立即失败如果错误信息是“Connection reset by peer”或快速失败可能的原因端口冲突你选择的新端口已经被系统上的其他服务占用。用sudo ss -tlnp | grep :你的端口号或sudo lsof -i :你的端口号检查。如果被占用换一个端口。SSH服务崩溃配置文件有严重错误导致sshd进程无法启动。查看详细日志sudo journalctl -u ssh --since “5 minutes ago” -xe。日志会给出明确的错误行。4.3 建立“逃生舱”预案在整个操作过程中最坏的情况是你修改了配置重启了服务关闭了当前连接然后发现新端口连不上。你被锁在服务器外面了。对于云服务器你有最后一道保障云服务商控制台/VNC几乎所有主流云服务商都提供基于网页的VNC或“连接管理终端”功能。即使SSH完全瘫痪你也可以通过这个“后门”登录到服务器的本地控制台去修正错误的配置文件。在开始操作前请务必确认你知道如何进入你所用云平台的这个控制台。一个更稳妥的“逃生舱”做法是在修改配置前先通过云平台控制台在安全组里临时添加一条允许你本地IP从任意端口或一个备用端口访问的规则。这样即使SSH配置出错你还可以通过这个备用通道进行修复。5. 进阶配置与安全加固建议成功更换端口只是基础安全的第一步。结合OpenClaw等服务的部署我们可以做得更多。5.1 完全禁用密码登录使用SSH密钥对端口改了但如果你还在用密码登录风险依然存在。暴力破解工具在找到端口后下一步就是猜密码。最根本的解决方法是禁用密码认证只允许更安全的SSH密钥对登录。生成密钥对在本地电脑上操作ssh-keygen -t ed25519 -C “your_emailexample.com”按照提示一般直接回车使用默认路径~/.ssh/id_ed25519和空密码或设置一个强密码。将公钥上传到服务器在本地电脑上操作ssh-copy-id -p 23456 your_usernameyour_server_ip这条命令会自动将你的公钥~/.ssh/id_ed25519.pub内容追加到服务器对应用户的~/.ssh/authorized_keys文件中。在服务器上禁用密码认证编辑/etc/ssh/sshd_config确保以下设置PasswordAuthentication no PubkeyAuthentication yes然后重启SSH服务sudo systemctl restart ssh。现在只有拥有对应私钥的电脑才能登录安全性大幅提升。请务必妥善保管好本地~/.ssh/目录下的私钥文件。5.2 使用Fail2ban阻止暴力破解即使换了端口、用了密钥扫描和尝试登录的“噪音”依然会有。Fail2ban可以监控系统日志当发现同一个IP在短时间内多次尝试登录失败时自动将其IP加入防火墙黑名单一段时间。安装Fail2bansudo apt update sudo apt install fail2ban -yFail2ban默认配置通常就够用它会自动读取/var/log/auth.log等日志文件。你可以通过sudo systemctl status fail2ban查看其运行状态。5.3 为SSH服务配置系统资源限制systemd调优在部署OpenClaw等资源密集型应用时可能会遇到系统资源紧张的情况。我们可以通过systemd为SSH服务设置一些资源限制防止它因资源问题异常退出或者影响其他关键服务。编辑SSH服务的systemd单元覆盖文件sudo systemctl edit ssh这会打开一个编辑器你可以添加如下内容例如限制内存和CPU[Service] MemoryLimit512M CPUQuota50%保存退出后执行sudo systemctl daemon-reload和sudo systemctl restart ssh使配置生效。这样SSH服务最多使用512MB内存和50%的单个CPU核心。这对于一个通常很轻量的SSH服务来说已经足够同时避免了它失控占用过多资源。5.4 应对“云服务器养龙虾”场景的额外考量当你把服务器用于运行OpenClaw、Ollama、Docker容器等“养龙虾”应用时端口规划除了SSH端口你还需要为OpenClaw的Web界面默认可能是3000端口、Ollama的API端口默认11434、以及其他可能的后端服务如数据库规划端口。建议在云平台安全组和服务器UFW中仅精确放行必要的端口而不是大范围开放。服务依赖确保SSH服务的稳定是维护其他所有服务的基础。在/etc/ssh/sshd_config中可以考虑将ClientAliveInterval和ClientAliveCountMax参数调大一些防止因网络波动导致的长连接断开这在长时间模型推理或文件传输时很有用。备份与回滚像对待sshd_config一样对你所有的应用配置文件如OpenClaw的配置、Docker的Compose文件进行版本管理和备份。在做出任何重大变更前先通过SSH做好快照或备份。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号