最近学习网络编程,为了方便学习需要Ubuntu配置静态IP,网上看了好多贴子跟着试了下可以实现,但重启虚拟机后有时就无法连接,总之各种各样问题;相关的配置方法也比较凌乱,有用netplan 或者 ifupdown ,笔者简单梳理下,以供参考:
Ubuntu 版本:ubuntu-20.04.6-desktop-amd64
网络模式:桥接模式
目录
(前言) Ubuntu 都有哪些网络管理工具?
建议一般使用"netplan"进行配置;或者通过
NetworkManager
界面进行简单操作即可;
以下相关介绍内容来自网络:
- Netplan:从 Ubuntu 17.10(代号“Artful Aardvark”)开始引入的新一代网络配置工具,使用 YAML 格式的配置文件来定义网络接口和连接配置,配置文件位于
/etc/netplan/
目录下。Netplan 通过配置文件和渲染器配合工作,实现了对 Linux 系统网络配置的管理和应用。 - NetworkManager:一个功能强大的网络管理器,提供了图形化界面和命令行工具(如 nmtui、nmcli),用于管理和配置网络连接,如以太网、Wi-Fi、VPN 等。NetworkManager 支持自动检测和配置网络连接,适用于桌面环境和移动设备。
- systemd-networkd:systemd 的一部分,负责 systemd 生态中的网络配置部分。它支持基础的 DHCP/静态 IP 网络配置,以及虚拟网络功能,如网桥、隧道和 VLAN 等。systemd-networkd 通常用于服务器安装,其中网络环境相对静态。
- ifupdown:在 Ubuntu 17.10 之前的版本中用于配置网络接口的工具,使用
/etc/network/interfaces
文件进行配置。Netplan 取代了 ifupdown 作为默认的网络管理工具。
【前期工作】获取 IP 信息
以下指令的使用方法都可以查到,不再赘述
ifconfig
获取详细信息:IP、掩码、以太网卡地址route -n
用于查看和修改系统路由表:网关、子网掩码netstat
可以显示网络连接、路由表、接口状态等
netplan 设置静态IP【推荐】
修改etc/netplan/下的文件:01-network-manager-all.yaml
- 注意冒号后都有空格!!!
Let NetworkManager manage all devices on this system
network:
version: 2
renderer: networkd
ethernets:
ens33:
addresses: [192.168.237.149/24]
gateway4: 192.168.237.37
dhcp4: false
nameservers:
addresses: [114.114.114.114, 8.8.8.8]
#renderer: NetworkManager
- 然后使用
sudo netplan apply
应用配置即可
ifupdown 设置静态IP【已被取代】
修改/etc/network/interface 文件
sudo vim /etc/netwok/interface
输入配置信息;
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet static
address 192.168... // ip 地址
netmask 255.255.255.0 // 子网掩码
gateway 192.168... // 网关
-
然后执行
systemctl restart network-manager
-
再执行
systemctl restart networking
或者使用 NetworkManager 操作【easy】
- 之后重启虚拟机即可;
验证配置静态IP是否成功
输入 ip addr show
或者 ip a
:
- 配置前
- 配置后
总结
- 配置遇到问题时,建议按照自己选择的网络管理工具进行查找解决方法;
- 配置过程中,多使用
ping
来检测网络是否正常使用; - 祝大家学习愉快!