为Ubuntu系统设置静态IP

前言

之前在使用Ubuntu时,Ubuntu一直都是固定分配为一个IP,今天和其他师傅交流的时候分配的IP突然改了,当时打开VMware看IP,改.ssh感觉非常狼狈,于是回来就为其配置一下静态IP

这里参考了网上的一篇 Blog ,但因为现在配置文件的某些变量的弃用,我们需要进行部分的设置更改。

确定IP

我们首先需要确定自己要设定的静态IP、网关、 适配器名称

我们可以使用 ip a ​ 或是 ifconfig -a ​ 来获取

我获取到的为:

 mindedness on  ~/Shares/pwn 
#ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 6a:92:1c:86:f2:11  txqueuelen 0(以太网)
        RX packets 0  bytes 0(0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0(0.0 B)
        TX errors 0  dropped 29 overruns 0  carrier 0  collisions 0
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.192.129  netmask 255.255.255.0  broadcast 192.168.192.255
        inet6 fe80::20c:29ff:fedb:d88d  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:db:d8:8d  txqueuelen 1000(以太网)
        RX packets 11805  bytes 4119477(4.1 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 11591  bytes 7502949(7.5 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000(本地环回)
        RX packets 15632  bytes 9051489(9.0 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 15632  bytes 9051489(9.0 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 mindedness on  ~/Shares/pwn 
#ipa1: lo:<LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: ens33:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:db:d8:8d brd ff:ff:ff:ff:ff:ff
    altname enp2s1
    inet 192.168.192.129/24 brd 192.168.192.255 scope global dynamic noprefixroute ens33
       valid_lft 1180sec preferred_lft 1180sec
    inet6 fe80::20c:29ff:fedb:d88d/64 scope link 
       valid_lft forever preferred_lft forever
3: docker0:<NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 6a:92:1c:86:f2:11 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

那么我们就得到了我们要设置成的IP及网关:

适配器名称 IP设置 网关
ens33 192.168.192.129/24 192.168.192.255

更改配置

我们这里使用 最新版Ubuntu的默认网络管理工具:Netplan

我们使用YAML文件编写其配置文件

首先,我们在 /etc/netplan 中新建一个名为 01-network-manager-all.yaml ​ 的文件

sudotouch 01-network-manager-all.yaml

我们在其中写入

network:version:2renderer: NetworkManager #将默认的渲染器 systemd-networkd 改为 NetworkManagerethernets:ens33:dhcp4: no #设置为静态IPaddresses:[192.168.192.128/24]#将特定静态IP设置好routes:-to: 0.0.0.0/0            # 默认路由via: 192.168.192.2        # 网关地址nameservers:addresses:[8.8.8.8, 8.8.4.4]#DNS设置

之后运行

sudo netplan try

如果没有报错,那么它会对你是否应用此设置进行一次询问。

我们这时使用 ip a ​ 命令测试其是否成功更改

若静态IP已被应用,则这次的静态IP设置就大功告成了!