赞
踩
本博客是本人本人在配置ubuntu静态ip地址踩到的坑。
有一天,本人想通过FinalShell这个工具来访问我的虚拟机中的ubuntu,也为到时候来访问树莓派内的ubuntu系统做准备。
在ubuntu中,我们可以通过ifconfig命令查看当前的ip地址
输入:
robot@robot-virtual-machine:~/桌面$ ifconfig
输出结果:
robot@robot-virtual-machine:~/桌面$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.142.129 netmask 255.255.255.0 broadcast 192.168.142.255
inet6 fe80::20c:29ff:fe94:97ce prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:94:97:ce txqueuelen 1000 (以太网)
RX packets 643 bytes 451130 (451.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 954 bytes 122923 (122.9 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 19 base 0x2000
我们会在终端中打印出当前的ip地址为192.168.142.129,还有自己的网卡名称ens33。
接着我们在命令行中输入route -n
输入:
robot@robot-virtual-machine:~/桌面$ route -n
输出结果:
robot@robot-virtual-machine:~/桌面$ route -n
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
0.0.0.0 192.168.142.2 0.0.0.0 UG 100 0 0 ens33
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 ens33
192.168.142.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
这个地方也可以看到你的网络接口,即网卡号,即ens33,还有当前的网关 192.168.142.2 这个信息要记住,待会要用。
现在这个ip地址是DHCP自动分配的,我们每次打开虚拟机后,可能被分配的地址就会发生变化,就会让我们在通过shell工具访问ubuntu时,会极其不方便,故我们现在来将它设置为静态地址。
首先:进入到带有网络配置文件的目录下
robot@robot-virtual-machine:~/桌面$ cd /etc/netplan/
正常来说你会找到这个文件,这个文件的命名随你的版本来找,反正只要是有network,然后有yaml结尾的就行。
01-network-manager-all.yaml
接着:阅读该文件
robot@robot-virtual-machine:/etc/netplan$ sudo cat 01-network-manager-all.yaml
当我们去打开这个文件时,当一个没有对网络进行配置的新系统,会出现以下的文本。
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
最后的renderer: NetworkManager 可能会因为你是桌面版和无桌面版有所不一样,无桌面版应该是 networkd。接下来就要对这个文件进行修改配置了。
在现在很多的教程中,大部分人给你的方案可能是以下这样
将以下内容替换到你的 01-network-manager-all.yaml文件里面
# Let NetworkManager manage all devices on this system
network: # 网络
version: 2 # 版本
renderer: NetworkManager # 渲染器
ethernets: # 以太网
ens33: # 这里的ens33,就是但是用route -n 看到最右边的那个
addresses: [192.168.142.129/24] # ip地址跟一开始的那个ifconfig看到那个ip地址一样就行
dhcp4: false # 关闭自动分配
dhcp6: false # 关闭自动分配
gateway4: 192.168.142.2 # 网关 # 这个网关根据自己的route -n查到的来填写
nameservers: # 域名服务器
addresses: [8.8.8.8, 114.114.114.114]
但是本人用这个是跑不通的,尝尝会报错:
`gateway4` has been deprecated, use default routes instead. See the 'Default...
解决方法:
# Let NetworkManager manage all devices on this system
network: # 网络
version: 2 # 版本
renderer: NetworkManager # 渲染器
ethernets: # 以太网
ens33:
addresses: [192.168.142.129/24]
dhcp4: false
dhcp6: false
routes:
- to: default
via: 192.168.142.2 # 默认网关
nameservers: # 域名服务器
addresses: [8.8.8.8, 114.114.114.114]
我这里将gateway4 替换成了 routes 这个网关也要记得跟着一开始gateway4后面改,就好了。
然后在编写该文件时,是通过
robot@robot-virtual-machine:/etc/netplan$ sudo vim 01-network-manager-all.yaml
具体vim的操作,可以自行去查阅了解,这里就不再做讲解。
需要注意的是,这个文件中 不允许出现tab键,只能允许空格来实现对齐,这里推荐两个空格。具体要求可以去看看 yaml编写标准 。这里也不在赘述。
当我们修改完网络配置信息后。
输入:sudo netplan apply
robot@robot-virtual-machine:/etc/netplan$ sudo netplan apply
这里有一个坑,可能会报错:
Permissions for /etc/netplan/01-network-manager-all.yaml are too open. Netplan configuration should NOT be accessible by others.
这是由于你开放权限太高导致的。
我们可以通过进入root,然后查看权限信息。
robot@robot-virtual-machine:/etc/netplan$ su
密码:
root@robot-virtual-machine:/etc/netplan#
会输出以下内容:
robot@robot-virtual-machine:/etc/netplan# ll
total 12
drwxr-xr-x 2 root root 4096 Aug 4 06:37 ./
drwxr-xr-x 99 root root 4096 Aug 4 09:07 ../
-rw-r--r-- 1 root root 118 Aug 3 09:57 01-network-manager-all.yaml
这时,我们就需要通过chmod命令来修改当前文件的权限了。
root@robot-virtual-machine:/etc/netplan# chmod 0600 01-network-manager-all.yaml
修改后,再次运行 network apply 。就可以运行成功不会报错了。
root@robot-virtual-machine:/etc/netplan# network apply
最后再ifconfig,就能看到ip地址已经变成你写在文件内addresses 中的地址了,此时的地址为静态地址。你也可以通过再次修改yaml文件中的ip地址,更改最后一个小数点后的数,数值范围为0-255,你设置完,再netplan apply一下,再用ifconfig看,就会再次变化了。
最后记得通过su [你的用户名,我这里是robot]
即su robot 来退出root用户
至此,配置虚拟ip地址结束。感谢你的收看,如果对你有帮助的话,可以点个关注加点赞,希望你们能少走一点弯路。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。