Linux基础六(网络管理)

目录

一、网络配置

1. IP 地址配置

2. 网络配置文件

3. 虚拟机网络配置参数

二、网络命令

1. 网络环境查看命令

2. 网络测试命令

三、远程会话安全协议-SSH原理

1. SSH 原理

2. SSH 命令

一、网络配置

1. IP 地址配置

在 Linux 中配置 IP 地址,主要有 4 种方式,① ifconfig 命令临时配置 IP 地址;② setup 工具永久配置 IP 地址;③ 修改网络配置文件;④ 图形界面修改 IP 地址。本节仅介绍前两种方式。

1.1 ifconfig 临时配置 IP 地址

ifconfig 可以临时修改 IP 地址,当系统重启之后会恢复到原来的 IP 地址,一般我们只有在做实验的时候使用这个命令去修改 IP 地址。但实际上,ifconfig 命令不仅可以配置 IP 地址,还可以查看 IP 地址及相关信息,而后者则是该命令最主要的功能。

(1) 查看 IP 地址与网络状态

[root@localhost ~]# ifconfig			// 查看与配置网络状态

eth0  Link encap:Ethernet  HWaddr 00:0C:29:A1:80:3F  
      inet addr:192.168.119.133  Bcast:192.168.119.255  Mask:255.255.255.0
      inet6 addr: fe80::20c:29ff:fea1:803f/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:46 errors:0 dropped:0 overruns:0 frame:0
      TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:6218 (6.0 KiB)  TX bytes:6555 (6.4 KiB)

lo    Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:16436  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

其中:

  1. loopback 是本地回环网卡,该网卡的 IP 地址是 127.0.0.1,代表的是当前计算机本机,只要该网卡能被 ping 通,则说明当前计算机的网络协议能正常运行。
  2. 网卡在 Linux 当中也是一个文件,eth0 代表第一块网卡,eth1 代表第二块网卡以此类推。
  3. 在第一段输出中,展示了该网卡使用的网络类型(Ethernet),物理地址(00:0C:29:A1:80:3F),网络地址(192.168.119.133),广播地址(192.168.119.255)以及掩码(255.255.255.0),RX是接收的数据包,TX 是发送的数据包,大小分别为6.0Kb和6.4Kb

(2) 配置临时生效的 IP 地址

[root@localhost ~]# ifconfig eth0 192.168.10.1 netmask 255.255.255.0	// 临时设置 eth0 网卡的 IP 地址和掩码

1.2 setup 工具永久配置 IP 地址

setup 工具可以永久修改 IP 地址,当系统重启之后也不会恢复到原来的 IP 地址,是一个窗口模式的图形界面。但 setup 是 RedHat 系列专有命令,不过在企业当中用的系统也都是 RedHat 系列,所以只要能用,还是挺方便的。如下图所示:

setup

因为类似图形界面的配置,过程很简单,这里就不再赘述。但是需要注意的是:IP 配置完成之后,要记得重启一下网络服务:service network restart

2. 网络配置文件

在 Linux 中,修改 IP 地址最原始也是最标准的方式,就是修改网络配置文件,Linux 中的网络配置文件一共有 3 个,分别是网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0、网络及主机名配置文件:/etc/sysconfig/network 和 DNS 配置文件:vi /etc/resolv.conf。细心的同学可以发现,这 3 个文件是有规律的,第一个文件放在三级目录下,第二个文件放在二级目录下,第三个文件放在一级目录下。这东西要背下来!

2.1 网卡配置文件

实际上 setup 命令的配置最终也是写在这个文件下。我们不妨看一下该文件的内容:

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0		# 网卡设备名,需和设备文件名一致
TYPE=Ethernet	# 网络类型
UUID=9aba7ee0-2443-456a-9918-99e9478952d7	# 唯一识别码(CentOS6以后很重要)
IPADDR=192.168.119.128
GATEWAY=192.168.119.254
NETMASK=255.255.255.0
ONBOOT=yes		# 是否随网络服务启动,eth0 生效(要改成yes,否则重启网络服务后依然没生效)
NM_CONTROLLED=yes	# 是否可以由 Network Manager 图形管理工具托管(只有安装了图形界面才起作用,否则可能会出错)
BOOTPROTO=dhcp	# IP 地址获取方式(none|static|dhcp)
DEFROUTE=yes	#
IPV4_FAILURE_FATAL=yes	#
IPV6INIT=no		#  IPv6 是否启用
NAME="System eth0"	# 
HWADDR=00:0C:29:A1:80:3F	# MAC 地址
USERCTL=no		# 是否允许非 root 用户控制此网卡
PEERDNS=no		# 
PEERROUTES=yes	# 

其中:等号左侧大写,等号右侧小写。在 Linux 当中,一般来说配置文件都按这个格式写。

