ubuntu16.04 网卡命名

在给ubuntu的有线网卡或者无线网卡设置静态ip之前,首先我们需要了解有关网卡命名的知识。

在unbuntu16.04之后,ifconfig会发现网卡名eth0变成了enp2s0,wlan0变成了enp3s0或者类似的名称。

这种改变可以参考Predictable Network Interface Names.

网卡命名更换的原因如文中所说:

内核应用的网络接口的经典命名方案是简单地将由“eth0”,“eth1”开头的名称分配给驱动程序探测到的所有接口。由于驱动程序探测通常对于现代技术来说是不可预测的,这意味着只要多个网络接口可用,名称“eth0”,“eth1”等的分配通常不再是固定的,并且很可能发生“ eth0“在一次启动时最终成为”eth1“。这可能具有严重的安全隐患,例如在为某些命名方案编码的防火墙规则中,因此对不可预知的更改名称非常敏感。为了解决这个问题,已经提出并实施了多种解决方案。 udev在较长时间内支持根据其MAC地址为特定接口分配永久“ethX”名称。事实证明,这有许多问题:这需要一个通常不可用的可写根目录;由于在系统上引导OS映像会导致系统的无状态丢失,导致映像配置发生变化;在很多系统上,MAC地址并没有实际的固定,比如在很多嵌入式硬件上,特别是在各种虚拟化解决方案上。然而,最重要的是,用户空间组件尝试分配接口名称,与内核分配来自同一个“ethX”名称空间的新名称,这是一种具有各种奇怪效果的竞态条件,其中名称分配有时失败。因此,在此之前已经从systemd / udev中删除了对此的支持。另一个已经实现的解决方案是“biosdevname”,它尝试在某些固件接口中查找固定插槽拓扑信息,并使用它们将固定名称分配给包含其在主板上的物理位置的接口。在某种程度上,这种命名方案类似于通过/ dev / * / by-path / symlinks为各种设备节点在udev中本地完成的命名方案。在许多情况下,biosdevname不同于udev通常用于这些符号链接的低级内核设备标识方案,而是发明自己的枚举方案。最后,许多发行版都支持将用户选择的名称重新命名为接口(认为:“internet0”,“dmz0”,...),将其MAC地址或物理位置作为其网络脚本的一部分。这是一个非常好的选择,但确实存在这样的问题,即它意味着用户愿意并且能够选择和分配这些名称。

我们认为推广“biosdevname”开创的方案是一个很好的默认选择。根据固件/拓扑/位置信息分配固定名称具有很大的优点,即名称是完全自动的,完全可预测的,即使添加或移除硬件(即不发生重新枚举),它们仍保持固定,并且可以替换损坏的硬件无缝连接。尽管如此,他们承认有时比每个人都习惯的“eth0”或“wlan0”更难阅读。例如:“enp5s0”

网卡命名的规则

在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源码的注释,意思是:

  1. en代表以太网卡

  2. p3s0代表PCI接口的物理位置为(3, 0), 其中横座标代表bus,纵座标代表slot

给网卡设置静态ip

使用ifconfig命令,我们能看到以下有三个网卡的信息。

enp2s0    Link encap:以太网  硬件地址 20:1a:06:be:7b:ec  inet 地址:10.10.15.172  广播:10.10.15.255  掩码:255.255.255.0inet6 地址: fe80::102c:6a2e:d483:1fe9/64 Scope:LinkUP 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.0inet6 地址: ::1/128 Scope:HostUP 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

这三个网卡分别代表了有线网卡、本地环回和无线网卡。区分是有线网卡还是无线网卡,只需校验在使用网线连接时,哪个网卡有ip地址信息,有即为有线网卡。或者在使用wifi连接时,哪个网卡有ip地址信息,有即为无线网卡。

以下以给有线网卡enp2s0设置静态ip为例:

打开一个终端,在超级用户下使用如下命令:

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尽量选择知名度较高的公共dns

可以在公共dns哪家强-知乎 选择你喜欢的公共dns

设置完重启电脑后,/etc/resolv.conf 文件中会自动添加 nameserver  223.5.5.5

参考:ubuntu linux设置静态ip的方法

给无线网卡设置静态ip

Wireless network configuration

wireless device driver

首先需要确保无线网卡驱动已安装,并且工作正常。

启动的的时候,udev会识别硬件,并加载相应的驱动。
有些芯片需要额外的firmware, 默认安装的linux-firmware提供了很多固件。

检查设备状态:

