Linux 的网络配置(以 CentOS 7 为例)

一、网络连接模式配置

网络连接类型有桥接、NAT、仅主机和不联网四种。

1、桥接

桥接模式:虚拟机和宿主机在网络上就是平级的关系,相当于两者连接在同一交换机上。
在这里插入图片描述

在桥接模式下,虚拟机手动配置的 IP 必须和宿主机属于同一网段,网关与 DNS 必须与宿主机网卡一致,相当于局域网内新建了一台主机

2、NAT 模式

Netword Address Translation–网络地址转换(模式):借助宿主机来上网,没桥接那么麻烦,只用配置 DNS 即可
在这里插入图片描述

缺点:扎根于宿主机,不能和局域网内其它真实的主机进行通信

桥接模式与 NAT 模式的异同点

共同点:

桥接网络和 NAT 网络全都能够通过虚拟机上网。

不同点:

桥接模式能够在局域网之间访问,能上网,应用广。
NAT 模式只能和宿主机通信,不能和局域网内其它物理主机进行通信,能上网,应用狭窄。

二、桥接模式的配置

1、编辑–>虚拟网络编辑器

在这里插入图片描述

2、修改网络配置

在这里插入图片描述 (1)桥接的物理网卡也可以设置为自动

在这里插入图片描述 (2)也可以将虚拟机的网络桥接到主机的物理网卡上面
在这里插入图片描述

在这里插入图片描述

3、编辑虚拟机的网络设置

在这里插入图片描述

三、配置静态 IP

虚拟机每次重启系统时,虚拟机的 IP 地址都会变化,这时候就需要将系统的 IP 设置为静态的。

1、查看网络配置文件

# 命令1 
cd /etc/sysconfig/network-scripts
# 命令2
ll 

可以看到最上面有 ifcfg-ens33 和 ifcfg-lo 两个文件,主要关注 ifcfg-ens33 在这里插入图片描述

2、查看网卡信息

ip addr 命令可以展示出主机上所有的网卡信息,可以看到,目前该主机上有两块网卡:lo 以及 ens33。
在这里插入图片描述
(1)lo

lo 全称是 LOOPBACK,又称回环接口,往往会被分配到 127.0.0.1 这个地址,这个地址用于本机通信,经过内核处理后直接返回,不会在任何网络中出现。
scope host:对于 lo 这张网卡来讲,是 host,说明这张网卡仅仅可以供本机相互通信。

(2)ens33

1) ens33: 表示网卡的代号
2)BROADCAST 表示这个网卡有广播的地址,可以发送广播包;MULTICAST 表示网卡可以发送多播包;LOWER_UP表示L1是启动的,也即网线插着呢;UP 表示网卡处于启动的状态;
3)Link encap:表示网络接入类型,这里是Ethernet 表示以太网!
4)MTU:链路帧长最大为1500字节
5)link/ether:硬件地址,也就 MAC 地址,图片里为 00:0c:29:f6:4f:7f

mac 地址号称全局唯一,不会有两个网卡有相同的 mac 地址,而且网卡自生产出来,就带着这个地址。MAC 地址是有一定定位功能的,只不过范围非常有限,局限在一个子网里面;所以需要添加 IP 地址来定位,IP地址是可以全网定位的

6)inet:表示 IP 地址
7)brd:表示 Broadcast,即广播地址
8)scope global:对于 ens33 这张网卡来讲,是 global,说明这张网卡是可以对外的,可以接收来自各个地方的包
8)Mask:表示子网掩码
9)inet6:ipv6 的地址

3、修改静态 ip 地址

vim /etc/sysconfig/network-scripts/ifcfg-ens33 

(注意:要用管理员身份才能编辑,否则只能读不能改,切换管理员命令:su root)
在这里插入图片描述
字段信息:

