网卡生产商在每一张网卡(NIC)在出厂时都会在上面刻上一个48位的全球唯一标识符(GUID,例如08:4f:b5:05:56:a0),这串 GUID 就是网卡的 MAC 地址,用于确定一张网卡的身份。MAC 地址的高24位叫 OUI(Organizationally Unique Identifier 组织唯一标示符),是为网卡设置 MAC 地址的组织的标识符,这样一来,不同组织设置的 MAC 地址就不会冲突了。(译注:实际生产中,并不是每个网络设备都有不同的MAC地址,有时候地址空间不足,生产商会给发往不同地区国家的产品中用相同的地址空间。)
虽然 MAC 地址由厂商指定,但用户可以改变它,这就是传说中的“MAC 地址欺骗”。本文将向大家展示如何在 Linux 上玩 MAC 地址欺骗。
为什么要玩 MAC 地址欺骗?
想要理由?这里就给几个比较有技术含量的理由。 一些网络供应商会通过绑定你家路由器上的 MAC 地址来验证你的身份,这个时候如果你的路由器坏了,你怎么办?你可以暂时把你的电脑的 MAC 地址改成你家路由器的 MAC 地址,让你的 ISP 重新将你连入外网。(译注:有这种事情么?)
很多 DHCP 服务器会依赖 MAC 地址来分配 IP 地址。如果你想换一个分配给你的 IP 地址,你可以改改你的 MAC 地址。这样一来,你不必等着 DHCP 服务器给你重新分一个 IP 地址,而是马上就能得到一个新的。
除了技术原因外,这里也有一些比较正当的理由来说明你为什么需要改变你的 MAC 地址:为了隐私、为了安全,你要把你真正的 MAC 地址隐藏起来。不像处在 ISO 模型第三层的 IP 地址会经常变来变去,你的 MAC 地址可不会改变。在你说我多疑之前,请确定你知道你的隐私到底是什么东西。有一个入侵手段叫 piggybacking,黑客会在公共 WiFi 网络下伪装成你的 MAC 地址,并且在你不在场的时候伪装成你的身份进行黑客活动。
怎么临时性地改变 MAC 地址?
你可以在 Linux 运行的时候改变 MAC 地址。需要注意的是当 MAC 地址转换的那一会时间,你的网络会掉线。当电脑重启时 MAC 地址又会变回原来的。下面介绍几种方法来改变你的 MAC 地址。
方法一:iproute2
$ sudo ip link set dev eth0 down
$ sudo ip link set dev eth0 address 00:00:00:00:00:01
$ sudo ip link set dev eth0 up
方法二:macchanger
macchanger 这个命令可以让你把 MAC 地址改成不同生产厂商的序列号。
在 Debian,Ubuntu 或 Linux Mint 下安装 macchanger:
$ sudo apt-get install macchanger
在 Fedora 下安装 macchanger:
$ sudo yum install macchanger
在 CentOS 或 RHEL 下安装 macchanger:
$ wget http://ftp.club.cc.cmu.edu/pub/gnu/macchanger/macchanger-1.6.0.tar.gz
$ tar xvfvz macchanger-1.6.0.tar.gz
$ cd macchanger-1.6.0
$ ./configure
$ make
$ sudo make install
tecmint@tecmint:~$ sudo apt-get install nethogs
[sudo]password fortecmint:
Reading package lists...Done
Building dependency tree
Reading state information...Done
The following NEW packages will be installed:
nethogs
0 upgraded,1 newly installed,0 to remove and 318 not upgraded.
Need to get 27.1kB of archives.
After this operation,100kB of additional disk space will be used.
Get: 1 http://in.archive.ubuntu.com/ubuntu/ quantal/universe nethogs i386 0.8.0-1 [27.1 kB]
Fetched 27.1kB in 1s (19.8kB/s)
Selecting previously unselected package nethogs.
(Reading database... 216058 files and directories currently installed.)
Unpacking nethogs(from .../nethogs_0.8.0-1_i386.deb)...
Processing triggers forman-db...
Setting up nethogs(0.8.0-1)...
-d: delay for refresh rate.
-h: display available commands usage.
-p: sniff in promiscious mode (not recommended).
-t: trace mode.
-V: prints Version info.
NetHogs 交互控制
以下是NetHogs的一些很有用的交互控制(键盘快捷键)
-m: Change the units displayed forthe bandwidth inunits like KB/sec->KB->B->MB.
-r: Sort by magnitude of respectively traffic.
-s: Sort by magnitude of sent traffic.
-q: Hit quit tothe shell prompt.
想要NetHogs命令行工具的完整参数列表请参考NetHogs的手册,使用方法是在终端里输入‘man nethogs‘ 或者 ‘sudo man nethogs‘,更多信息请参考NetHogs项目主页.
#
# hosts.deny This file contains access rules which are used to
# deny connections to network services that either use
# the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# The rules in this file can also be set up in
# /etc/hosts.allow with a 'deny' option instead.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
#
vsftpd:172.16.16.1
下一个驱动是在ISA或者PnP总线卡上的gameport驱动(Classic ISA and PnP gameport support)。ISA代表”Industry Standard Architecture”(工业标准架构)并且它是一种在PCI之前的并行总线标准。PnP代表”Plug-and-Play”(即插即用)并且他是一种在ISA之前的通用标准。
下面的驱动允许串口用于连接一个终端后作为控制台(Console on 8250/16550 and compatible serial port)。
一些UART控制器支持直接内存访问(DMA support for 16550 compatible UART controllers)。UART代表的是”Universal Asynchronous Receiver/Transmitter”(通用异步收发)。UART控制器转换串行到并行,反之亦然。
可以设置最大数量支持的串口(Maximum number of 8250/16550 serial ports),接着是在启动中注册的最大数量(Number of 8250/16550 serial ports to register at runtime)。
为了扩展像HUB6的串行能力,启用这个驱动(Extended 8250/16550 serial driver options)。
一个特殊驱动用于支持多于4种的过时串口(Support more than 4 legacy serial ports)。
当启用这个驱动后,可以共享串口中断(Support for sharing serial interrupts)。
使用这个驱动可以自动检测串口中断请求(Autodetect IRQ on standard ports)。
RSA串口同样也在Linux内核中支持(Support RSA serial ports)。RSA代表的是”Remote Supervisor Adapter”(远程管理适配器)。RSA是一种IBM特定的硬件。
下面,有不同的供应商/设备特定驱动。
下面有一个使用printk输出用户信息的TTY驱动(TTY driver to output user messages via printk)。printk(print kernel)是一种通常打印启动信息的特殊软件。任何由printk显示的字符串通常在/var/log/messages文件里。shell命令”dmesg”显示所有被printk使用的字符串。
root@tecmint:~# apt-get install fortune (for aptitude based system)
root@tecmint:~# yum install fortune (for yum based system)
root@tecmint:~# fortune
You're not my type. For that matter, you're not even my species!!!
Future looks spotty. You will spill soup in late evening.
You worry too much about your job. Stop it. You are not paid enough to worry.
Your love life will be... interesting.
4. 命令:rev(翻转)
它会把传递给它的的每个字符串都反过来,是不是很好玩。
root@tecmint:~# rev
123abc
cba321
xuniL eb ot nrob
born to be Linux
那么该如何参与Github的开源项目呢?相信很多人都有这方面的疑问,网上也有一些参差不齐的教程教大家如何“Pull Request”、如何“Commit”等等。但这些教程往往不够全面或不够完全正确,搞不好可能让你陷入一个误区。鉴于此,前几天Github官方团队写了一篇很棒的文章 Contributing to Open Source on GitHub,专业指导大家如何参与Github的开源项目。 下面是 原文的翻译。
Wget 是一个 GNU 项目,它的名称参考了 World Wide Web (WWW)。Wget 在递归下载方面做得很好,你可以将整个网站的内容都下到本地,然后访问本地的 HTML 文件。它支持多种操作系统:Windows,Mac,Linux。它支持多种协议,可通过 HTTP,HTTPS 和 FTP 下载文件。它可以对整个网站做一个镜像(完全将目标网站的文件下载到本机),支持代理,支持断点传输(即下载可暂停)。
安装 Wget
Wget 也是一个 GNU 项目,在标准 Linux 发行版中都有内置,就是说你不用下载安装它就可以使用了。万一,它没有被默认安装,你也可以通过 APT 或 YUM 安装。
diff --git a/README.md b/README.md
index 88fcf69..8614873 100644
--- a/README.md)
+++ b/README.md
@@ -28,6 +28,7 @@ All the hidden and not hidden features of Git and GitHub. This cheat sheet was i
- [Merged Branches](#merged-branches)
- [Quick Licensing](#quick-licensing)
- [TODO Lists](#todo-lists)
+- [Relative Links](#relative-links)
- [.gitconfig Recommendations](#gitconfig-recommendations)
- [Aliases](#aliases)
- [Auto-correct](#auto-correct)
@@ -381,6 +382,19 @@ When they are clicked, they will be updated in the pure Markdown:
- [ ] Sleep
(...)
Nova Docker driver 嵌入一个微小的HTTP 客户端 与 Docker内部REST API 通信,使用HTTP API 来控制Docker容器与获得容器信息。通过配置Glance,Docker 就能从Glance获得跟上传镜像。关于Docker与Nova集成详细配置方法,请详见https://wiki.openstack.org/wiki/Docker
Docker与Heat集成
在OpenStack中,社区更倾向于使 用Heat来协调使用Docker,而不是在Nova中把它当作一种hypervisor 使用。 Nova Docker driver这种方式有些缺点,例如,标准的API 扩展使用虚拟机特有的功能,但这些功能对于Docker并不适用,而且把Docker当作虚拟机来使用,Nova很难利用Docker有用的功能,例如连接容器(主要指Docker容器间通信),基于以上的原因,Heat是更好的选项。