lspci -k 或者 lspci -v
检查设备驱动是否已经加载

例如:

1
2
3
4
05:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8723BE PCIe Wireless Network Adapter
Subsystem: Lenovo Device b728
Kernel driver in use: rtl8723be
Kernel modules: rtl8723be

通过ip link 查看设备, 无线设备通常是wlp5s0这样的名称。

启用设备:

ip link set <设备名> up

如果设备加载正常,接口正常启用,则说明不需要安装额外的firmware.
如果显示错误信息: “SIOCSIFFLAGS: No such file or directory”, 那说明缺失firmware

查看已加载的firmware的kernel message信息

1
2
$ dmesg | grep firmware
[ 11.644190] Using firmware rtlwifi/rtl8723befw.bin

install driver/firmware:

Linux支持的无线网卡驱动

Linux Wi-Fi设备ID列表

RTL Wi-Fi的git地址: https://github.com/lwfinger/rtlwifi_new.git

manage the wireless connections

管理方法 接口激活 无线连接管理 IP地址分配
手动设置 (无加密,或者WEP加密) ip iw ip/dhcpd/dhclient/networkd
手动设置 (WAP/WAP2 PSK加密) ip iw + wpa_supplicant ip/dhcpd/dhclient
自动管理   netctl, Wicd, NetworkManger等

Just like other network interfaces, the wireless ones are controlled with ip from the iproute2 package

管理无线网络连接还需要安装一些软件包:

iw
只支持nl80211(netlink)标准, 不支持老的WEXT(Wireless EXTentions)标准, 如果iw没有显示网卡,可能是这个原因

wireless_tools
已经过时,但是依然广泛使用。 WEXT设备使用此工具

wpa_supplicant
提供WPA/WPA2加密支持,同时支持nl80211和WEXT

interface activation

在使用iw或者wireless_tools之前,有些网卡需要激活内核接口

$ ip link set wlp5s0 up

验证接口是否已经打开:

1
2
3
$ ip link show wlp5s0
3: wlp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
link/ether 12:34:56:78:9a:bc brd ff:ff:ff:ff:ff:ff

<BROADCAST,MULTICAST,UP,LOWER_UP>
UP表示接口已经打开

iw usage

iw只能连接开放网络或者WEP网络.

示例中的wireless device interface是wlp5s0
your_essid 是要连接的热点ssid

获取接口名

1
2
3
4
5
6
7
8
$ iw dev
phy#0
Interface wlp5s0
ifindex 3
wdev 0x1
addr 12:34:56:78:9a:bc
type managed
channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz
iw command Description
iw dev wlp5s0 link 获取连接状态
iw dev wlp5s0 scan 扫描可用热点
iw dev wlp5s0 set type ibss 设置操作模式为ad-hoc
iw dev wlp5s0 connect your_essid 连接到开放网络
iw dev wlp5s0 connect your_essid 2432 连接到开放网络的指定通道
iw dev wlp5s0 set power_save on 启用省电模式

连接到WEP加密的网络

WEP的密码长度是固定的, key的格式如下:

1
2
3
4
5
6
[d:]index:data
'd:' means default (transmit) key
'index:' is a single digit (0-3)
'data' must be 5 or 13 ascii chars
or 10 or 26 hex digits
for example: d:2:6162636465 is the same as d:2:abcde

查看连接状态

1
2
3
4
5
6
7
8
9
10
11
12
$ iw dev wlp5s0 link
Connected to 7c:7d:3d:73:e6:03 (on wlp5s0)
SSID: MyESSID
freq: 2437
RX: 1256767 bytes (11788 packets)
TX: 4568 bytes (47 packets)
signal: -8 dBm
tx bitrate: 7.2 MBit/s MCS 0 short GI
bss flags: short-preamble short-slot-time
dtim period: 2
beacon int: 100

获取统计数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ iw dev wlp5s0 station dump
Station 12:34:56:78:9a:bc (on wlp5s0)
inactive time: 7813 ms
rx bytes: 1456449
rx packets: 13661
tx bytes: 4568
tx packets: 47
tx retries: 0
tx failed: 0
signal: -10 dBm
signal avg: -11 dBm
tx bitrate: 7.2 MBit/s MCS 0 short GI
rx bitrate: 1.0 MBit/s
authorized: yes
authenticated: yes
preamble: long
WMM/WME: yes
MFP: no
TDLS peer: no