1)DEVICE:表示网卡物理设备的名字
2)BOOTPROTO :表示为网卡配置静态还是动态IP地址(dhcp 表示使用 dhcp 协议动态获取 IP 地址;static 表示手工设置静态 IP 地址;none 表示无须启动协议;bootp 表示使用BOOTP协议)
3)ONBOOT:表示启动系统时是否激活网卡,yes为激活,no不激活
4)TYPE=Ethernet :网络类型
5)HWADDR:表示网卡的MAC地址
6)GATEWAY :表示该网关地址
7)NETMASK:表示子网掩码
8)IPADDR:表示IP地址

设置 BOOTPROTO="static",这样 ip 地址就不会动态分配,也就是不会变。
设置:

IPADDR=192.168.1.110 // 必须与宿主机属于同一网段
GATEWAY=192.168.1.1 // 必须与宿主机相同的网关路由
NETMASK=255.255.255.0 // 必须与宿主机相同的子网掩码

也可以设置 DNS 和 mac:

DNS1=218.104.111.114 // 网络服务商
DNS HWADDR=00:0c:29:13:b4:c4 // 上面查询过的mac地址,粘贴上去

4、重启网卡

systemctl restart network

四、测试网络连通性的命令

1、ping——测试目标 IP 连通性

(1)ping/?

ping 命令使用帮助
在这里插入图片描述

(2)无参数 ping

在默认情况下,一般都是只发送四个 32 字节数据包,通过这个命令从数据包返回的最短时间、最长时间、平均时间可以衡量网络速度、延迟,从丢失率可以衡量网络的稳定性。
在这里插入图片描述

(3)ping -t

不间断地 Ping 指定计算机,直到管理员中断。可以说明电脑连接路由器是通的,网络效果很好。下面按按住键盘的 Ctrl+C 终止它继续 ping 下去,就会停止了,会总结出运行的数据包有多少,通断的有多少了。
在这里插入图片描述

(4)ping -n

在默认情况下无参数 ping 一般都是只发送四个 32 字节数据包,-n 可以指定发送多少数据包,通过这个命令从数据包返回的最短时间、最长时间、平均时间可以衡量网络速度、延迟,从丢失率可以衡量网络的稳定性。
在这里插入图片描述

(5)ping -l

发送指定大小的到目标主机的数据包。在默认的情况下 Windows 的 ping 发送的数据包大小为 32byte(字节),最大能发送 65500byte(字节)。当一次发送的数据包大于或等于 65500byte(字节)时,将可能导致接收方计算机瘫痪。所以微软限制了这一数值,这个参数配合其它参数同时使用危害非常强大,比如攻击者结合 -t 参数实施无限死亡之 ping 攻击。(所以它具有危险性,不要轻易向别人计算机使用)。
在这里插入图片描述

(6)ping -r

在“记录路由”字段中记录传出和返回数据包的路由,探测经过的路由个数,但最多只能跟踪到9个路由
例如:ping baidu.com -r 9(发送一个数据包,最多记录9个路由)。

2、telnet——测试目标端口连通性

telnet 为用户提供了在本地计算机上完成远程主机工作的能力,因此可以通过 telnet 来测试端口的连通性,具体用法格式:

telnet ip port

ip:是目标测试主机的ip地址
port:是端口,比如80

3、SSH——测试目标端口连通性

SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,在 linux 上可以通过 ssh 命令来测试端口的连通性,具体用法格式如下:

ssh -v -p port username@ip

说明:

-v:调试模式(会打印日志)
-p:指定端口
username:远程主机的登录用户
ip:远程主机

4、curl——测试目标端口连通性

curl 是利用URL语法在命令行方式下工作的开源文件传输工具。也可以用来测试端口的连通性,具体用法:

curl ip:port

说明:

ip:是测试主机的ip地址
port:是端口,比如80

如果远程主机开通了相应的端口,都会输出信息,如果没有开通相应的端口,则没有任何提示,需要CTRL+C断开

5、wget——测试目标端口连通性

