分类 技术 下的文章

有许多命令可以用来查看 Linux 系统上的硬件信息。有些命令只能够打印出像 CPU 和内存这一特定的硬件组件信息,另外一些命令可以查看多种硬件组件的信息。

这个教程可以带大家快速了解一下查看各种硬件设备的信息和配置详情的最常用的命令。

lscpu

lscpu命令能够查看 CPU 和处理单元的信息。该命令没有任何其他选项或者别的功能。

lscpu

运行该命令会看到下面输出:

hdd_info_lscpu

lspci

lspci是另一个命令行工具,可以用来列出所有的 PCI 总线,还有与 PCI 总线相连的设备的详细信息,比如 VGA 适配器、显卡、网络适配器、usb 端口、SATA 控制器等。

lspci

你可以看到类似下图的输出信息。

hdd_info_lspci

可以通过运行下面的命令来过滤出特定设备的信息:

lspci -v | grep "VGA" -A 12

运行上面的命令可以看到类似下图的关于显卡的信息。

hdd_info_lspci_vga

lshw

lshw是一个通用的工具,可以列出多种硬件单元的详细或者概要的信息,比如 CPU、内存、usb 控制器、硬盘等。lshw能够从各个“/proc”文件中提取出相关的信息。

lshw -short

通过运行上面的命令可以看到下面的信息。

hdd_info_lshw

lsscsi

通过运行下面的命令可以列出像硬盘和光驱等 scsi/sata 设备的信息:

lsscsi

会得到类似下面的输出。

hdd_info_lsscsi

lsusb

lsusb命令能够列出 USB 控制器和与 USB 控制器相连的设备的详细信息。默认情况下,lsusb命令只打印出概要信息。可以通过使用-v参数打印每一个usb端口的详细信息。

lsusb

可以看到下面输出。

hdd_info_lsusb

Inxi

Inxi是一个 bash 脚本,能够从系统的多个来源和命令获取硬件信息,并打印出一个非技术人员也能看懂的友好的报告。

默认情况下,Ubuntu 上没有安装inxi。可以通过运行下面命令来安装Inxi

sudo apt-get install inxi

安装完Inxi之后,通过运行下面命令能够得到硬件相关的信息:

inxi -Fx

能够得到类似下图的输出。

hdd_info_inxi

df

df命令能够列出不同分区的概要信息、挂载点、已用的和可用的空间。

可以在使用df命令的时候加上-H参数。

df -H

会得到下面的输出。

hdd_info_df

Free

通过使用free命令可以查看系统中使用的、闲置的和 RAM 的总体数量。

free -m

会看到下面输出。

hdd_info_free

Dmidecode

dmidecode命令与其他命令不同。该命令是从硬件中的 DMI 表中读取信息的。

要查看处理器的信息,运行下面命令:

sudo dmidecode -t processor

hdd_info_dmi_processor

要查看内存的信息,运行下面命令:

sudo dmidecode -t memory

hdd_info_dmi_memory

要查看 bios 的信息,运行下面命令:

sudo dmidecode -t bios

hdd_info_dmi_bios

Hdparm

hdparm命令可以用来显示像硬盘这样的 sata 设备的信息。

sudo hdparm

可以看到下面的输出。

hdd_info_hdparm

总结

每个命令都有不同的方式来获取硬件的信息。在查看特定的硬件信息的时候,可以尝试使用不同的方式。上面所有的命令行工具在大部分的 Linux 发行版本中都是可以使用的,可以很容易的从仓库中获取安装。


via: https://www.maketecheasier.com/check-hardware-information-linux/

作者:Hitesh Jethva 译者:sonofelice 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

我该怎样在 Linux、Apple OS X 及其他类 UNIX 系统中使用 grep 命令,你能给我展示一些简单的例子吗?

grep 命令用来搜索文本,或从给定的文件中搜索行内包含了给定字符串或单词的文件。通常来说,grep 显示匹配到的行。使用 grep 来搜索包括一个或多个正则表达式匹配到的文本行,然后只显示匹配到的行。grep 被视作在 Linux/ Unix 系统中最有用的命令之一。

你知道吗

grep 这个名字,来源于一个 Unix/Linux 中的古老的行编辑器 ed) 中执行相似操作的命令:

g/re/p

grep 命令的语法

