在Linux中打开网络连接到服务器,核心操作就是使用SSH协议,通过ssh 用户名@服务器IP命令建立远程会话。绝大多数Linux服务器不提供图形界面,日常管理全靠这种命令行连接方式,你只需要一台能联网的电脑,装好SSH客户端,就能像坐在机房前一样操作千里之外的机器。
连接前的准备工作
动手之前,先确认三件事:服务器IP地址、登录用户名、认证凭证(密码或密钥),这三样缺一不可,就像开门需要钥匙一样,如果是云服务器,这几项信息通常在购买后由服务商发到你的邮箱或控制台里。
确认完信息,先在本地电脑上测试网络是否真的能抵达服务器,打开终端执行:
ping -c 4 你的服务器IP
这里不建议打开网络连接到服务器的操作直接跳过这一步,如果看到连续返回的响应时间和TTL值,说明网络链路通畅,如果提示请求超时,可能是服务器禁了ICMP协议,也别慌,云厂商的安全组规则通常默认屏蔽ping,并不能直接断定服务器宕机,可以继续往下走。
linux服务器怎么连接网络
网络上关于linux服务器怎么连接网络的问答非常多,但多数停留在安装命令的层面,完整流程分为两端:服务器端开启SSH服务、客户端发起连接。
服务器端开启SSH服务
多数Linux发行版默认自带OpenSSH服务端,但部分精简安装的版本没有装,先检查一下:
systemctl status sshd
如果提示Unit sshd.service could not be found,说明没安装,用包管理器装一个:
# Debian / Ubuntu 系 sudo apt update && sudo apt install openssh-server -y # CentOS / RHEL / Rocky 系 sudo yum install openssh-server -y
装好后启动并设置开机自启:
sudo systemctl start sshd sudo systemctl enable sshd
确认服务在监听状态:
ss -tlnp | grep 22
看到0.0.0:22或::22,说明SSH服务已经就绪,等待着你的连接请求。
防火墙放行22端口
云服务器除了在系统内部使用firewalld或ufw管理防火墙,必须同步放行安全组入方向的TCP 22端口,这条规则卡掉了大量新手,特别是在docker容器与真机之间有端口映射时更容易混淆,只有两端都放行,linux连接远程服务器命令才能真正生效。
# firewalld sudo firewall-cmd --permanent --add-port=22/tcp sudo firewall-cmd --reload # ufw sudo ufw allow 22/tcp
本地虚拟机或物理服务器只需处理系统防火墙,云服务器则务必检查控制台的安全组配置。
linux连接远程服务器命令详解
一切就绪后,执行最常用的命令:
ssh root@192.168.1.100
回车后输入密码,只要看到欢迎信息和root@hostname:~#提示符,连接就成功了,日常工作中还有几个高频变体,根据实际场景选择。
指定端口连接
如果服务器的SSH服务不是跑在默认的22端口(出于安全考虑,不少生产环境会改掉),用-p参数:
ssh -p 2222 admin@192.168.1.100
使用密钥文件连接
如果你从云服务商下载过.pem格式的密钥文件,用-i指定路径:
ssh -i /path/to/your-key.pem root@192.168.1.100
文件的权限不能太宽松,否则会被拒绝,先执行:
chmod 400 /path/to/your-key.pem
内网穿透场景
如果你的服务器在内网、没有公网IP,就需要借助跳板机中转,或者用frp、Tailscale这类工具打隧道,连接方式会变成先连跳板机再连目标机,或者直接使用-J参数实现一条命令穿透:
ssh -J jump_user@跳板机IP target_user@目标内网IP
这个场景在中小企业搭测试环境时经常出现,值得提前了解。
免密登录和密码登录哪个安全
这是一个老生常谈,却总能吵起来的话题,直接说共识:密钥登录的安全性远高于密码登录,原因很直白密码是字符串,存在被暴力破解和撞库的可能;而密钥对是非对称加密,私钥不会在网络上传输,这不代表密码登录就该被一棍子打死,关键是看你的使用场景。
从几个维度对比一下:
| 对比维度 | 免密登录(密钥) | 密码登录 |
|---|---|---|
| 抗暴力破解能力 | 极高,几百万次尝试也撬不开 | 较低,弱密码分分钟被扫出来 |
| 操作便捷度 | 配置完成后零输入,一键登录 | 每次都要敲密码,批量操作抓狂 |
| 密钥泄露风险 | 私钥文件需要妥善保管,泄露比密码更难察觉,因为一旦泄露,攻击者就等于有了永久的钥匙 | 密码泄露及时修改即可恢复,泄露渠道也相对可控 |
| 适用场景 | 生产环境、自动化脚本、频繁登录 | 临时使用、自己的低配测试机、内网环境 |
如果选择密钥登录,配置步骤很简单,在本地电脑生成密钥对:
ssh-keygen -t ed25519 -C "你的备注"
一路回车生成在~/.ssh/目录下,然后手动把公钥追加到服务器的authorized_keys文件里,也可以用一条命令完成:
ssh-copy-id -i ~/.ssh/id_ed25519.pub 用户名@服务器IP
完成后再登录,就不需要输密码了,但需要注意,
不少云厂商的默认镜像强行禁用了密码登录,你第一次用密钥连上后,如果想改成密码登录,需要手动编辑/etc/ssh/sshd_config中的PasswordAuthentication选项,改完记得重启服务。
连接不上网络时的排查路线
踩坑最多的环节就是linux服务器连不上网络或者连上后立刻断线,先给你一套标准的排查路线,沿着路由器一层一层剥开问题。
第一步定位网络层问题
用ping还是ping但这次要看更细致的信息,如果完全不通,执行traceroute查看卡在哪一跳:
traceroute -n 你的服务器IP
如果输出结果在第3跳之后全是,那多半是上游网络运营商的问题,跟服务器本身无关,如果第一跳都出不去,检查本地路由表:
ip route show
第二步定位端口问题
ping通了,但ssh就是连不上,很可能是22端口被拦了,使用telnet或者nc做一次快速探测:
nc -vz 你的服务器IP 22
看到Connected,端口通畅;看到Connection refused,SSH服务没起来或监听地址不对;看到超时,防火墙或安全组的嫌疑最大。
第三步排查SSH服务状态
登不上服务器,有很多时候是宝塔面板改端口忘了加防火墙规则的典型案例,登上之后检查:
sudo tail -50 /var/log/secure # CentOS系 sudo tail -50 /var/log/auth.log # Debian/Ubuntu系
重点留意Failed password或Connection refused这些关键字,日志会告诉你服务端到底经历了什么,同时这也是发现暴力破解方式的有效手段。
提升连接速度与稳定性的实用技巧
你是否有过这种经历:明明是本地带宽拉满,偏偏linux服务器传输带宽跑不满,连接远程服务器的时候延迟高得离谱,这个问题在跨境场景非常常见,不光有带宽限制,还有国际链路拥堵和防火墙干扰的因素,其中国内linux服务器访问慢的问题尤其明显,尤其是美国、新加坡、迪拜甚至小众地区的VPS,晚高峰时段有些节点连半个包都回不来,常见的处理办法包括:
- 改用加速线路:不少主流云厂商(如简米云、酷番云)提供BGP多线接入,延迟和丢包率远优于普通单线机房,如果是个人用户自行购买的海外VPS,尽量跳过被反复滥用导致拥塞的CN2 GT线路,优先选择CN2 GIA甚至物理专线方案,即便价格相对较高,游戏延迟和更新时间反而更稳定可控。
- 配置SSH保活:经常在本地写代码写到一半,ssh就断了,这是NAT超时踢掉的,在
~/.ssh/config里加两行配置,长期连接的稳定性立刻上一个台阶:
Host ServerAliveInterval 30 ServerAliveCountMax 3
- 用压缩传输:如果你的服务器带宽吃紧,在ssh命令后追加
-C参数开启压缩,对于文本类型的配置文件,这个优化几乎能帮你挤出一倍多的有效传输空间: - 善用ControlMaster复用连接:对多窗口办公的用户来说,重复执行linux连接远程服务器命令的开销其实不小,包括TCP握手、密钥协商、Shell初始化,通过Config复用,避免掉整个握手的计算量:
Host
ControlMaster auto
ControlPath ~/.ssh/controlmaster-%r@%h:%p
ControlPersist 300
配置完成后,第一次正常输入密码,之后开新终端连接同一台机器,几乎瞬间就能进Shell,体感上的快非常直观。
本地到服务器的传输速度慢,不一定就是线路问题,也可能你用了单线程工具,用scp传大文件时加上-C并换成并行参数,速度提升会非常明显。
延伸场景工具选择建议
不少用户会使用FinalShell或Xshell这类图形化管理工具,精美的界面确实好看,但国内网络环境下,尤其是部署SQL Server或复杂应用时,纯命令行的选项反而更可靠,如果你习惯在Windows上操作,基于虚拟机的X410或WSL的ssh更加轻量,WSL环境还支持你直接复用本地的公私钥机制,相对而言,国内linux服务器访问慢的问题,在纯SSH + ProxyJump的模式下反而更好排查,因为你完全掌控了从本地到远端的所有链路。
常见问题解答
SSH连不上但ping通,问题出在哪?
很大概率是端口没放行或SSH服务没起来,先检查22端口有没有监听,再检查防火墙和安全组规则,最后查看认证日志定位具体原因。
为什么用密钥登录还是提示Permission denied?
检查三件事:本地私钥路径是否正确、服务器端authorized_keys的权限是否设置为600、~/.ssh目录权限是否为700,权限错位是这里最高频的翻车原因,很多时候甚至不是内容写错了,纯粹是文件所有者或权限位错了导致SSH策略直接拒绝读取。
密码登录和密钥登录可以同时开启吗?
可以,将sshd_config里的PasswordAuthentication yes设为yes即可,密钥登录依然优先,但建议仅在内外网隔离的测试环境这么做,暴露在公网时要慎重权衡暴力破解带来的额外压力,开启后,弱密码往往是整个安全链路里最薄弱的缺口,甚至一个普通的字典扫描都能在一分钟内撞开它,因为SSH日志里会连续出现大量无效登录记录,几乎瞬间就会染黑你的审计日志。
说到底,linux中怎么打开网络连接到服务器,牢记一条主线:检查网络连通性、确认SSH服务运行、放行端口、找对认证方式。 把这四步走顺了,绝大多数连接问题都能自己解决,剩下的就是熟练度问题,多用几次,自然就顺畅了。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/703863.html





