云网牛站
所在位置:首页 > Linux培训 > Linux入门记录四:网络基础和基本配置,多命令协作之管道及重定向

Linux入门记录四:网络基础和基本配置,多命令协作之管道及重定向

2017-12-03 15:14:39作者:mingc稿源:博客园

本文是Linux入门记录四,本记录为你讲述网络基础、Linux网络基本配置、Linux多命令协作之管道及重定向内容。

 

Linux入门记录系列

Linux入门记录三:获取帮助,Linux用户基础,权限机制,扩展权限

Linux入门记录二:硬件概念,fdisk分区工具,文件系统及文件挂载管理

Linux入门记录一:Bash基本,文件结构,文件操作,常用命令,vim编辑器

 

Linux 入门记录:网络基础

一、IP地址

IP 地址是因特网上的每个网络节点在全球范围内的唯一标识符,一个 IP 地址唯一标识一个主机(严格来说是标识一个网卡接口 network interface card)。

现在应用最为广泛的是 IPv4 地址,已逐渐向 IPv6 地址切换。IPv4 地址为 32 位长,IPv6 地址为 128 位长。这里主要讨论 Ipv4 地址。

一个 IPv4 地址分为两个部分:网络部分(网络号)和主机部分(主机号)。网络部分用来标识所属网络区域,主机部分用来标识该区域中的哪台主机。

所以整个 Internet 上的每台计算机都依靠各自惟一的 IP 地址来标识。

二、IPv4地址

IPv4 地址是一个 32 位的二进制串,如 11001010011100010100010010101101 。为了提高可读性,我们常把 32 位 IPv4 地址中的每 8 位转换为对应的十进制,并在每个十进制数之间插入一个点,即 202.113.68.173,这种记法就是常用的点分十进制记法。

三、子网掩码

子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个 IP 地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合 IP 地址一起使用。子网掩码只有一个作用,就是将某个 IP 地址划分成网络地址和主机地址两部分。子网掩码是一个 32 位地址,用于屏蔽 IP 地址的一部分以区别网络标识和主机标识,并说明该 IP 地址是在局域网上,还是在远程网上。

怎样判断不同 IP 在同一个局域网(网段)?

方法1:比较它们的网络号是否相同。

将 IP 号和子网掩码进行与运算,就可以得到网络号了。

方法2:直接用一台电脑 ping 另一台电脑的 IP。

如果收到数据包,则在同一局域网;如果接收超时,则不在同一局域网。

四、同一网络之间进行通信

同一网络下,主机之间基于 ARP 协议解析出对方的 MAC 地址,通过交换机实现信息帧的转发,进而实现通信。

1.MAC地址(Media Access Control Address,媒体访问控制地址)

MAC 地址中的 MAC ,人们习惯上把它称之为网卡地址、硬件地址、适配器地址,是一种物理地址,如同我们的身份证号,具有全球唯一性。

MAC 地址用一个十六进制数字来表示,共 6 字节 48 位,前 3 字节(高 24 位)是由 IEEE 的注册管理机构 RA 负责给不同厂家分配的代码,也称为“编制上唯一的标识符”,后 3 字节(低 24 位)由各厂家自行指派给生产的适配器接口,称为扩展标识符(唯一性)。一个地址块可以生成 2 ^ 24 个不同的地址。

2.ARP(Address Resolution Protocol,地址解析协议)

在 TCP/IP 网络环境下,每个主机都分配了一个 IP 地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。为了让报文在物理网路上传送,必须知道对方目的主机的物理地址(MAC 地址)。这样就存在把 IP 地址变换成 MAC 地址的地址转换问题。以以太网环境为例,为了正确地向目的主机传送报文,必须把目的主机的 IP 地址转换成为 MAC 地址。这就需要在互连层有一组服务将 IP 地址转换为相应的 MAC 地址,这组协议就是 ARP 协议。APR 协议实现了通过 IP 地址解析出物理地址,保证了通信的顺利进行。

3.交换机(switch hub)

交换机是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路,实现信息帧的转发,也称为交换式集线器。

五、不同网络之间通信

不同的网络下,需要经过路由(网关)转发实现主机间的通信。实现路由转发的可以是路由器(网关)或具有路由功能的主机。

路由

在不同网络之间传输数据的功能叫做路由功能,具有路由功能的设备叫做路由器,路由器一般有多个接口,连接到不同的网络中,并且通过路由表进行数据转发。

路由表中包含一系列路由规则,可用于判断网络流量的导向目的地。

六、域名

IP 地址很难记忆,使用一个名称更容易。用于表示 TCP/IP 地址的名字被称为域名。

一个完整的域名分为三个部分,用 "." 分割:

类型:标识该域名的类型(com, net, org, edu, gov 等等)