语法如下所示:

grep 'word' 文件名
grep 'word' 文件1 文件2 文件3
grep 'word1\|word2' 文件名
cat 某个文件 | grep '某个东西'
command | grep '某个东西'
command 选项1 | grep '数据'
grep --color '数据' 文件名

怎么样使用 grep 来搜索一个文件

搜索 /etc/passwd 文件下的 boo 用户,输入:

$ grep boo /etc/passwd

输出内容:

foo:x:1000:1000:foo,,,:/home/foo:/bin/ksh

可以使用 grep 去强制忽略大小写。例如,使用 -i 选项可以匹配 boo, Boo, BOO 和其他组合:

$ grep -i "boo" /etc/passwd

递归使用 grep

你可以递归地使用 grep 进行搜索。例如,在文件目录下面搜索所有包含字符串“192.168.1.5”的文件

$ grep -r "192.168.1.5" /etc/

或者是:

$ grep -R "192.168.1.5" /etc/

示例输出:

/etc/ppp/options:# ms-wins 192.168.1.50
/etc/ppp/options:# ms-wins 192.168.1.51
/etc/NetworkManager/system-connections/Wired connection 1:addresses1=192.168.1.5;24;192.168.1.2;

你会看到搜索到 192.168.1.5 的结果每一行都前缀以找到匹配的文件名(例如:/etc/ppp/options)。输出之中包含的文件名可以加 -h 选项来禁止输出:

$ grep -h -R "192.168.1.5" /etc/

或者

$ grep -hR "192.168.1.5" /etc/

示例输出:

# ms-wins 192.168.1.50
# ms-wins 192.168.1.51
addresses1=192.168.1.5;24;192.168.1.2;

使用 grep 去搜索文本

当你搜索 boo 时,grep 命令将会匹配 fooboo,boo123, barfoo35 和其他所有包含 boo 的字符串,你可以使用 -w 选项去强制只输出那些仅仅包含那个整个单词的行(LCTT译注:即该字符串两侧是英文单词分隔符,如空格,标点符号,和末端等,因此对中文这种没有断字符号的语言并不适用。)。

$ grep -w "boo" file

使用 grep 命令去搜索两个不同的单词

使用 egrep 命令如下:

$ egrep -w 'word1|word2' /path/to/file

(LCTT 译注:这里使用到了正则表达式,因此使用的是 egrep 命令,即扩展的 grep 命令。)

统计文本匹配到的行数

grep 命令可以通过加 -c 参数显示每个文件中匹配到的次数:

$ grep -c 'word' /path/to/file

传递 -n 选项可以输出的行前加入匹配到的行的行号:

$ grep -n 'root' /etc/passwd

示例输出:

1:root:x:0:0:root:/root:/bin/bash
1042:rootdoor:x:0:0:rootdoor:/home/rootdoor:/bin/csh
3319:initrootapp:x:0:0:initrootapp:/home/initroot:/bin/ksh

反转匹配(不匹配)

可以使用 -v 选项来输出不包含匹配项的内容,输出内容仅仅包含那些不含给定单词的行,例如输出所有不包含 bar 单词的行:

$ grep -v bar /path/to/file

UNIX/Linux 管道与 grep 命令

grep 常常与管道一起使用,在这个例子中,显示硬盘设备的名字:

# dmesg | egrep '(s|h)d[a-z]'

显示 CPU 型号:

# cat /proc/cpuinfo | grep -i 'Model'

然而,以上命令也可以按照以下方法使用,不使用管道:

# grep -i 'Model' /proc/cpuinfo

示例输出:

model       : 30
model name  : Intel(R) Core(TM) i7 CPU       Q 820  @ 1.73GHz
model       : 30
model name  : Intel(R) Core(TM) i7 CPU       Q 820  @ 1.73GHz

如何仅仅显示匹配到内容的文件名字?

使用 -l 选项去显示那些文件内容中包含 main() 的文件名:

$ grep -l 'main' *.c

最后,你可以强制 grep 以彩色输出:

$ grep --color vivek /etc/passwd

示例输出:

Grep command in action


via: http://www.cyberciti.biz/faq/howto-use-grep-command-in-linux-unix/

作者:Vivek Gite 译者:zky001 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