wget 是一个从网络上自动下载文件的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理。wget名称的由来是“World Wide Web”与“get”的结合,它也可以用来测试端口的连通性具体用法:

wget ip:port

说明:

ip:是测试主机的ip地址
port:是端口,比如80

如果远程主机不存在端口则会一直提示连接主机。如果远程主机存在端口则会看到相应的信息

五、宿主机与虚拟机 ping 不通

主机与虚拟机 ping 不通,可能的一个原因就是,主机和虚拟机的防火墙阻挡了访问

关闭防火墙并设置开机不启动

systemctl status firewalld.service 		# 查看防火墙状态
systemctl stop firewalld 		# 关闭防火墙
systemctl start firewalld 		# 开启防火墙
systemctl disable firewalld 		# 开机自动关闭
systemctl enable firewalld 		# 开机自动启动
chkconfig --list|grep network(RHLE6)		# 查看开机是否启动

六、Linux 常用网络配置文件

1、/etc/sysconfig/network

用于指定服务器上的网络配置信息,包含了控制网络相关的文件和守护进程的行为参数。 NETWORK=yes/no:表示网络是否被配置;

HOSTNAME=hostname hostname:表示服务器的主机名;
GATEWAY=gw-ip gw-ip:表示网络网关的IP 地址;
FORWARD_IPV4=yes/no:是否开启IP 转发功能;
GAREWAYDEV=gw-dev gw-dw:表示网关(网卡)的设备名,如 eth0 等;

2、/etc/hosts

/etc/hosts 中包含了IP 地址和主机名之间的映射,还包括主机名的别名 IP,地址的设计使计算机容易识别,但对于人却很难记住它们,为了解决这个问题,创建了/etc/hosts 这个文件。

127.0.0.1 machine1 localhost.localdomain localhost
192.168.1.100 machine7
192.168.1.101 otherpc otheralias

/etc/hosts 文件通常含有主机名、localhost 和系统管理员经常使用的系统别名,有时候 telnet 到 Linux 机器要等待很长时间,可以通过在 ”/etc/hosts” 加入客户的机器的 IP 地址和主机名的匹配项,就可以减少登录等待时间。在没有域名服务器情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP 地址,否则,其他的主机名通常使用DNS 来解决,DNS 客户部分的配置在文件/etc/resolv.conf 中

3、/etc/services
/etc/services 中包含了服务名和端口号之间的映射,不少的系统程序要使用这个文件

tcpmux 1/tcp # TCP port service multiplexer
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users

最左边一列是主机服务名,中间一列是端口号,“/ ”后面是端口类型, 可以是TCP 也可以是UDP 。任何后面的列都是前面服务的别名。在这个文件中也存在着别名,它们出现在端口号后面,在上述例子中 sink 和 null 都是 discard 服务的别名。

4、/etc/resolv.conf 配置DNS 客户

文件/etc/resolv.conf 配置DNS
客户,它包含了主机的域名搜索顺序和 DNS 服务器的地址,每一行应包含一个关键字和一个或多个的由空格隔开的参数。

nameserver 192.168.0.36

nameserver 192.168.0.37

search yige.org

合法的参数及其意义如下:

nameserver 表明 DNS 服务器的 IP 地址,可以有很多行的 nameserver ,每一个带一个I P 地址。在查询时就按nameserver 在本文件中的顺序进行,且只有当第一个nameserver 没有反应时才查询下面的nameserver.

domain 声明主机的域名。很多程序用到它,如邮件系统;当为没有域名的主机进行 DNS 查询时,也要用到。如果没有域名,主机名将被使,用删除所有在第一个点( . )前面的内容。

search 它的多个参数指明域名查询顺序。当要查询没有域名的主机,主机将在由search 声明的域中分别查找。domain 和 search 不能共存;如果同时存在,后面出现的将会被使用。

sortlist 允许将得到域名结果进行特定的排序。它的参数为网络/掩码对,允许任意的排列顺序。Red Hat 中没有提供缺省的 /etc/resolv.conf 文件,它的内容是根据在安装时给出的选项动态创建的。

