抖音优化

douyinyouhua

ssh远程服务器端口是什么意思,如何查看SSH端口号?

2026-10-13 11:02:46

SSH远程服务器端口,简单来说就是服务器上为SSH服务单独开的一个数字编号的“门”,默认是22,你在连接时必须指定这个门才能进入服务器的命令行界面。

很多新手第一次接触服务器时,都会遇到“端口”这个词,尤其是买完云服务器,想用SSH连上去管理,结果发现还要填一个端口号,你可能会想:这不就是个远程连接工具吗,直接连不就行了,为什么非要搞个端口出来?

SSH端口到底是什么

端口本质上是服务器上的一个数字标识,范围从0到65535,一台服务器有公网IP,但IP只是找到了这台机器,就像找到了你家小区,端口则是具体到某个服务,比如小区的哪一栋楼,SSH服务默认占着22号端口,你要找SSH这个服务,就得走22这个门。

具体到连接场景,你用的命令通常是:

ssh root@服务器IP -p 22

这里的-p 22就是告诉本地电脑:请通过22号端口连到对面那台服务器的SSH服务,如果不写-p,SSH客户端默认也是走22端口,因为这是行业共识。

换个角度看,端口就是IP地址的延伸,IP负责把数据包送达服务器,端口负责把数据包转交给对应的程序,SSH程序监听着22端口,收到数据就干活,其他端口的数据它一概不理会。

为什么需要单独设置端口

有人会困惑:既然SSH默认是22,为什么很多教程让你改成别的数字?原因很实际:

  • 减少恶意扫描,黑客脚本第一个扫的就是22端口,改了端口能避开绝大多数自动化攻击。
  • 服务器上可能有多重身份验证需求,比如隔离不同项目,给不同团队分配不同SSH端口。
  • 云平台安全组规则,简米云、酷番云这类服务商,在控制台里会要求你放行端口,你只有知道了SSH端口号,才能正确配置防火墙。

ssh默认端口22怎么改

这个问题几乎是所有买过云服务器的人都会问的,改端口不算复杂,但有个前提:先确保新端口能连通,再关掉旧的,否则你很可能把自己锁在服务器外面。

第一步:修改sshd配置文件

登录服务器后,找到SSH的主配置文件,路径是/etc/ssh/sshd_config,用vim打开:

vim /etc/ssh/sshd_config

找到这行:

#Port 22

ssh远程服务器端口是什么意思,如何查看SSH端口号?

把注释去掉,改成你想要的新端口,比如2222:

Port 2222

第二步:防火墙放行新端口

改完配置文件不算完,你得让防火墙放行新端口,不然连接会被拦掉,以CentOS和Ubuntu为例:

# CentOS 7+ 使用 firewalld
firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --reload
# Ubuntu 使用 ufw
ufw allow 2222/tcp

第三步:重启并测试

重启SSH服务:

systemctl restart sshd

然后在本地电脑上换个终端窗口测试:

ssh root@你的服务器IP -p 2222

确认能连上之后,再回头把22端口从防火墙里去掉,或者改回原来的限制,多花一分钟测试,比你手忙脚乱去云控制台的VNC终端里折腾要划算得多。

ssh连接不上端口22排查

很多时候不是端口没改对,而是网络层面出了问题,这类问题有个典型特征:连接时一直卡住,直到超时,提示Connection timed out。

常见原因一:安全组没放行

这是国内云厂商最常见的情况,简米云、酷番云的服务器,在控制台里有两层防火墙概念:一个是安全组,一个是系统防火墙,你系统里放行2222端口了,但安全组只放行了22,外面依然连不进来。

解决路径很明确:

  1. 登录云厂商控制台。
  2. 找到你的云服务器实例,点击“安全组”或“防火墙”配置。
  3. 添加入方向规则,协议选TCP,端口写2222,授权对象写0.0.0.0/0。
  4. 保存后立即重试连接。

常见原因二:sshd服务根本没监听

改完配置后,可以用netstat或者ss命令看SSH服务到底监听在哪个端口:

ss -tlnp | grep ssh

输出结果里会显示类似0.0.0:2222的地址,如果显示的是0.0.1:2222,说明SSH只监听了本地回环地址,外网根本访问不到,需要在配置文件里设置ListenAddress 0.0.0.0。

常见原因三:SELinux拦截

这个坑主要在CentOS上,系统开启了SELinux,而你改了端口,SELinux策略里没有这个新端口,直接拦截。

先查看SELinux状态:

getenforce

如果输出是Enforcing,那么你需要给SSH添加新端口的上下文:

semanage port -a -t ssh_port_t -p tcp 2222

ssh远程服务器端口是什么意思,如何查看SSH端口号?

没有semanage命令的话,先安装policycoreutils-python-utils,然后重复上面的操作。