大多数的Linux和类Unix系统的配置文件中都有许多的注释行,但是有时候我只想看其中的有效配置行。那我怎么才能只看到quid.conf或httpd.conf这样的配置文件中的非注释命令行呢?怎么去掉这些注释或者空行呢?

我们可以使用 UNIX/BSD/OS X/Linux 这些操作系统自身提供的 grep,sed,awk,perl或者其他文本处理工具来查看配置文件中的有效配置命令行。

grep 命令示例——去掉注释

可以按照如下示例使用grep命令:

$ grep -v "^#" /path/to/config/file
$ grep -v "^#" /etc/apache2/apache2.conf

示例输出:

ServerRoot "/etc/apache2"

LockFile /var/lock/apache2/accept.lock

PidFile ${APACHE_PID_FILE}

Timeout 300

KeepAlive On

MaxKeepAliveRequests 100

KeepAliveTimeout 15


<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

<IfModule mpm_event_module>
    StartServers          2
    MaxClients          150
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}


AccessFileName .htaccess

<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy all
</Files>

DefaultType text/plain


HostnameLookups Off

ErrorLog /var/log/apache2/error.log

LogLevel warn

Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf

Include /etc/apache2/httpd.conf

Include /etc/apache2/ports.conf

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined



Include /etc/apache2/conf.d/

Include /etc/apache2/sites-enabled/

想要跳过其中的空行,可以使用 egrep 命令, 示例:

egrep -v "^#|^$" /etc/apache2/apache2.conf
## or pass it to the page such as more or less ##
egrep -v "^#|^$" /etc/apache2/apache2.conf | less

## Bash function ######################################
## or create function or alias and use it as follows ##
## viewconfig /etc/squid/squid.conf                  ##
#######################################################
viewconfig(){
   local f="$1"
   [ -f "$1" ] && command egrep -v "^#|^$" "$f" || echo "Error $1 file not found."
}

示例输出:

Fig.01: Unix/Linux Egrep Strip Out Comments Blank Lines

图 01: Unix/Linux Egrep 除去注释行和空行

理解 grep/egrep 命令行选项

-v 选项,选择出不匹配的命令行。该选项适用于所有基于posix的系统。正则表达式 ^$ 匹配出所有的非空行, ^# 匹配出所有的不以“#”开头的非注释行。

sed 命令示例

可以按照如下示例使用 GNU 上的 sed 命令:

$ sed '/ *#/d; /^ *$/d' /path/to/file
$ sed '/ *#/d; /^ *$/d' /etc/apache2/apache2.conf

GNU 或 BSD 上的 sed 也可以修改配置文件。下面的命令的作用是原地编辑文件,并以特定(比如 .bak)备份文件:

sed -i'.bak.2015.12.27' '/ *#/d; /^ *$/d' /etc/apache2/apache2.conf

更多信息见参考手册 - grep(1), sed(1)


via: http://www.cyberciti.biz/faq/shell-display-uncommented-lines-only/

作者:Vivek Gite 译者:sonofelice 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Munin 是一款类似 RRD tool 的非常棒的系统监控工具,它能提供给你多方面的系统性能信息,例如 磁盘、网络、进程、系统和用户。这些是 Munin 默认监控的内容。

Munin 如何工作?

Munin 以客户端-服务器模式运行。主服务器上运行的 Munin 服务器进程会从本地运行的客户端守护进程(Munin 可以监控它自己的资源)或者远程客户端(Munin 可以监控上百台机器)收集数据,然后在它的 web 界面上以图形的方式显示出来。

在服务器中配置 Munin

要配置服务器端和客户端,我们需要完成以下两步。

  1. 安装 Munin 服务器软件包并配置,使得它能从客户端收集数据。
  2. 安装 Munin 客户端,使得服务器能连接到客户端守护进程进行数据收集。

在 Linux 上安装 munin 服务器端

在基于 Ubuntu/Debian 的机器上安装 Munin 服务器:

apt-get install munin apache2

在基于 Redhat/CentOS 的机器上安装 Munin 服务器:

在基于 Redhat 的机器上安装 Munin 之前,你需要确保 启用 EPEL 软件仓库,因为基于 Redhat 的机器的软件仓库默认没有 Munin。

yum install munin httpd

在 Linux 上配置 Munin 服务器端