5、/etc/host.conf 配置名字解析器

有两个文件声明系统到哪里寻找名字信息来配置 UNIX名字解析器的库。文件/etc/host.conf 由版本5 的libc 库所使用,而/etc/nsswitch.conf 由版本6 使用(glibc )。
问题在于一些程序使用其中一个,而一些使用另一个,所以将两个文件都配置正确是必要的。
/etc/host.conf 文件指定如何解析主机名,Linux 通过解析器库来获得主机名对应的 IP。 地址下面是RedHat 安装后缺省的”/etc/host.conf”内容:

order hosts bind

multi on

“order ” 指定主机名查询顺序,其参数为用逗号隔开的查找方法,支持的查找方法为bind、 hosts 和nis ,分别代表DNS 、/etc/hosts 和NIS。

6、/etc/nsswitch.conf 配置名字解析器

/etc/nsswitch.conf 文件是由 Sun 公司开发并用于管理系统中多个配置文件查找的顺序,它比/etc/host.conf 文件提供了更多的功能。/etc/nsswitch.conf 中的每一行或者是注释(以#号开头)或者是一个关键字后跟冒号和一系列要试用的有顺序的方法。每一个关键字是在 /etc/ 目录可以被 /etc/nsswitch.conf 控制的 /etc 文件的名字。下面是可以被包含的关键字:

aliases 邮件别名;
passwd 系统用户;
group 用户组;
shadow 隐蔽口令;
hosts 主机名和I P 地址;
networks 网络名和号;
protocols 网络协议;
services 端口号和服务名称;
ethers 以太网号;
rpc 远程进程调用的名称和号;
netgroup 网内组;

7、/etc/xinetd.conf

redhat 7.1 及以后版本计和以往的版本有一个明显的区别,就是用 xinetd.conf 代替原来的 inetd.conf,并且直接使用了 firewall 服务。xinetd(eXtended InterNET services daemon) 对 inetd 功能进行了扩展,xinetd 的默认配置文件是 /etc/xinetd.conf,它看起来尽管和老版本的 /etc/inetd.conf 完全不同,其实只是以一个脚本的形式将 inetd 中每一行指定的服务扩展为一个 /etc/xinetd.d/ 下的配置文件,其格式为:

service service-name 
{
     
      
disabled = yes/no; //是否禁用

socket_type = xxx; //TCP/IP socket type,such as stream,dgram,raw,….

protocol = xxx; //服务使用的协议

server = xxx; //服务daemon 的完整路径

server_args = xxx; //服务的参数

port = xxx; //指定服务的端口号

wait = xxx; //是否阻塞服务即单线程或多线程

user = xxx; //服务进程的uid

group = xxx; //gid

REUSE = xxx; //可重用标志

……

} 

示例:配置ftp 服务

在/etc/xinetd.d 目录下,编辑wu-ftpd

# default: on
# description: The wu-ftpd FTP server serves FTP connections. It uses

# normal, unencrypted usernames and passwords for authentication.
service ftp
{
    
    
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.ftpd
server_args = -l -a
log_on_success += DURATION
nice = 10
}

8、/etc/modules.conf 文件

该配置文件定义了各种需要在启动时加载的模块的参数信息,文件格式如下:

alias eth0 tg3

alias eth1 3c905

9、/etc/sysconfig/network-scripts/ifcfg-ethN 文件

系统网络设备的配置文件保存在 ”/etc/sysconfig/network-scripts” 目录下,ifcfg-eth0 包含第一块网卡的配置信息,ifcfg-eth1 包含第二块网卡的配置信息

下面是 “/etc/sysconfig/network-scripts/ifcfg-eth0” 文件的示例:

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.66
NETMASK=255.255.255.0
GATEWAY=192.168.0.65

Guess you like

Origin blog.csdn.net/IT__learning/article/details/121723319