2.2 主机名文件

另外还有一个文件:/etc/sysconfig/network,里面的内容是:

[root@localhost ~]# vi /etc/sysconfig/network
NETWORKING=yes		# 网络服务是否开启
HOSTNAME=localhost.localhostdomain	# 计算机主机名可以默认也可以修改

需要注意的是:

  1. 在配置文件中修改了主机名之后,必须重启计算机才能生效
  2. 可以直接用 hostname wusr 来临时修改主机名

2.3 DNS 配置文件

[root@localhost ~]# vi /etc/resolv.conf
; generated by /sbin/dhclient-script
search .com		# 当域名没敲全时自动补全后的搜索
nameserver 192.168.122.2	# 指定了 DNS 服务器的 IP 地址
  1. 如果有多个 DNS 地址,可以空格 + ipaddress 或者换行再写 nameserver+ipaddr
  2. search localdomain 的意思是,当你去 ping 百度的时候,没有将百度的域名打全,如 ping www.baidu ,则会尝试用 .comwww.baidu 组合起来 ping。实际上用处有限

3. 虚拟机网络配置参数

即使在系统当中做了如上配置,若 VMware 上没有正确配置网络参数,则依然不能正确上网。在 VMware 中一共支持 3 种网络连接模式,分别是:仅主机模式、NAT 模式和桥接模式。

3.1 桥接

选择桥接模式时,虚拟机与真实机用的是真实机的网卡进行通信,如真实机用的以太网卡,则虚拟机也是用的以太网卡。桥接模式最为简单,只要虚拟机和真实机的 IP 地址配置在同一网段下就能正常通信及访问外网。缺点是这种方式需要占用真实网段的一个 IP 地址,不过在做一些复杂的实验的时候这种方式更方便。

3.2 NAT

选择 NAT 模式时,虚拟机与真实机之间的通信使用 VMnet8 这块虚拟网卡,并且再 VMnet8 上做 NAT 和 DHCP。NAT 和 Host-Only 模式下,虚拟机不能和局域网下的任何一台主机通信,除了宿主机。但是 NAT 还可以上网,而 Host-Only 则连网都上不了。

3.3 仅主机

选择仅主机模式时,虚拟机用 VMnet1 这块虚拟网卡,此时虚拟机只能和真实机之间进行通信,不能上网。

3.4 正确上网方式

所以要使虚拟机能够正确上网,可以按照以下步骤进行:

  1. setup 工具或者在网卡配置文件中进行网络配置,包括 IP 地址,网关掩码以及 DHCP、DNS 的配置;
  2. 启动网卡,首先 vi /etc/sysconfig/network-script/ifcfg-eth0,将 ONBOOT 改为 yes,再重启网络服务 service network restart
  3. 若虚拟机是从其他地方进行拷贝,则要修改 UUID。修改方法是:
  4. 删除网卡配置文件中的 MAC 地址行;
  5. 删除网卡和 MAC 地址绑定的文件:rm -rf /etc/udev/rules.d/70-persistent-net.rules
  6. 重启系统
  7. 在 VMware 上将网络模式设为 桥接 模式,注意要桥接到当前真实机正在使用的网卡上:VMware->WorkStation->编辑->虚拟网络编辑器->VMnet0->(无线的选wireless的网卡,其他的自己判断,自动的话可能会出错)->确定

二、网络命令

在上文中,可能已经介绍过一些命令,但是还是有些杂,现在做一个总结。

1. 网络环境查看命令

1.1 ifconfig

这条命令最主要的是看 IP 地址,其他的信息了解一下就好了,但是 ifconfig 不能够看到 DNS 和 网关。要看网关得借助 netstat -rnroute -n;要看 DNS 得借助 nslookup 命令。

1.2 ifupifdown

ifup eth0 启用 eth0 网卡;ifdown lo 禁用 lo 网卡。

1.3 netstat

这是一个很重要的命令,用于查询我们的网络状况,具体选项如下:

[root@localhost ~]# netstat -tunla		// 查看系统开启了哪些服务(通过开启的端口来判断)
-t	列出 TCP 协议端口 
-u	列出 UDP 协议端口
-n	不使用域名与服务,而使用 IP 地址和端口号
-l	仅列出正在监听的网络服务
-a	列出所有网络链接

[root@localhost ~]# netstat -rn			// 查看路由表和网关
[root@localhost ~]# route -n			// 与 netstat -rn 等效
[root@localhost ~]# route add default gw 192.168.1.1	// 临时修改网关(注意要和当前IP地址同网段,没什么作用)

所以一般可以用 setup 来设置网关,用 netstat -rn 或者 route -n 来查询网关。

1.4 nslookup

