远程连接Linux服务器的核心答案很简单:通过SSH(安全外壳协议)连接,默认端口号是22,只需在电脑终端输入“ssh 用户名@服务器IP -p 端口号”即可完成连接。如果服务器修改了端口,需要把端口号换成实际值,整个过程不需要额外的图形界面,一个终端窗口就能搞定。
远程连接linux服务器前的准备清单
在输入命令之前,先确认三件事:服务器的IP地址、登录账号和密码(或密钥)、以及端口是否放行,这三样缺一样都会连接失败。
确认服务器IP和登录凭证
- IP地址:如果是云服务器,登录服务商控制台查看公网IP;如果是自建机房,确认内网或公网地址。
- 登录账号:绝大多数Linux默认是root,也可能创建了普通用户,admin”。
- 密码或密钥:初次登录用密码,生产环境更推荐密钥对。
这里有个容易踩的坑:很多人把IP地址记错,或者混淆了公网和私网IP,用错IP,连接自然超时,建议在服务商控制台复制IP,别手动敲。
确保远程连接linux服务器常用端口已开放
端口号是服务器上不同服务的“门牌号”,SSH默认走TCP 22端口,这个“常用端口”不只是在服务器内部开放,还要经过两道关卡:
行业共识认为,多数连接失败的原因不是命令写错,而是安全组和防火墙放行不完整,先用防火墙放行,再检查安全组规则。
电脑怎么远程连接linux服务器端口号:三种实操方式
根据你的操作系统和习惯,选择最顺手的一种方式,这里提供Windows、Mac和具体客户端工具的直连步骤。
Windows自带终端连接SSH端口
Windows 10及以上系统内置了OpenSSH客户端,不需要安装任何软件。
- 按下
Win + R组合键,输入并回车打开命令提示符。cmd
- 在窗口中输入
ssh root@服务器IP -p 22,回车。 - 首次连接会提示确认指纹,输入
yes后回车。 - 输入密码(密码输入时屏幕不显示字符,正常现象),再次回车即可登录。
这条命令里的-p 22指定端口号,如果服务器端口改了,比如2222,就把22换成2222,Windows的ssh命令和Linux完全一致,这是最快的方式。
用xshell连接linux服务器端口
Xshell是Windows用户常用的专业终端工具,支持标签页、多会话管理,操作更直观。
- 官网下载Xshell并安装,家庭和学校用户免费。
- 打开软件,点击“新建”按钮,弹出会话属性窗口。
- 在“主机”输入服务器IP,“端口号”默认显示22,按需修改。
- 协议保持SSH不变,点击“连接”。
- 首次连接弹出“SSH用户身份验证”,输入用户名和密码,勾选“记住密码”方便下次连接。
Xshell的优势在于连接多个服务器时,可以在不同标签页之间切换,还支持复制粘贴快捷键,如果你经常管理多台机器,效率比cmd高不少。
Mac和Linux系统的原生连接命令
macOS和Linux用户打开终端,直接用一行命令搞定:
ssh 用户名@服务器IP -p 端口号
ssh root@192.168.1.100 -p 2222,macOS和Linux自带的终端足够强大,没有必要装第三方工具,如果你习惯用图形化界面,也可以尝试Termius、FinalShell等工具,但本质上都封装了ssh命令。
修改linux ssh连接端口设置的完整流程
默认22端口是黑客扫描的主要目标,近年来的安全事件显示,相当一部分暴力破解攻击都集中在22端口,改端口是成本最低的加固手段。
修改sshd_config配置文件
SSH服务的核心配置在/etc/ssh/sshd_config文件里,用root权限打开它:
vi /etc/ssh/sshd_config
找到#Port 22这一行(默认注释着),去掉注释并把数字改成新端口,比如2222:
Port 2222
保存退出后,重启SSH服务让配置生效:
- CentOS/RHEL系:
systemctl restart sshd - Ubuntu/Debian系:
systemctl restart sshd
重启服务时不要断开当前连接,等新端口测试无误后再退出,一定要保留一个会话窗口,避免配置错误导致自己锁在门外。
防火墙放行新端口
改完端口,防火墙默认还是放行22,需要为新端口添加规则,以firewalld为例(CentOS 7+):
firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --reload
如果是Ubuntu的ufw防火墙:
ufw allow 2222/tcp
ufw reload
修改完防火墙后,重新在电脑上测试:ssh root@服务器IP -p 2222,能连上再考虑禁用22端口。
SELinux和云安全组的特殊处理
如果服务器开启了SELinux(可以执行getenforce查看),允许的SSH端口列表是受控的,需要把新端口加入SELinux策略:
semanage port -a -t ssh_port_t -p tcp 2222
如果不是这个命令,也可以临时关闭SELinux测试,但正式环境不建议关闭。
另外别忘了云厂商的安全组,去控制台找到实例,调整安全组规则:只放行新的2222端口,删除22端口的入方向规则,这一步经常被忽略,导致服务器内部配置全对了,外面还是连不上。
linux服务器端口不通怎么解决?排查步骤
如果连接时提示“Connection refused”或“Operation timed out”,按照以下顺序排查。
检查SSH服务运行状态和监听地址
在服务器上执行:
systemctl status sshd
如果显示active (running)说明服务正常,如果显示failed,用journalctl -u sshd查看日志定位错误。
再确认端口监听地址:
ss -tlnp | grep sshd
输出显示0.0.0:2222说明监听所有网卡,如果显示0.0.1:2222,说明sshd只监听了本机回环地址,外部无法访问,在配置文件里设置ListenAddress 0.0.0.0解决。
从电脑端逐跳测试网络连通性
先在本地执行ping 服务器IP
,确认网络链路通,不通就检查IP地址和路由,别急着找端口问题。
网络通了再测端口:
telnet 服务器IP 2222
端口开放会显示连接成功,不通会卡住然后超时,Windows系统默认没装telnet,可以用PowerShell执行:
Test-NetConnection 服务器IP -Port 2222
返回TcpTestSucceeded : True就是通了。
核对云安全组和本地防火墙的双重规则
云服务器必须确保控制台安全组放行,物理服务器必须确保机房防火墙或本地iptables放行。两者缺一不可。
一个很典型的场景:你改了端口,SELinux和防火墙都放行了,但忘了改安全组,结果端口依然不通,反过来也一样,有时候安全组放行的是22,你在服务器改成2222,外面的流量进不来,两头都要核对一致。
常见问题解答
远程连接linux时提示“port 22: Connection refused”是什么原因?
原因通常是SSH服务没启动,或者端口号不对,先执行systemctl status sshd确认服务状态,再用ss -tlnp | grep sshd确认监听端口,最后核对防火墙和云安全组是否放行了对应端口。
为什么修改完SSH端口后,新端口无法连接?
排查顺序如下:一、sshd_config改完重启服务;二、服务器防火墙放行新端口;三、SELinux策略包含新端口;四、云安全组入方向放行新端口,日常运维中,安全组这一关最容易被遗漏,优先检查。
可以用图形界面工具远程连接Linux吗?
可以,Xshell、SecureCRT都是主流选择,但底层还是调用SSH协议,传输文件时可以用Xftp配合Xshell一起使用,图形界面工具的价值在于会话管理和文件传输体验更好,连接原理与命令行完全一致。
远程连接Linux服务器端口号本身不难,难的是把环境配好,牢记默认的22端口、正确的SSH命令,再加上对防火墙、安全组和SELinux的检查思路,任何端口问题都能定位到具体环节,用SSH连接服务器就像打开一扇门,端口号是门牌,防火墙和安全组是锁,三层都对上了,自然畅通无阻。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/732011.html