域名:域名称

主机名:该域中的某台主机名称

例如 "www.baidu.com","www" 主机名,"baidu" 域名,"com" 类型,连起来就是“baidu.com这个域名下的 www 主机”。

七、DNS(Domain Name System,域名解析服务器)

每个域名代表一个 IP,而 DNS 服务器就是用来在域名和 IP 之间进行双向解析的。

八、基本网络配置参数

1.配置一个局域网通信的计算机,需要:

IP 地址

子网掩码

2.配置一个跨网段通信的计算机,需要:

IP 地址

子网掩码

网关

3.配置一个可上网通信的计算机,需要:

IP 地址

子网掩码

网关

DNS

 

Linux 入门记录:Linux 网络基本配置

一、以太网(Ethernet)

以太网(Ethernet)是一种计算机局域网技术。IEEE 组织的 IEEE 802.3 标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问层协议的内容。以太网是目前应用最普遍的局域网技术,取代了其他局域网标准如令牌环、FDDI 和 ARCNET。

以太网实现了网络上无线电系统多个节点发送信息的想法,每个节点必须通过电缆或者信道才能传送信息,有时也叫作以太(Ether)。(这个名字来源于 19 世纪的物理学家假设的电磁辐射媒体-光以太。后来的研究证明光以太不存在。) 每一个节点有全球唯一的 48 位地址也就是制造商分配给网卡的 MAC 地址,以保证以太网上所有节点能互相鉴别。由于以太网十分普遍,许多制造商把以太网卡直接集成进计算机主板。

二、PCI(Peripheral Component Interconnect,外部组件互联标准)

或称 Personal Computer Interface(个人电脑接口),实际应用中简称为 PCI,是一种连接电脑主板和外部设备的总线标准。

一般 PCI 设备可分为以下两种形式:

1.直接内置于主板上的集成电路,在 PCI 规范中称作 “嵌入设备”(planar device);或者

2.安装在插槽上的扩充界面卡

PCI bus 常见于现代的个人电脑中,并已取代了 ISA 和 VESA 局部总线,成为了标准扩充总线。PCI总线亦常见于其他电脑类型中。PCI总线最终将被 PCI Express 和其他更先进的技术取代,这些技术现在已经被用于最新款的电脑中。

PCI 规范规定了该总线的物理尺寸(包括线宽)、电气特性、总线时序和协议。该规范可从美国 PCI-SIG 协会购得。

常见的 PCI 卡包括网卡、声卡、调制解调器、电视卡和硬盘控制器等,另外还有 USB 和串行端口等端口。原本显卡通常也是 PCI 设备,但很快其频宽已不足以支持显卡的性能。PCI 显卡现在仅用在需要额外的外接显示器或主板上没有 AGP 和 PCI Express 槽的情况。

三、Linux的网络接口

Linux 的网络接口(interface)并不存在一定的命名规范,但都是有意义的:

eth0:一般用于以太网(Ethernet)接口,0 表示是第一块网卡

wifi0:wifi 是无线局域网,因此 wifi0 一般指无线网络接口

ath0:一般指 atheros 芯片所包含的无线网络接口

lo:local,一般指本地环回接口,是一种虚拟网络接口,基本每个 Linux 都有这个接口

虚拟网络接口并不真实地从外界接受和发送数据包,而是在系统内部接受和发送数据包,因此虚拟网络接口不需要驱动程序。

虚拟网络接口和真实的网络接口在使用上是一致的。

命令 lspci 可以显示当前主机的所有 PCI 总线信息,以及所有已连接的 PCI 设备信息。(如果是 usb 网卡,则可能需要使用 lsusb 命令)。

命令 ifconfig 用来查看网络接口信息:

ifconfig -a     查看所有接口

ifconfig eth0   查看特定接口

命令 ifup 、 ifdown 用来激活、禁用一个网络接口:

ifup eth0       激活eth0

ifdown eth0     禁用eth0

下面是我在 Vitual Box 里 CentOS 操作系统的一些硬件信息。

PCI 设备信息:

Linux入门记录四:网络基础和基本配置,多命令协作之管道及重定向

网络接口信息:

Linux入门记录四:网络基础和基本配置,多命令协作之管道及重定向

上图中网卡 eth0 的参数信息如下:

第 1 行      连接类型(Link encap):Ethernet(以太网);硬件地址(MAC地址):08:00:27:85:37:B4

第 2 行      IPv4 地址(inet addr)、子网(Bcast)、掩码(Mask)

第 3 行      IPv6 地址(inet6 addr)

第 4 行      UP:网卡已开启;RUNNING:网卡的网线已经被接上;MULTICAST:支持组播;MUT:最大传输量(单位,字节)

第 5、6 行   接收、发送数据包情况统计