我们已经知道了查看 IP 地址和网关的相关命令,那么 DNS 的查看就需要用到 nslookup 命令了。

nslookup [域名] 用来翻译域名对应的 IP 地址
[root@localhost ~]# nslookup www.baidu.com
Server:			202.106.0.20		# DNS 服务器(首选)
Address:		202.106.0.20#53		# IP+Port

Non-authoritative answer:
Name:		www.baidu.com			# baidu 域名
Address:	116.213.120.231			# baidu 地址
Name:		www.baidu.com
Address:	116.213.120.232

1.5 命令总结

  1. ifconfig 命令:查看网卡配置信息(主要是 IP 地址),临时修改 IP 地址
  2. ifdown eth0ifup lo 命令:网卡的禁用与启用
  3. netstat -rnroute -n 命令:查看路由表(主要是网关)
  4. nslookup 命令:翻译域名对应的 IP 地址(主要是看 DNS)

2. 网络测试命令

2.1 常规命令

有 4 条命令比较简单,我就不分标题了,把它们放在一起介绍:

  1. ping命令:这是最常见的网络测试命令,在 ping 后面直接跟上 IP 地址或者域名即可,当然可以使用 -c 选项指定 ping 的次数。如:ping 192.168.119.128 -c 10
  2. telnet命令:这是一条远程管理和端口探测的命令,是非加密的。其格式是 telnet [IP] [port],不加端口是远程管理,加端口用于探测对方有没有开启某个端口。
  3. traceroute命令:这是一条路由跟踪命令,可以返回访问目的地址的经过路径。其格式是 traceroute [IP或域名],若返回 * * * 则代表该节点禁 ping 了。
  4. wget命令:用于下载网络上的内容。其格式是 wget [URL],如 wget http://soft.vpser.net/lnmp/lnmp1.1-full.tar.gz

2.2 tcpdump 抓包命令

接下来的一条命令 tcpdump 内容比较多,也比较有趣,我把它分开来单独介绍:

[root@localhost ~]# tcpdump -i eth0 -nnX port 21	// 抓取经过 eth0 网卡的 ftp 报文
[选项]:
	-i		指定网卡
	-nn		将数据包的[域名+服务]转为[IP+端口]的形式
	-X		以16进制和ASCII码显示数据包的内容
	port 	指定监听的端口

对于 tcpdump 命令,可以做一个 FTP 实验来抓取数据包:

  1. 开启系统的 FTP 服务:service vsftpd start,启动的前提是系统已经安装了 FTP 服务(yum -y install vsftpd)
  2. 在 windows 的命令行中敲上 ftp 192.168.0.4 然后输入用户名和密码,在 Linux 上就能通过 tcpdump 命令抓到报文,而且 ftp 是明文的可以直接看到账号密码。极不安全,所以我们下一节介绍 SSH 协议。

以上就是 Linux 当中一些常用的网络测试命令。

三、远程会话安全协议

1. SSH 原理

SSH(Secure Shell)协议是使用了非对称的加密技术,对传输的数据进行加密。在介绍非对称加密技术的原理前,先介绍一下对称加密技术的原理:对称加密指的是加密和解密使用同一密钥,A 用密码对数据进行加密之后发送给 B,B 再用 A 使用的加密密码对数据进行解密,在二者交互的过程中,密码是要在网络上进行传送的,也就是说密码也有可能被黑客抓取到,这样一来,对数据的加密就形同虚设,因为黑客可以利用抓取到的密码对数据进行解密。为了使密码不用在网络中传输,非对称加密技术诞生:非对称加密是指 A 和 B 双方各自持有自己的密码,并且根据自己的密码生成一个密钥对(公钥和私钥,其中公钥对外公开私钥自己保留,A 用 B 的公钥加密后 B 只能用 B 的私钥解密),在 A 要将数据发送给 B 时,从 B 处获得 B 的公钥,并使用自己和 B 的公钥对数据进行加密,加密后的数据只能用 A 或 B 的私钥解密。所以,即使被黑客抓取到了传输中的数据,也没办法解密。SSH 就是基于这个原理对数据进行加密的协议。

2. SSH 命令

2.1 ssh 远程登录设备

命令格式:

[root@localhost ~]# ssh 用户名@ip	// 以用户名的身份登录 IP 地址为 ip 的服务器

2.2 scp 下载和上传文件

下载命令格式:

[root@localhost ~]# scp [-r] [-P port] 用户名@ip:文件路径 本地路径
选项:
	-r	下载一个目录

[root@localhost ~]# scp [-r]  [-P port] 本地路径 用户名@ip:上传路径
选项:
	-r	上传一个目录
posted @ 2017-12-13 10:49  蚂蚁有毒  阅读(365)  评论(0编辑  收藏  举报