下面是我们要在服务器上启动 Munini 所进行的步骤:

  1. 在 /etc/munin/munin.conf 中添加需要监控的主机详情。
  2. 配置 apache web 服务器使其包括 munin 配置。
  3. 为 web 界面创建用户名和密码
  4. 重启 apache 服务器

步骤 1

/etc/munin/munin.conf 文件中添加主机条目。调到文件末尾添加要监控的客户端。在这个例子中,我添加了要监控的数据库服务器和它的 IP 地址。

示例:

[db.linuxnix.com]
 address 192.168.1.25
 use_node_name yes

保存文件并退出。

步骤 2

在 /etc/apache2/conf.d 目录中编辑或创建文件 munin.conf 用于包括 Munin 和 Apache 相关的配置。另外注意一点,默认其它和 web 相关的 Munin 配置保存在 /var/www/munin 目录。

vi /etc/apache2/conf.d/munin.conf

内容:

Alias /munin /var/www/munin
<Directory /var/www/munin>
 Order allow,deny
 Allow from localhost 127.0.0.0/8 ::1
 AllowOverride None
 Options ExecCGI FollowSymlinks
 AddHandler cgi-script .cgi
 DirectoryIndex index.cgi
 AuthUserFile /etc/munin/munin.passwd
 AuthType basic
 AuthName "Munin stats"
 require valid-user
 <IfModule mod_expires.c>
 ExpiresActive On
 ExpiresDefault M310
 </IfModule>
</Directory>

保存文件并退出。

步骤 3

现在为查看 munin 的图示而创建用户名和密码:

htpasswd -c /etc/munin/munin-htpasswd munin

注意:对于 Redhat/Centos 机器,要访问你的配置文件,需要在每个路径中用 “httpd” 替换 “apache2”。

步骤 4

重启 Apache 服务器,使得 Munin 配置生效。

基于 Ubuntu/Debian :

service apache2 restart

基于 Centos/Redhat :

service httpd restart

在 Linux 上安装和配置 Munin 客户端

步骤 1

在 Linux 上安装 Munin 客户端

apt-get install munin-node

注意:如果你想监控你的 Munin 服务器端,你也需要在服务器端安装 munin-node。

步骤 2

编辑 munin-node.conf 文件配置客户端。

vi /etc/munin/munin-node.conf

示例:

allow ^127\.0\.0\.1$
allow ^10\.10\.20\.20$

# 监听到哪个地址上
host *

# 以及哪个端口
port 4949

注意: 10.10.20.20 是我的 Munin 服务器,它连接到客户端的 4949 端口获取数据。

步骤 3

在客户端机器中重启 munin-node:

service munin-node restart

测试连接

检查你是否能从服务器的连接到客户端的 4949 端口,如果不行,你需要在客户端机器中的防火墙打开该端口。

telnet db.linuxnix.com 4949

访问 Munin web 页面

http://munin.linuxnix.com/munin/index.html

希望这些能对你配置基本的 Munin 服务器有所帮助。


via: http://www.linuxnix.com/install-and-configure-munin-monitoring-server-in-linux/

作者:Surendra Anne 译者:ictlyh 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

“与 Linux 一起学习”的所有文章:

引言:Linux 提供大量的教学软件和工具,面向各个年级段以及各个年龄段,提供大量学科的练习实践,其中大多数是可以与用户进行交互的。本“与 Linux 一起学习”系列就来介绍一些教学软件。

地理是一门有趣的学科,我们每天都能接触到,虽然可能没有意识到,但当你打开 GPS、SatNav 或谷歌地图时,你就已经在使用这些软件提供的地理数据了;当你在新闻中看到一个国家的消息或听到一些金融数据时,这些信息都可以归于地理学范畴。Linux 提供了很多学习地理学的软件,可用于教学,也可用于自学。

Kgeography

在多数 Linux 发行版的软件库中,只有两个与地理有关的软件,两个都属于 KDE 阵营,或者说都属于 KDE 教育项目。Kgeopraphy 使用简单的彩色编码图来绘制被选中的国家。

Ubuntu 及衍生版在终端执行下面命令安装软件:

sudo apt-get install kgeography

界面很简单,给你一个选择界面,你可以选择不同的国家。

learn-geography-kgeo-pick

点击地图上的某个区域,界面就会显示这个区域所在的国家和首都。