ubuntu16.04 设置静态ip相关推荐

  1. ubuntu16.04设置静态IP与DNS

    参考:https://blog.csdn.net/gerald_jones/article/details/80806884 0 背景 虽然网上相关设置的文章有很多,但尝试设置的时候总是不成功,因此将 ...

  2. ubuntu16.04设置静态IP

    ubuntu16.04 虚拟机配置静态IP 一,首先ifconfig查看网卡名称,我的是ens33,红帽一般是eth0 二,sudo gedit /etc/network/interfaces 在in ...

  3. Ubuntu16.04 设置静态 ip

    编辑 interfaces 文件: sudo vim /etc/network/interfaces 我的文件里原本只有这两行: auto lo iface lo inet loopback 现添加 ...

  4. ip ubuntu如何修改master_ubuntu16.04 设置静态ip

    ubuntu16.04 设置静态ip 发布时间:2018-05-08 10:34, 浏览次数:529 , 标签: ubuntu ip ubuntu16.04 网卡命名 在给ubuntu的有线网卡或者无 ...

  5. linux设置不同地址,ubuntu20.04设置静态ip地址(包括不同版本)

    因为Ubuntu20.04通过netplan来管理网络,和之前得版本略有区别,Ubuntu18.04好像需要编辑/network/interfaces来设置静态网络 因为安装的是虚拟机,首先我将其改为 ...

  6. Ubuntu20.04设置静态IP,安装Samba服务,实现win10远程访问文件夹

    道阻且长,行则将至.埋头苦干,不鸣则已,一鸣惊人!加油,骚年! 文章目录 1 参考资料 2 絮叨絮叨 3 Ubuntu20.04 设置静态 IP 3.1 基础环境 3.2 配置过程记录 3.2.1 配 ...

  7. ubuntu18.04 设置静态IP 能连网

    前言:我跟着好多个帖子修改静态ip,可修改后总是连网失败,最终我在参考了[ubuntu 16.04 设置静态IP - 简书] 这篇文章,终于配置成功,特将过程分享. 1.查询ubuntu的ip地址.子 ...

  8. Ubuntu Desktop 18.04 设置静态IP方法(超详细)

    这里指的是Ubuntu Desktop 18.04上设置静态IP,Ubuntu Server 18.04上设置静态IP的方法请参考点击打开链接 我使用的是VMware 14 Pro .具体步骤如下: ...

  9. ubuntu14.04设置静态IP

    啊,最近懒惰了,好久没有写博客了. 一般机器启动的时候会自动从DHCP服务器上面获取动态IP地址,这是一件很方便的事情,可以不用手动设置网络相关的蚕参数,但是有时候还是需要机器固定IP地址的. 第一步 ...

最新文章

  1. 清华团队将Transformer用到3D点云分割
  2. 济南python工资一般多少钱-济南python编程课程培训哪家好
  3. python web shell
  4. 今年618我要Pick有很吓人技术GPU TURBO的手机,你呢?
  5. android studio 快速删除无用的import包
  6. $\mathfrak {reputation}$
  7. jqGrid格式化日期
  8. Spock 1.2 –轻松进行集成测试中的Spring Bean模拟
  9. 封装JDBC—非框架开发必备的封装类
  10. python用什么来写模块-使用C语言编写Python模块-引子【转】
  11. 汇总好玩的cmd命令大全
  12. 德赛西威全球首发“Smart Solution”智能出行解决方案
  13. 【深度学习】ICPR 2022|3DUNet:卷积+胶囊强强联手,医学图像分割的新良方
  14. C# 判断网络是否ping通
  15. 《数据结构与抽象:Java语言描述(原书第4版)》一1.2 说明一个包
  16. 循环 根据要求打印可空心倒三角形 123 简单
  17. 小学三年级计算机基础知识课件,小学信息技术优秀课件
  18. 运用hexo建立博客的几个坑
  19. 自然语言处理(NLP)数据集汇总 4(附下载链接)
  20. __attribute__概述

热门文章

  1. Latex/WinEdt中文编辑
  2. 去哪儿cli2项目总结
  3. LeetCode 力扣算法题解汇总,All in One
  4. 音频对游戏玩家体验的影响有多大?
  5. 1.VB_求解圆的体积
  6. 研究生考试又来到,网上确认证件照怎么拍?
  7. 五种以上linux的发行版本,Linux 各发行版本简介
  8. leetcode——第993题——二叉树的堂兄弟节点
  9. 静态英雄联盟轮播图布局
  10. selenium +eclipse+firefox/chrome 环境全套搭配