Linux下连接服务器最直接的方式是通过SSH(Secure Shell)协议在终端中执行命令,以root或其他用户身份登录远程主机,前提是你拥有服务器的IP地址、端口号和登录凭据。下面我将从连接前的准备开始,实际操作到常见问题排查,一步步拆解这个过程。
Linux怎么连接网络连接到服务器:连接前的准确定位
连接到服务器之前,先要明确你的目标服务器信息,绝大多数情况下,你手里会有以下几项参数:
- IP地址:云服务器公网IP或内网IP,形如
168.1.100或95.xx.xx - 端口号:SSH默认使用
22端口,若服务商修改过则需用-p参数指定 - 用户名:
root或云服务商默认创建的ubuntu、centos - 登录方式:密码或密钥对(
.pem或.key文件)
这里有一个常见误区需要说明:Linux连接服务器不依赖图形界面,即使你的电脑上只有纯命令行,依然可以通过SSH实现完整的服务器管理,很多初学者卡在第一步误以为必须安装某种客户端软件,实际上Linux系统自带ssh命令,无需额外安装。
Linux远程连接服务器的三种核心方式
虽然SSH是标准答案,但具体执行时还存在命令行与图形化工具的差异,以下按实用程度排序。
Linux命令行连接服务器(最常用)
打开你的Linux终端(Terminal),直接输入:
ssh root@47.95.xx.xx
回车后会提示输入密码,输完回车即可登录,如果服务器SSH端口被修改为2222,命令变成:
ssh -p 2222 root@47.95.xx.xx
这里有个细节值得注意:第一次连接时系统会询问你是否信任该主机,输入yes回车即可,之后系统将它写入~/.ssh/known_hosts文件。
Linux使用密钥连接服务器(更安全)
密钥登录通过公钥加密完成身份验证,避免密码被暴力破解,操作分两步:
- 生成密钥对(在本地Linux执行):
ssh-keygen -t rsa -b 4096
一路回车,默认生成在~/.ssh/id_rsa(私钥)和id_rsa.pub(公钥)。
- 上传公钥到服务器:
ssh-copy-id root@47.95.xx.xx
这条命令会自动将本地的公钥追加到服务器~/.ssh/authorized_keys中,之后连接时只需:
ssh -i ~/.ssh/id_rsa root@47.95.xx.xx
借助终端工具连接Linux服务器
如果你的使用场景更偏向本地Windows系统,但服务器是Linux,那么图形化SSH工具是不错的选择,常见的终端软件包括Xshell、SecureCRT、MobaXterm、FinalShell等。
以Xshell为例,新建会话时填入主机IP、协议选SSH、端口22,然后在“用户身份验证”中选密码或密钥,保存后双击连接即可,这类工具本质上是SSH命令的图形化封装,方便管理多台服务器。
Linux服务器连接完成后如何验证与基础操作
成功登录后,命令行提示符会变成root@hostname:~#或user@hostname:~$,这意味着你已身处远程服务器内部,此刻的每一条命令都在远程机器上执行。
常用验证命令:
whoami:确认当前登录用户hostname:查看服务器主机名cat /etc/os-release:了解系统版本ifconfig或ip addr:查看服务器IP信息
实际操作中,建议先执行一条命令测试网络连通性(在服务器上):
ping -c 4 baidu.com
如果返回延迟数据,说明服务器外网连出正常。
Linux怎么连接网络到服务器:常见卡点与排查方向
即便命令正确,连接失败的情况依然高频发生在网络层面和服务配置层面。
本地网络到服务器的链路问题
这种情况下,终端会长时间卡在Connecting to ...或提示Connection timed out,先检查:
- 本地是否能通外网:
ping 114.114.114.114,不通则检查本机路由 - 服务器是否在线:
ping服务器IP,不通说明防火墙或安全组拦截了ICMP - 安全组规则是否放行22端口:大多数云厂商(简米云、酷番云)在控制台都有“安全组”配置,必须确保入方向放行TCP 22端口
SSH服务本身未启动或端口不对
如果连接报Connection refused,大概率是服务器上的ssh服务没在运行,这种场景多见于自建虚拟机或物理机,远程无法直接访问时,需要借助云控制台的VNC登录,再执行:
systemctl start sshd systemctl enable sshd
如果默认端口被修改,连接时务必加-p参数,端口不匹配时,多数客户端会直接报Connection refused或No route to host。
认证失败:密码错误或密钥权限不对
密码错误时,服务器端会记录Failed password日志,客户端提示Permission denied, please try again,这里有一个常见细节:密钥文件权限不能太开放,否则会被拒绝,在本地执行:
chmod 600 ~/.ssh/id_rsa
未知主机指纹验证失败
当服务器重装系统或IP被重新分配后,再次连接可能出现REMOTE HOST IDENTIFICATION HAS CHANGED的警告,这是因为known_hosts文件缓存了旧的公钥,解决办法是移除旧记录:
ssh-keygen -R 47.95.xx.xx
之后再重新连接即可。
Linux常用连接命令速查对比
| 场景 | 命令或操作 | 适用情况 |
|---|---|---|
| 密码登录 | ssh user@ip |
最简单,首次连接推荐 |
| 指定端口 | ssh -p 端口 user@ip |
修改过SSH默认端口 |
| 密钥登录 | ssh -i 密钥路径 user@ip |
生产环境更安全 |
| 上传文件 | scp 本地文件 user@ip:/远程路径 |
需要复制配置或代码 |
| 断线重连 | ssh -o ServerAliveInterval=60 user@ip |
网络不稳定时防掉线 |
这张表涵盖日常90%以上的操作需求,按行业共识来看,生产环境强烈建议使用密钥+密码双重认证,只开密码存在较大概率被字典攻击。
Linux命令行连接服务器时文件传输的细节
既然是连接服务器,必然涉及上传下载文件,除了scp,还可考虑sftp交互式操作:
sftp user@ip
进入sftp后,put是上传,get是下载,相比scp,sftp支持列目录和定点跳转,适合少量文件频繁操作。
Linux服务器连接中root与普通用户的选择
云服务器厂商默认给的登录账号往往是普通用户(比如ubuntu),而非直接使用root,登录后需要提权再执行管理命令。
普通用户切换到root:
sudo -i
查看当前用户的权限:
sudo -l
提权操作是Linux连接服务器的基础能力,业内专家指出,日常运维建议始终使用普通用户操作,仅在需要时提权,降低误操作风险。
Linux连接服务器常见故障问答
Q1:连接提示“Connection timed out”怎么解决?
优先检查安全组或防火墙策略是否放行了目标端口,在云服务器控制台确认入方向规则,本地Linux再执行telnet 47.95.xx.xx 22测试端口连通性,如果超时,大概率是防火墙拦截,而非命令错误。
Q2:密钥登录提示“Permissions 0777 for ‘xxx.pem’ are too open”怎么办?
密钥文件权限过宽会被SSH安全机制拒绝,执行chmod 400 xxx.pem将私钥权限收紧,然后重新连接,这个问题在下载云厂商的.pem文件后非常常见。
Q3:连上服务器后,如何确认自己的连接是安全的?
连接信息都在/var/log/secure或/var/log/auth.log中,可查看登录来源IP和验证方式,建议确认sshd_config中是否允许PasswordAuthentication,生产环境关闭密码登录可有效降低风险,凭此日志可以观察是否有异常IP尝试爆破登录。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/797447.html