learn-geography-kgeo-brit

以及给出不同的测试题来检测你的知识水平。

learn-geography-kgeo-test

这款软件以交互的方式测试你的地理知识,并且可以帮你为考试做好充足的准备。

Marble

Marble 是一个稍微高级一点的软件,无需 3D 加速就能提供全球视角。

learn-geography-marble-main

在 Ubuntu 及衍生版的终端输入下面的命令来安装 Marble:

sudo apt-get install marble

Marble 专注于地图绘制,它的主界面就是一张地图。

learn-geography-marble-atlas

你可以选择不同的投影方法,比如球状投影和麦卡托投影(LCTT 译注:把地球表面绘制在平面上的方法),在下拉菜单里你可以选择平面视角或外部视角,包括 Atlas 视角,OpenStreetMap 提供的成熟的离线地图,

learn-geography-marble-map

以及卫星视角(由 NASA 提供),

learn-geography-marble-satellite

以及政治上甚至是历史上的世界地图。

learn-geography-marble-history

除了有包含不同界面和大量数据的离线地图,Marble 还提供其他信息。你可以在菜单中打开或关闭不同的离线信息框

learn-geography-marble-offline

和在线服务。

learn-geography-marble-online

一个有趣的在线服务是维基百科,点击下 Wiki 图标,会弹出一个界面来展示你选中区域的详细信息。

learn-geography-marble-wiki

这款软件还提供定位追踪、路由规划、位置搜索和其他有用的功能。如果你喜欢地图学,Marble 可以让你长时间享受探索和学习的乐趣。

总结

Linux 提供大量优秀的教育软件,当然也包括地理学科。本文介绍的两款软件可以帮你学到很多地理知识,并且你可以以一种好玩的人机交互方式来测试你的知识量。


via: https://www.maketecheasier.com/linux-geography-apps/

作者:Attila Orosz 译者:bazz2 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

IPv6 的使用量正在不断增加,让我们始料未及的是,伴随这个协议不断增加的使用量,大量的隐私问题涌现出来。互联网社区在积极发布相关解决方案。当前状况是怎样的呢? 网络管理器 NetworkManager 又是如何跟上的呢?让我们来瞧瞧吧!

通过 IPv6 方式连接的主机的特性

启用了 IPv6 的节点(LCTT 译注:节点在网络中指一个联网的设备)并不需要类似 IPv4 网络中 DHCP 服务器的中央机构来配置他们的地址。它们 发现 discover 自己所在的网络,然后通过生成主机部分来自主生成地址。这种方式使得网络配置更加简单,并且能够更好的扩展到更大规模的网络。然而,这种方式也有一些缺点。首先,这个节点需要确保它的地址不会和网络上其他节点冲突。其次,如果这个节点在进入的每一个网络中使用相同的主机部分,它的运动就可以被追踪,如此一来,隐私便处于危险之中。

负责制定因特网标准的组织 Internet 工程任务组 Internet Engineering Task Force (IETF)意识到了这个问题,这个组织建议取消使用硬件序列号来识别网络上的节点。

但实际的实施情况是怎样的呢?

地址唯一性问题可以通过 重复地址检测 Duplicate Address Detection (DAD)机制来解决。当节点为自身创建地址的时候,它首先通过 邻居发现协议 Neighbor Discovery Protocol (一种不同于 IPv4 ARP 协议的机制)来检查另一个节点是否使用了相同的地址。当它发现地址已经被使用,它必须抛弃掉这个地址。

解决另一个问题——隐私问题,有一点困难。一个 IP 地址(无论 IPv4 或 IPv6)由网络部分和主机部分组成(LCTT 译注:网络部分用来划分子网,主机部分用来从相应子网中找到具体的主机)。主机查找出相关的地址的网络部分,并且生成地址的主机部分。传统上它只使用了源自网络硬件(MAC)地址的 接口识别器 Interface Identifier 。MAC 地址在硬件制造的时候就被设置好了,它可以唯一的识别机器。这样就确保了地址的稳定性和唯一性。这对避免地址冲突来说是件好事,但是对隐私来说一点也不好。主机部分在不同网络下保持恒定意味着机器在进入不同网络时可以被唯一的识别。这在协议制定的时候看起来无可非议,但是随着 IPv6 的流行,人们对于隐私问题的担忧也愈演愈烈。幸运的是,解决办法还是有的。

