在Ubuntu中设置网络连接服务器,核心思路是先用ip addr查看当前网卡状态,再用netplan或nmcli配置静态IP或DHCP,最后通过SSH验证连通性。
很多朋友第一次接触Ubuntu服务器时,最容易卡在网络配置这一步,图形界面和命令行混着用,配完IP发现上不了网,Ping不通网关也不知道从哪查起,其实Ubuntu的网络配置逻辑非常清晰,只要掌握核心命令和配置文件的位置,几分钟就能搞定。
ubuntu怎么连接服务器:先分清场景再动手
连接服务器之前,先想清楚你要连的是局域网内的机器还是公网上的云服务器,两种场景的配置思路完全不同。
局域网场景下,你通常需要给Ubuntu设置一个固定IP,方便其他机器稳定访问,公网场景下,云服务器一般已经配好了网络,你只需要关心SSH连接这一层。
无论哪种场景,Ubuntu的网络配置都集中在几个地方:
- Netplan:新版Ubuntu(18.04及以上)的默认网络配置工具,配置文件在
/etc/netplan/目录下 - NetworkManager:桌面版Ubuntu常用的网络管理服务,命令行工具是
nmcli - /etc/network/interfaces:旧版Ubuntu(16.04及以下)的配置方式,现在很少用了
看清楚你装的是哪个版本,再去动对应的配置文件,用lsb_release -a看一眼版本号,避免改错文件白忙活。
局域网场景:配置静态IP让服务器地址固定
服务器放在内网里,最怕IP地址乱跳,今天连得上,明天IP变了又得重新找,静态IP配置在Netplan里操作起来很直接。
进入配置文件目录,找到类似00-installer-config.yaml的文件:
sudo nano /etc/netplan/00-installer-config.yaml
改成下面这样:
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [114.114.114.114, 223.5.5.5]
网卡名称(这里是eth0)以你机器上ip addr显示的实际名称为准,别照抄,改完之后执行:
sudo netplan apply
然后ip addr确认IP是否生效,这里有个小坑:如果你改错了网卡名或者YAML格式不对,
netplan apply会报错,但有时候错误提示不明显,建议先执行sudo netplan try,它会在超时后自动回滚,避免你把自己锁在外面。
公网场景:SSH远程连接服务器
云服务器场景下,网络一般在购买时已经配好了,你拿到手的是一台已经有公网IP的机器,要做的事情只是从本地连过去。
Ubuntu系统默认不带SSH服务端,但客户端是有的,如果你在Ubuntu上需要被远程连接,先装服务端:
sudo apt update sudo apt install openssh-server sudo systemctl status ssh
然后从你的Windows或Mac机器上用SSH客户端连接:
ssh username@server_ip -p 22
连接不上时先别急着怀疑网络配置,先检查SSH服务有没有启动,防火墙有没有放行22端口,很多所谓“网络问题”其实都是防火墙拦住了。
ubuntu设置网络连接服务器时,该选哪个配置工具
Netplan和NetworkManager经常让新手纠结,其实两者的定位很清晰,我个人的建议是:服务器用Netplan,桌面系统用NetworkManager。
| 对比项 | Netplan | NetworkManager |
|---|---|---|
| 配置文件 | YAML格式,/etc/netplan/ | 不直接改文件,用nmcli命令 |
| 适用场景 | 服务器、云主机 | 桌面版、笔记本 |
| 学习成本 | 需要理解YAML语法 | 命令直观,但选项繁多 |
| 重启生效 | netplan apply即时生效 | nmcli connection up |
| 适合人群 | 运维、服务器管理员 | 普通桌面用户 |
行业共识认为,Netplan是Ubuntu官方主推的方案,未来的趋势也是围绕它展开,如果你连的是云服务器,厂商的初始化脚本用的也是Netplan,桌面用户不想折腾,用nmcli更快。
Netplan配置的几个关键点
Netplan的坑主要在格式上,YAML对缩进非常敏感。用空格缩进,别用Tab键,层级关系错了,配置直接不生效。
还有一个容易忽略的点:一个网卡最好不要同时出现在多个配置文件里,有些同学在/etc/netplan/下建了好几个文件,每个文件里都写了eth0,结果netplan apply之后IP变得乱七八糟,保持一个网卡只在一个文件中配置,其他文件里删掉重复项。
nmcli命令快速配置网络
桌面版用户不想碰YAML文件,用nmcli在终端里操作更直观,查看当前连接状态:
nmcli device status
给有线网卡配置静态IP:
nmcli connection modify "Wired connection 1" ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "114.114.114.114 223.5.5.5"
然后重启连接:
nmcli connection up "Wired connection 1"
这个工具的好处是不会出现YAML格式错误,而且nmcli connection show能看到所有连接的详细状态,排查问题时非常方便。
ubuntu无法连接服务器?按这个顺序自查
网络配置完了但连不上,别急着重装系统,按顺序排查,80%的问题都能定位到具体原因。
第一步:看链路层通不通。ping -c 4 192.168.1.1(网关地址),通则说明物理链路没问题,继续下一步。
第二步:看路由表对不对。ip route show,确认有default路由指向网关,没有默认路由,就算配了IP也出不去。
第三步:看DNS解析正不正常。cat /etc/resolv.conf,确认nameserver有值,DNS没配好,表现为能Ping通IP但域名解析不了。
第四步:看目标端口通不通。telnet server_ip 22或者nc -vz server_ip 22,如果端口不通,大概率是服务器防火墙问题,跟你的本机配置无关。
局域网内能Ping通但SSH连不上
这个现象很常见,能Ping通说明网络层没问题,问题出在SSH服务本身,检查这几点:
- SSH服务有没有在运行:
systemctl status sshd(有些系统叫ssh) - 防火墙有没有放行22端口:
sudo ufw status | grep 22 - SSH配置有没有禁用密码登录:检查
/etc/ssh/sshd_config里的PasswordAuthentication设置
静态IP配置正确但上不了网
如果你按上面的配置改完了,IP也有了,但就是上不了网,多半是DNS或者网关写错了,网关地址必须跟路由器局域网段一致,比如你的内网段是192.168.1.x,网关就是192.168.1.1(具体看路由器的管理地址),DNS的话,国内服务器用114.114.114和5.5.5(阿里DNS)比较保险。
还有种情况是网卡没有启用,执行sudo ip link set eth0 up,然后重新netplan apply,有些云服务器的镜像会默认禁用某个网卡,需要手动开启。
连接多台ubuntu服务器:批量配置技巧
你如果管着好几台Ubuntu机器,一台一台手动配太费时间,用ssh-copy-id把公钥分发到目标机器上,之后免密登录,配合脚本批量执行命令。
把当前机器的公钥复制到服务器:
ssh-copy-id username@server_ip
然后在本地写好配置脚本,用循环批量推送:
for ip in 192.168.1.101 192.168.1.102 192.168.1.103; do scp netplan-config.yaml username@$ip:/tmp/ ssh username@$ip "sudo mv /tmp/netplan-config.yaml /etc/netplan/ && sudo netplan apply" done
这样几十台机器也能在几分钟内完成网络配置,业内专家指出,批量操作的核心是先保证能免密登录,后面的自动化才有基础。
Q&A:ubuntu设置网络连接服务器的常见疑问
ubuntu配置静态IP后连不上网,最可能的原因是什么?
网卡名称写错了,Ubuntu的网卡命名规则从旧版的eth0变成了enp0s3、ens33这类基于硬件位置的名字,你照着网上的教程写eth0,实际机器上叫enp0s3,配置自然不生效,先用ip addr看真实网卡名,再改配置文件。
ubuntu连接远程服务器用SSH还是Telnet?
SSH,Telnet的明文传输在公网环境下毫无安全性可言,账号密码直接暴露在网络中,SSH加密传输,默认端口22,Ubuntu系统和几乎所有云厂商都默认支持SSH,Telnet现在只在调试老旧网络设备时才会用到。
ubuntu怎么查看当前网络连接状态?
首选ip addr查看IP地址和网卡状态,ip route show查看路由表,ping -c 4 网关IP测试链路连通性,这三个命令组合起来,基本能判断出网络配置是否正确。nmcli device status可以查看NetworkManager管理的设备状态,适合桌面环境使用。
回到最初的问题:Ubuntu网络配置没那么玄乎,关键在于找对配置文件、用对命令、按顺序排查,搞定了这三个环节,无论连内网服务器还是云主机都能畅通无阻,动动手,找个测试机试一遍上面的命令,比看一百篇教程都管用。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/727814.html





