ubuntu16.04 设置动态ip和静态ip及route命令的使用
ubuntu16.04 网卡命名
在给ubuntu的有线网卡或者无线网卡设置静态ip之前,首先我们需要了解有关网卡命名的知识。
在unbuntu16.04之后,ifconfig会发现网卡名eth0变成了enp2s0,wlan0变成了wl类似的名称。
1.网卡命名的规则
在udev-builtin-net_id 中还提到了网卡的新命名规则
/*
* Two character prefixes based on the type of interface:
* en — Ethernet
* sl — serial line IP (slip)
* wl — wlan
* ww — wwan
*
* Type of names:
* b<number> — BCMA bus core number
* c<bus_id> — CCW bus group name, without leading zeros [s390]
* o<index>[d<dev_port>] — on-board device index number
* s<slot>[f<function>][d<dev_port>] — hotplug slot index number
* x<MAC> — MAC address
* [P<domain>]p<bus>s<slot>[f<function>][d<dev_port>]
* — PCI geographical location
* [P<domain>]p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>]
* — USB port number chain
*/
上面一段是systemd源码的注释,意思是:
en代表以太网卡
p3s0代表PCI接口的物理位置为(3, 0), 其中横座标代表bus,纵座标代表slot
使用ifconfig命令,我们能看到以下有三个网卡的信息。
enp2s0 Link encap:以太网 硬件地址 20:1a:06:be:7b:ec
inet 地址:10.10.15.172 广播:10.10.15.255 掩码:255.255.255.0
inet6 地址: fe80::102c:6a2e:d483:1fe9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:8377 错误:0 丢弃:39 过载:0 帧数:0
发送数据包:3808 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:3530723 (3.5 MB) 发送字节:510433 (510.4 KB)
中断:16
lo Link encap:本地环回
inet 地址:127.0.0.1 掩码:255.0.0.0
inet6 地址: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 跃点数:1
接收数据包:10307 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:10307 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:33424684 (33.4 MB) 发送字节:33424684 (33.4 MB)
wlp3s0 Link encap:以太网 硬件地址 48:5a:b6:d7:2a:f3
UP BROADCAST MULTICAST MTU:1500 跃点数:1
接收数据包:0 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:0 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:0 (0.0 B) 发送字节:0 (0.0 B)
中断:17
这三个网卡分别代表了有线网卡、本地环回和无线网卡。
2. 给网卡设置动态ip
以下以给有线网卡enp2s0设置动态ip为例:
打开一个终端,在超级用户下使用如下命令:
sudo vim /etc/network/interfaces
编辑添加:
auto enp2s0
iface enp2s0 inet dhcp
3. 给网卡设置静态ip
以下以给有线网卡enp2s0设置静态ip为例:
打开一个终端,在超级用户下使用如下命令:
sudo vim /etc/network/interfaces
然后编辑网络的配置命令,先将原先的命令注释掉,然后添加新的命令:
#auto lo
#iface lo inet loopback
#上面的注释之后,添加一下:
auto enp2s0
iface enp2s0 inet static
address 10.10.15.172
netmask 255.255.255.0
gateway 10.10.15.1
broadcast 10.10.15.255
dns-nameserver 223.5.5.5
其中需注意的是:
1、网关地址要根据自己的局域网来填写,每个人的都不一样。
可以用ip route show命令查看自己的网关地址
default via 10.10.15.1 dev enp2s0 proto static metric 100
10.10.15.0/24 dev enp2s0 proto kernel scope link src 10.10.15.172 metric 100
169.254.0.0/16 dev enp2s0 scope link metric 1000
由上可知,10.10.15.1为我的网关地址。
2、dns-nameserver 223.5.5.5这句一定需要有,
因为以前是DHCP解析,所以会自动分配DNS 服务器地址。
而一旦设置为静态IP后就没有自动获取到DNS服务器了,需要自己设置一个
设置完重启电脑后,/etc/resolv.conf 文件中会自动添加 nameserver 223.5.5.5
dns-nameserver尽量选择知名度较高的公共dns
(或者nameserver 8.8.8.8)可以根据访问速度,选择合适的公共DNS
3.重启网络:sudo /etc/init.d/networking restart
, 如果失败,可以采用关机重启的方式,重启后,就会生效。
4.route命令的使用
Linux系统的route命令用于显示和操作IP路由表, 要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。
4.1 route -n
#-n 表示不解析名字,列出速度会比route 快
#destination:目的地,终点,就是我们要去访问的目的IP
第一行的意思就是去往所有目标地址数据包由网关10.12.236.1 通过网卡ens33来转发;
#0.0.0.0代表的是匹配所有目标地址
实际上前两条是自动生成的,因为是直连的网段,在每块网卡上每配置一个IP就会生成一条记录(一个网卡上可以配置多个IP)。表示去往这两个网段的数据包,直接由网卡接口ens33发送出去。
4.2 手动添加默认网关
sudo route add default gw 192.168.1.1
再route -n ,就可以看到刚添加的网关,下次重启后,可能又要重新添加
4.3 手动添加特定路由网关
route add -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.10.1
route命令说明
route命令用来显示或修改ip的路由表。
route add [-net|-host] [网域或主机] netmask [mask] [gw|dev]
-net :表示后面接的路由为一个网域;
-host :表示后面接的为连接到单部主机的路由;
netmask :与网域有关,可以设定 netmask 决定网域的大小;
gw :gateway 的简写,后续接的是 IP 的数值喔,与 dev 不同;
dev :如果只是要指定由那一块网路卡连线出去,则使用这个设定,后面接 eth0 等
参考文献:
上一篇: 数据库实验(学生信息表)
下一篇: 数据库实验2-数据库管理