使用 隐私扩展 privacy extensions

IPv4 的最大问题——地址枯竭,已经不是什么秘密。对 IPv6 来说,这一点不再成立,事实上,使用 IPv6 的主机能够相当大方的利用地址。多个 IPv6 地址对应一块网卡绝对没有任何不合适,正好相反,这是一种标准情形。最起码每个节点都有一个“ 本地连接 link-local 地址”,它被用来与同一物理链路的节点联络。当网络包含了一个连接其他网络的路由器,这个网络中的每个节点都有一个与每个直接连接的网络相联络的地址。如果主机在同一个网络有更多的地址,该节点(LCTT 译注:指路由器)将接受它们全部的传入流量。对于外发连接,它会把地址显示给远程主机,内核会挑选最适合的地址。但到底是哪一个呢?

启用了隐私扩展,就像 RFC4941 定义的那样,时常会生成带有随机主机部分的新地址。最新的那个被用于最新的外发连接,与此同时,那些不被使用了的旧地址将被丢弃。这是一个极好的策略——主机不会对外暴露其固定地址,因为它不用于外发连接,但它仍然会接受知道其固定地址的主机连接。

但这也存在美中不足之处——某些应用会把地址与用户识别绑定在一起。让我们来考虑一下这种情形,一个 web 应用在用户认证的时候生成一个 HTTP Cookie,但它只接受实施认证的地址的连接。当内核生成了一个新的临时地址,服务器会拒绝使用这个地址的请求,实际上相当于用户登出了。地址是不是建立用户认证的合适机制值得商榷,但这确实是现实中应用程序正在做的。

解救之道—— 隐私固定寻址 Privacy stable addressing

解决这个问题可能需要另辟蹊径。唯一的(当然咯)地址确实有必要,对于特定网络来说是稳定的,但当用户进入了另一个网络后仍然会变,这样的话追踪就变得几乎不可能。RFC7217 介绍了一种如上所述的机制。

创建隐私固定地址依赖于伪随机值,这个随机值只被主机本身知晓,它不会暴露给网络上的其他主机。这个随机值随后被一个密码安全算法加密,一起被加密的还有一些与网络连接的特定值。这些值包含:用以标识网卡的名称;网络地址;对于这个网络来说有可能的其他特殊值,例如无线网络的 SSID。使用这个安全密钥使其他主机很难预测结果地址,与此同时,当进入不同的网络时,网络的特殊数据会让地址变得不同。

这也巧妙的解决了地址重复问题。因为有随机值的存在,冲突也不太可能发生。万一发生了冲突,结果地址会得到重复地址检测失败的记录,这时会生成一个不同的地址而不会断开网络连接。看,这种方式很聪明吧。

使用隐私固定地址一点儿也不会妨碍隐私扩展。你可以在使用 RFC4941 所描述的临时地址的同时使用 RFC7217中的固定地址。

网络管理器 NetworkManager 处于什么样的状况?

我们已经在网络管理器1.0.4版本中实现了 隐私扩展 privacy extensions 。在这个版本中,隐私扩展默认开启。你可以用 ipv6.ip6-privacy 参数来控制它。

在网络管理器1.2版本中,我们将会加入 固定隐私寻址 stable privacy addressing 。应该指出的是,目前的隐私扩展还不符合这种需求。我们可以使用 ipv6.addr-gen-mode 参数来控制这个特性。如果它被设置成固定隐私,那么将会使用固定隐私寻址。设置成“eui64”或者干脆不设置它将会保持传统的默认寻址方式。

敬请期待2016年年初网络管理器1.2版本的发布吧!如果你想尝试一下最新的版本,不妨试试 Fedora Rawhide,它最终会变成 Fedora 24。

我想感谢 Hannes Frederic Sowa,他给了我很有价值的反馈。如果没有他的帮助,这篇文章的作用将会逊色很多。另外,Hannes 也是 RFC7217 所描述机制的内核实现者,当网络管理器不起作用的时候,它将发挥作用。


via: https://blogs.gnome.org/lkundrak/2015/12/03/networkmanager-and-privacy-in-the-ipv6-internet/

作者:Lubomir Rintel 译者:itsang 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出