第 8 行      接收、发送数据字节数统计

执行 ifconfig 命令后仅有 IPv6 而没有 IPv4 地址的解决办法:

1.首先确保你的网卡已经激活(使用 ifup eth0 命令)

2.使用 dhclient 命令来动态获取 IP,然后再次执行 ifconfig 命令即可看到 Ipv4 地址。

但是系统重启后会失效,永久生效的方法是:

1.修改相应网卡的配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0,将 ONBOOT 属性设置为 yes,

2.再执行 service network restart 命令即可。用 ifconfig 命令就可以随时看到 eth0 的 IPv4 地址了。

激活、禁用接口:

Linux入门记录四:网络基础和基本配置,多命令协作之管道及重定向

四、配置网络信息

我在 VitualBox 中(桥接模式)对 CentOS 的静态 IP 配置如下。

使用 setup 命令用类“图形化”界面设置 Linux,在终端输入 setup ,回车,进入交互界面。

Linux入门记录四:网络基础和基本配置,多命令协作之管道及重定向

选择网络配置 "NetWork configuration","Run Tool" 进入下一步。

Linux入门记录四:网络基础和基本配置,多命令协作之管道及重定向

选择硬件配置"Device configuration",回车进入下一步。

Linux入门记录四:网络基础和基本配置,多命令协作之管道及重定向

选择配置 eth0 网卡,回车。

Linux入门记录四:网络基础和基本配置,多命令协作之管道及重定向

上图中参数详解:

Name: 接口名

Device: 设备名

Use DHCP: 是否使用DHCP方式获取IP

(家用电脑一般是,服务器IP一般否、需要配置静态IP,DHCP(Dynamic Host Configuration Protocol,动态主机设置协议)用于内部网络服务自动分配IP)

Static IP: 静态IP

Netmask: 子网掩码

Default gateway IP: 默认网关IP(与IP属同一网段)

Primary DNS Server: 主DNS服务器IP(不确定就填谷歌的8.8.8.8)

Secondary DNS Server: 备用DNS服务器IP

Peer DNS: 是否接受DHCP服务器指派的DNS服务器地址

On boot: 是否在引导时随网络服务的开启而激活(建议勾选[单击空格键],这样在网络服务重启时就不必手动激活网卡了)

Controlled by NetworkManager: 是否受图像化程序NetworkManager的控制。

配置网络参数如下:

Linux入门记录四:网络基础和基本配置,多命令协作之管道及重定向

配置完毕,后面基本都是确定保存下一步。"Ok" 下一步。

Linux入门记录四:网络基础和基本配置,多命令协作之管道及重定向

"Save" 进入下一步。

Linux入门记录四:网络基础和基本配置,多命令协作之管道及重定向

"Save&Quit" 进入下一步。

Linux入门记录四:网络基础和基本配置,多命令协作之管道及重定向

"Quit" 退出 setup 命令环境。

eth0 的网络参数配置完毕,最后重启网络服务 service network restart 即可。

Linux入门记录四:网络基础和基本配置,多命令协作之管道及重定向

测试成功:

Linux入门记录四:网络基础和基本配置,多命令协作之管道及重定向

五、网络配置相关文件

文件 路径
网卡eth0的配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0
DNS配置文件 /etc/resolv.conf
网络配置文件 /etc/sysconfig/network
本地hosts文件 /etc/hosts

1.网卡eth0的配置文件

/etc/sysconfig/network-scripts/ifcfg-eth0:

Linux入门记录四:网络基础和基本配置,多命令协作之管道及重定向

参数解释如下:

DEVICE:设备名

HWADDR:硬件地址(MAC地址)

TYPE:连接类型(譬如Ethernet,以太网)

UUID:设备标识号

ONBOOT:是否在引导时随网络服务的开启而激活(建议yes,这样在重启网络服务时就不必手动激活网卡了)

NM_COTROLLED:是否受图像化的程序NetworkManager控制

BOOTPROTO:启动协议(none|static|dhcp,static静态获取IP,dhcp动态获取IP)

USERCTL:是否允许普通用户控制此接口

PEERDNS:是否接受DHCP服务器指派的DNS服务器地址

IPV6INIT:是否支持IPv6

IPADDR:IPv4地址

NETMASK:子网掩码

GATEWAY:网关

DNS1、DNS2:俩DNS 

2.DNS配置文件

/etc/resolv.conf:

Linux入门记录四:网络基础和基本配置,多命令协作之管道及重定向

一行一个DNS配置,这是我们刚才已经配过的两个DNS。

3.网络配置文件

/etc/sysconfig/network:

Linux入门记录四:网络基础和基本配置,多命令协作之管道及重定向

这个文件是服务器的一些网络配置,如主机名(HOSTNAME)、网关(GATEWAY)等等。

