Ubuntu不连接网络时连接服务器的核心思路,是搭建或复用本地局域网通道,通过SSH、SCP或FTP等协议实现通信,配置关键点在于固定IP地址、确保服务端口开放并关闭不必要的网络验证。
为什么离线环境需要连服务器
很多运维场景下,Ubuntu主机并不直接暴露在公网中,而是处于隔离的内网或仅限物理接触的状态。不连接外网不代表无法连接服务器,恰恰相反,内网直连往往是更安全、更稳定的选择,在机房调试、离线部署或安全加固等实际工作里,断开公网连接服务器反而是标配操作。
常见的三种离线连接场景包括:
- 一台Ubuntu主机和一台服务器通过网线直连,无任何外部网络介入
- Ubuntu主机与服务器同在局域网内,但路由器未接入互联网
- 服务器只开放内网接口,Ubuntu客户端通过有线或无线方式接入同一网段
连接前的必要准备
在动手配置之前,先确认硬件链路和基础软件是否就绪。没有网络连接的情况下,所有通信都依赖物理链路和本地协议栈。
确认网卡状态与链路连通
执行以下命令查看网卡是否被正确识别:
ip link show
如果看到state DOWN,需要先手动启用网卡:
sudo ip link set enp3s0 up
注意将enp3s0替换为实际网卡名称,链路物理连通后,用ethtool检查协商速率:
sudo ethtool enp3s0
只要输出中显示Link detected: yes,说明物理层已经就绪,这一步是后续所有操作的基础,很多连接失败案例的根源都是网卡未启用或网线接触不良。
离线环境下的必备软件
优先检查系统是否自带SSH客户端,因为Ubuntu默认桌面版不带openssh-server,但一般自带openssh-client,用以下命令验证:
which ssh
如果输出/usr/bin/ssh,说明客户端可用,若需要服务器端,则需从安装光盘或本地镜像源安装:
sudo dpkg -i /path/to/openssh-server_.deb
这里不赘述具体依赖关系,但强调一点:离线安装务必提前准备好.deb包及依赖,建议在相同版本的联网机器上用apt-get download提前拉取全部所需包。
不连接网络时配置静态IP
这是离线连接服务器的核心步骤。动态IP在无DHCP服务器环境下会导致连接失败,因此必须手工指定静态地址。
使用Netplan配置静态地址
Ubuntu 18.04及以上版本采用Netplan管理网络,编辑配置文件:
sudo vim /etc/netplan/01-netcfg.yaml
如下:
network:
version: 2
ethernets:
enp3s0:
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
即使不连接外网,也建议填写网关和DNS,这样当网络恢复时无需重新修改,但要注意,在完全隔离的局域网内,网关地址可以不填,只要保证与服务器IP处于同一子网即可。
应用配置:
sudo netplan apply
使用ip addr show验证IP是否生效。
直连场景的IP规划
如果Ubuntu与服务器用网线直连,需要规划一对互不冲突的IP地址。
- Ubuntu:
168.1.100/24 - 服务器:
168.1.101/24
避免使用相同IP,否则会造成地址冲突,部分设备需要重启网络服务才能生效:
sudo systemctl restart systemd-networkd
离线环境下的SSH连接配置
SSH是离线连接服务器的首选协议,因为它加密传输且占用资源少,同时支持文件传输和远程命令执行。
启动并验证SSH服务
如果服务器端安装了openssh-server,先确认其状态:
sudo systemctl status ssh
输出中包含active (running)即表示正常,若未运行,则启动并设置开机自启:
sudo systemctl start ssh
sudo systemctl enable ssh
从Ubuntu发起连接
在Ubuntu终端中执行:
ssh user@192.168.1.101
第一次连接会提示确认主机指纹,输入yes即可。如果你修改过SSH默认端口,需要加-p参数指定端口号:
ssh -p 2222 user@192.168.1.101
常见SSH连接失败排查思路
离线环境中SSH连接失败,多数情况下不是协议问题,而是网络层没配对,按以下顺序排查:
- 先ping服务器IP,不通则检查网线、IP配置和网卡状态
- 再检查防火墙规则,
sudo ufw status确认是否放行SSH端口 - 最后确认服务器端SSH服务确实在监听,用
ss -tlnp | grep sshd查看
如果是直连场景,检查Windows或macOS端的网络设置有时反而更耗时,建议在Ubuntu端先用tcpdump抓包确认是否有SYN包发出。
Ubuntu连接服务器失败的其他原因
即便是离线环境,还有一些容易忽视的配置项会导致连接异常。
主机名解析问题
离线环境中DNS可能不可用,如果你习惯使用主机名连接服务器,建议在/etc/hosts中手工绑定:
168.1.101 myserver
之后就可以用ssh user@myserver直接连接。
密钥权限过宽
SSH对私钥权限要求严格,如果私钥权限是644或777,SSH会默认拒绝加载,修正权限:
chmod 600 ~/.ssh/id_rsa
离线环境的FTP替代方案
如果SSH端口被禁用或对方只开放FTP,可以退而使用FTP协议,Ubuntu自带的命令行FTP客户端可以直接调用:
ftp 192.168.1.101
但FTP明文传输存在安全隐患,仅在可信任的隔离网络中建议使用,更推荐的替代方案是SFTP服务,它复用SSH通道,无需额外开启端口:
sftp user@192.168.1.101
不同Ubuntu版本的配置差异
Ubuntu 16.04及以下版本使用/etc/network/interfaces管理网络,与新版Netplan不兼容,如果你还在用老版本系统,配置方式如下:
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
修改后重启网络服务:
sudo systemctl restart networking
行业共识是尽量迁移到18.04以上版本,因为整个网络栈的架构都有所优化,Netplan的YAML配置方式也更容易自动化管理,不过对于仍在生产环境运行的旧版系统,上述配置方法依然完全有效。
无线网络离线场景的注意事项
如果Ubuntu通过Wi-Fi连接无外网的路由器,需要在Netplan配置中指定无线网卡的SSID和密码:
wifis:
wlp2s0:
access-points:
"MyRouter":
password: "password"
addresses:
- 192.168.1.100/24
配置完成后,用sudo netplan try验证配置是否正确,该命令会在规定时间内自动回滚,避免连不上SSH的情况发生。
常见问题解答
为什么Ubuntu在断网状态下SSH到服务器总是超时?
多数原因是IP地址不在同一子网或防火墙屏蔽了SSH端口,先执行ping命令确认基本连通性,再检查双方IP前三位是否一致,若ping通但SSH超时,重点查看服务器防火墙规则和SELinux状态。
在没有路由器的情况下Ubuntu能连服务器吗?
可以。用网线将两台机器直接连接,手动配置同一网段的静态IP即可通信,交叉线在现代网卡中自动协商,无需区分线序,这种方式传输速率稳定,常用于紧急维护场景,也是最后的后备方案。
离线环境下如何传输文件到服务器?
首选SCP命令,它基于SSH协议,不需要额外服务:
scp /path/to/local/file user@192.168.1.101:/path/to/remote/
如果文件较大,建议先压缩再传输,减少传输时间,也可用rsync进行增量同步,断点续传效果更好:
rsync -avz /local/folder/ user@192.168.1.101:/remote/folder/
连接服务器不依赖于互联网,配置好物理链路、静态IP和SSH服务后,一切照常,把这些基础步骤吃透,无论网络环境多么特殊,你都能找到一条可用的通道。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/771618.html