常见原因四:本地网络环境限制

有些公司局域网或校园网会封锁非443、80等常用端口的外连请求,这时候改服务器端口没用,问题出在你本地网络。

一个简单的验证方法:用手机开热点,让电脑连手机网络再试一次SSH,如果通了,基本可以确定是本地网络限制,跟服务器配置无关。

SSH端口的安全加固策略

改端口只是第一步,端口本身的安全策略同样重要,行业共识认为,单靠改端口不够,多因子配合才有实际效果。

密钥登录替代密码登录

密码登录最大的问题是容易被暴力破解,22端口天天被全球各地的扫描器试探,弱密码几乎撑不过一天,改用密钥对登录,相当于把门锁换成了指纹锁。

生成密钥对:

ssh-keygen -t ed25519 -C "你的标识"

然后把公钥传到服务器:

ssh-copy-id -p 2222 root@你的服务器IP

之后在sshd_config里关闭密码登录:

PasswordAuthentication no

使用Fail2ban做自动封禁

Fail2ban会监视SSH的登录日志,发现连续失败就自动封禁对方IP一段时间,安装后默认只监控SSH服务:

systemctl enable fail2ban
systemctl start fail2ban

封禁规则默认写在/etc/fail2ban/jail.local里,可以设置maxretry(最大重试次数)和bantime(封禁秒数),多数情况下,把maxretry设为5,bantime设为3600就够用了。

端口、密钥、防火墙的配合

单独改端口只能对抗无差别脚本扫描,有目的的入侵挡不住。最佳实践是:更改高端口 + 密钥登录 + 防火墙限制来源IP。

如果你只在公司办公,可以在防火墙规则里加一条:只允许公司公网IP访问2222端口,其他IP一律丢弃,这比任何配置都有效,因为不相关的机器根本到不了SSH服务面前。

端口映射和端口转发容易混淆的地方

很多人在配置SSH时会遇到另一个概念:端口转发,比如你想从公网访问内网一台只有私有IP的服务器,光靠22端口没用,得配置端口映射。

ssh远程服务器端口是什么意思,如何查看SSH端口号?

映射和转发的核心区别在于:端口映射是路由器层面的,把公网某端口的流量转给内网某IP的某端口;端口转发是SSH本身的特性,通过SSH隧道把数据包从本地端口运到远端服务器,先说端口映射,典型场景是家里有台NAS,想在外面访问,于是在路由器里设置:外网端口9527映射到内网192.168.1.100的22端口,这样连接时写-p 9527,实际到达的是NAS的22端口。

SSH的转发则灵活得多,比如本地代理转发:

ssh -L 3307:内网数据库IP:3306 root@跳板机 -p 2222

这句话的意思是:本地电脑的3307端口,通过跳板机的SSH隧道,连接到内网数据库的3306端口,不需要暴力破解任何防火墙规则,只要SSH能通,其他端口都能借道通行。

一个需要记住的排查逻辑

以后遇到SSH连不上,别急着怀疑服务器挂了,按照以下顺序排查,很多问题能快速定位:

  1. 本地电脑先ping服务器IP,确认网络通不通。
  2. 用telnet 服务器IP 端口号试一下端口通不通。
  3. 端口不通,查云控制台安全组是否放行。
  4. 安全组没问题,登录控制台的VNC(网页终端)进系统,检查sshd服务和防火墙状态。
  5. 检查监听地址,确认SSH真正在听哪个IP和端口。

这套流程能覆盖绝大多数连接失败的情况。

SSH端口相关的Q&A

ssh端口22和2222有什么区别

22是SSH服务的默认端口,IANA官方注册,几乎所有系统开箱即用,2222是不少人改用的常见替代端口,没有特殊含义,两者在协议层面没有任何区别,改端口只是为了避开扫描和冲突。

服务器上有多个SSH实例能监听不同端口吗

能,你可以运行两个sshd进程,分别加载不同的配置文件,监听不同端口,比如一台服务器上同时监听22用于管理,监听8022用于SFTP传输,注意两个实例需要使用不同的配置文件,并且互相独立。

云服务器安全组不开放SSH端口会导致什么结果

结果为外部连接请求在到达操作系统之前就被云平台拦截,具体表现是本地ssh命令长时间无响应,最终报超时错误,此时VNC登录仍然可用,因为走的是云平台内部通道,不受安全组限制。

端口这个数字本身并不神秘,它只是网络通信中的一道门,搞清楚你的SSH走的是哪个门,从本机到云端一整条链路上有哪几道门禁,连接问题就能迎刃而解,希望这篇文章帮你理解了ssh远程服务器端口的具体含义,也知道了排查问题的着手点在哪。

相关文章

2024年,SaaS软件行业碰到获客难、增长慢等问题吗?

我们努力让每一次邂逅总能超越期待