详细:/etc/sysconfig/network 文件 

该文件用来指定服务器上的网络配置信息,下面是一个示例: 

NETWORK=yes 

RORWARD_IPV4=yes 

HOSTNAME=deep.openarch.com 

GAREWAY=0.0.0.0 

GATEWAYDEV= 

NETWORK=yes/no     网络是否被配置; 

FORWARD_IPV4=yes/no    是否开启IP转发功能 

HOSTNAME=hostname hostname表示服务器的主机名 

GAREWAY=gw-ip     gw-ip表示网络网关的IP地址 

GAREWAYDEV=gw-dev   gw-dw表示网关的设备名,如:etho等 

注意:为了和老的软件相兼容,“/etc/HOSTNAME”文件应该用和HOSTNAME=hostname相同的主机名。

4.本地hosts文件

/etc/hosts:

Linux入门记录四:网络基础和基本配置,多命令协作之管道及重定向

六、网络测试命令

测试网络连通性:

ping 192.168.1.210

ping www.locallinux.com

测试 DNS 解析:

host www.locallinux.com

dig www.locallinux.com

显示路由表:

ip route

追踪到达目的地址过程中经过的网络路径:

traceroute www.locallinux.com

使用 mtr 命令进行网络质量测试(结合了 traceroute 和 ping ,会显示一个动态更新的路由表):

mtr www.locallinux.com 

七、修改主机名

暂时性修改主机名

hostname www.localhost.com

永久性修改主机名

编辑网络配置文件 /etc/sysconfig/network

HOSTNAME=www.localhost.com 

八、网络故障排查

网络故障排查遵循从底层到高层、从自身到外部的流程进行。

1.首先检查网络配置是否正确:

IP地址

子网掩码

网关

DNS

2.检查到达网关是否连通:

ping 网关IP

3.检查DNS解析是否正常:

host www.locallinux.com

 

Linux 入门记录:Linux 多命令协作:管道及重定向

一、多命令协作

在 Linux 系统当中,大多数命令都很简单,很少出现复杂功能的命令,每个命令往往只实现一个或多个很简单的功能。通过将不同功能的命令组合一起使用,可以实现某个复杂功能的。

Linux 中几乎所有命令的返回数据都是纯文本的(因为每个命令都是运行在 CLI 下),而纯文本形式的数据又是绝大多数命令的输入格式,这就让多命令协作成为可能。

Linux 的命令行提供了管道和重定向机制,多命令协作就是通过管道和重定向完成的。

二、标准流

对于一个终端而言,可能要处理各种类型的数据,int 型、float 型、double 型、char 型、string 型,甚至是一个文本文件,终端更重视数据本身的内容,无视这些数据的类型而着重于他们的内容,将它们抽象为一个“流”(Stream)的概念。数据流一般也称 I/O 流。

每一个终端几乎都会有数据流的 I/O(输入输出),普遍地,基于流的走向和用途有输入流、输出流、错误流、文件流等等,而一般地,有 3 个默认的标准流:

名称 说明

编号

(文件描述符)

默认设备
STDIN 标准输入流 0 键盘
STDOUT 标准输出流 1 终端
STDERR 标准错误刘 2 终端

STDIN 表示标准输入流 ,一般默认是键盘,文件描述符为 0。 STDOUT 和 STDERR 分别表示标准输出流和标准错误流,一般默认是终端,文件描述符分别为 1 和 2。

三、管道和重定向

1.重定向

重定向可以将 I/O 流定向(关联)到文件,而不是默认的终端。重定向通常用来将某命令的输出或错误信息保存到一个指定的文件中。

常见的操作符有以下几个:

>       将STDOUT重定向到文件(覆盖)

>>      将STDOUT重定向到文件(追加)

2>      将STDERR重定向到文件(覆盖)

2>&1    将STDERR和STDOUT重定向到文件(覆盖)

<       将STDIN重定向到文件

示例:

echo Hello,Linux > echo.md     打印一段语句,输出到文件

echo cnblogs.com >> echo.md    打印一段语句,追加到文件

ls noexist  2> ls.md           列出目录,将错误信息输出到文件

ls noexist 1> a.md 2>&1        列出目录、输出到文件,并把错误信息合并到标准输出(也输出到文件)

cat > output.md < input.md     input.md文件作为标准输入,output.md作为标准输出

2.管道

管道操作可以实现将一个命令的输出作为另一个命令的输入。管道通常用来组合不同的命令,以实现一个复杂的功能。

操作符:

|   将一个命令的STDOUT作为另一个命令的STDIN

示例:

ls -ld . | cat > ls.md     列出目录信息并输出到文件

 

相关文章

第12章 使用Samba或NFS实现文件共享

精选文章
热门文章