linux--ubuntu网络配置

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_38880380/article/details/99442543

1 介绍

1.1 linux配置网络的方式很多

  • 图形界面方式(通过network-manager进行配置)
  • ifconfig命令临时配置IP地址(临时配置IP地址,即当我们重启计算机或重启网络服务后,配置将失效)
  • 命令行方式(修改网络配置文件)
    其中Ubuntu有Server版和Desktop版,又有直接安装在处理器上和装在虚拟机上。

1.2 interfaces和 nm(network-manager)之间的关系

首先,当系统内没有第三方网络管理工具(比如nm)时,系统默认使用interfaces文件内的参数进行网络配置。
接着,当系统内安装了 nm之后,nm默认接管了系统的网络配置,使用nm 自己的网络配置参数来进行配置。
但是,如果用户在安装nm之后(Desktop版本默认安装了nm),自己手动修改了interfaces 文件,那nm 就自动停止对系统网络的管理,系统改使用interfaces 文件内的参数进行网络配置。
此时,再去修改nm 内的参数,不影响系统实际的网络配置。若要让nm 内的配置生效,必须重新启用nm 接管系统的网络配置。

2 配置文件详解

2.1 在Ubuntu系的Linux系统里,与网络相关的主要设置文件

/etc/host.conf 配置域名服务客户端的控制文件
/etc/hosts 配置主机名和IP地址的映射
/etc/resolv.conf 域名服务客户端的配置文件,指定域名服务器的IP地址
/etc/network/interfaces 用于设置网络配置信息(IP地址,子网掩码,网关IP等)
/etc/udev/rules.d/70-persistent-net.rules 记录主机中所有网卡的MAC地址
/etc/xinetd.conf 定义了由进程守护程序xinetd所守护的网络服务
/etc/networks 实现域名与网络地址的映射
/etc/protocols 设定主机使用的协议及各个协议的协议号(协议ID)
/etc/services 设定主机上各个网络服务进程所使用的端口号

2.2 /etc/host.conf配置文件

/etc/host.conf文件的默认内容如下:
The"order" line is only used by old versions of the C library.
order hosts,bind #指定主机名的解析顺序,即本地解析,DNS域名解析
multi on #允许主机拥有多个IP地址
这个文件一般不需要我们修改,默认的解析顺序是本地解析,DNS服务器解析。也就是说在本系统里对于一个主机名首先进行本地解析,如果本地解析没有,然后进行DNS服务器解析。

2.3 /etc/hosts配置文件

/etc/hosts文件的默认内容如下(不同主机,IP映射的主机名不同):
127.0.0.1 butbueatiful localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
可见,默认的情况是本机ip和本机一些主机名的对应关系,第一行是ipv4信息,第二行是ipv6信息,如果用不上ipv6本机解析,一般把该行注释掉。
第一行的解析效果是,butbueatiful localhost.localdomain localhost三者都会被解析成127.0.0.1,我们可以用ping试试。
[root@butbueatiful ~]# ping -c 3 butbueatiful
PING butbueatiful (127.0.0.1) 56(84) bytes ofdata.
64 bytes from butbueatiful (127.0.0.1):icmp_seq=1 ttl=64 time=0.061 ms
64 bytes from butbueatiful (127.0.0.1):icmp_seq=2 ttl=64 time=0.052 ms
64 bytes from butbueatiful (127.0.0.1):icmp_seq=3 ttl=64 time=0.051 ms
— butbueatiful ping statistics —
3 packets transmitted, 3 received, 0% packetloss, time 1999ms
rtt min/avg/max/mdev = 0.051/0.054/0.061/0.009ms
[root@butbueatiful ~]# ping -c 3localhost.localdomain
PING butbueatiful (127.0.0.1) 56(84) bytes ofdata.
64 bytes from butbueatiful (127.0.0.1):icmp_seq=1 ttl=64 time=0.055 ms
64 bytes from butbueatiful (127.0.0.1):icmp_seq=2 ttl=64 time=0.035 ms
64 bytes from butbueatiful (127.0.0.1):icmp_seq=3 ttl=64 time=0.050 ms
— butbueatiful ping statistics —
3 packets transmitted, 3 received, 0% packet loss,time 1999ms
rtt min/avg/max/mdev = 0.035/0.046/0.055/0.011 ms
看到上面的结果,你可能会问为什么ping localhost.localdomain的时候,下面显示的是却是butbueatiful,这是因为第一个主机名butbueatiful后面的那些主机名其实都是butbueatiful的主机别名。
如果我们要追加新的本地解析,比如我们希望在我们的机器里把yyyy.com和www.yyyy.com都解析成192.168.0.100,那么就追加如下一句即可:
192.168.0.100 yyyy.com www.yyyy.com
同样,在这里,www.yyyy.com是yyyy.com的主机别名。
其实这个文件是很危险的,如果有人恶意修改了你这个文件,比如把淘宝的网站域名解析到了他的钓鱼网站,那你就要中招了。

2.4 /etc/resolv.conf配置文件

该文件用来指定DNS域名解析服务器的IP信息,其配置参数一般有以下四个:
nameserver #指定DNS服务器的IP地址
domain #定义本地域名信息
search #定义域名的搜索列表
sortlist #对gethostbyname返回的地址进行排序
但是最常用的配置参数是nameserver,其他的可以不设置,这个参数指定了DNS服务器的IP地址,如果设置不正确,就无法进行正常的域名解析。
一般来说,推荐设置2个DNS服务器,比如我们用google的免费DNS服务器,那么该文件的设置内容如下:
nameserver 8.8.8.8
nameserver 8.8.4.4
同样,这个文件也是危险的,如果被人恶意改成了他自己的DNS服务器,他就可以为所欲为的控制你通过域名访问的每个目的地了,这就是常说的DNS劫持。

2.5 /etc/network/interfaces配置文件

interfaces网络接口配置文件,是Ubuntu网络配置中最为重要的一个文件。本文件用来设定主机的IP类型,IP地址,子网掩码,网关IP,广播地址,MAC物理地址等信息,详细的配置方法参见本文第二章节,以下以静态IP配置给出该文件的内容示例。
auto lo
iface lo inetloopback
auto eth0 # 指明当前配置的是主机上的eth0网卡
iface eth0 inetstatic # 将eth0网卡配置为静态IP类型
address10.8.210.145 # 手动设定eth0网卡的IP地址为10.8.210.145
netmask255.255.255.0 # 手动设定子网掩码
gateway10.8.210.7 # 手动设定网关IP
#pre-up ifconfigeth0 hw ether 11:22:33:44:55:66 # 手动设定MAC地址
【说明】一般网卡的MAC地址是由厂家设定好的,系统启动的时候可以侦测到MAC地址,如非特殊需求,一般情况下不必人为修改。故而此处将该配置信息注释掉,只做示例

2.6 /etc/udev/rules.d/70-persistent-net.rules配置文件

该文件属于主机的一个记录文件,其主要作用就是记录主机识别到的网卡信息。每当识别到一个新的网络接口配置信息,就会自动追加到该文件,用户也可以自己添加网络接口信息。主机识别网卡信息主要依据就是通过MAC地址。

2.7 /etc/xinetd.conf配置文件

该文件就是简单的用include命令指定了xinetd守护进程可以读取的配置文件,所有xinetd可读取的配置文件其实都放在/etc/xinted.d目录下面。xinetd守护进程通过读取不同的服务进程的配置文件,启动并配置相应的服务进程。

2.8 其他配置文件

/etc/networks # 实现域名与网络地址的映射
/etc/protocols # 设定主机使用的协议及各个协议的协议号(协议ID)
/etc/services # 设定主机上各个网络服务进程所使用的端口号
上述三个配置文件的作用如注释所说,一般保持默认,不必修改

3 系统配置

如果修改了interfaces配置文件,又配置了network-manager(以下简称nm),就会出现一些莫名其妙的问题

3.1 图形界面方式(通过network-manager进行配置)

3.2 ifconfig

  • 设置IP和子网掩码
sudo ifconfig ens33 192.168.199.31 netmask 255.255.255.0
  • 设置网关
sudo route add default gw 192.168.199.1
  • 设置DNS
sudo su
echo "nameserver 192.168.199.1" >> /etc/resolv.conf

完成后,输入exit退出,上面的只是是即时生效的。但重启后会失效。

3.3 命令行方式(修改网络配置文件)

3.3.1 说明

Desktop版本中,直接使用interfaces 进行网络配置,那么可以通过以下指令来关闭network-manager:
/etc/init.d/network-managerstop # 手动关闭network-manager
之后通过查看/etc/NetworkManager/nm-system-settings.conf 文件来确定nm是否停止网络配置工作。即只需要确保/etc/NetworkManager/nm-system-settings.conf内的managed=false。
之后就可以通过文件命令行方式进行网络参数配置。
vi/etc/network/interfaces # 手动修改interfaces配置文件
/etc/init.d/networkingrestart # 配置完成后,重启网络服务
如果希望能继续使用nm 来进行网络配置,则需要进行如下操作:
sudo service network-manager stop # 停止nm服务
sudo rm /var/lib/NetworkManager/NetworkManager.state# 移除nm 的状态文件
sudo gedit /etc/NetworkManager/nm-system-settings.conf# 打开nm 的配置文件
修改文件里面这一行:managed=false,将false修改成true,然后重启nm程序,指令如下:
sudo servicenetwork-manager start # 由nm程序重新接管网络配置工作

3.3.2 步骤

  • 修改/etc/network/interfaces配置文件设置网络接口参数
    #配置环回网络,系统默认就好,一般不必修改。
    auto lo
    iface lo inetloopback

  • 配置静态IP配置
    #配置静态IP配置
    auto eth0 # 配置eth0网卡
    iface eth0 inet static # 将eth0网卡设置为静态IP
    address 192.168.3.90 # 配置eth0网卡的IP地址
    netmask 255.255.255.0 # 配置eth0网卡的子网掩码
    gateway 192.168.3.1 # 配置eth0网卡的网关地址

  • 配置动态IP配置
    #动态IP配置
    auto eth0
    iface eth0 inet dhcp # 将eth0网卡设置为动态IP
    注:也可以在命令行下直接输入下面的命令来获取地址
    sudo dhclient eth0

  • 配置完成后,执行如下指令,使配置生效
    /etc/init.d/networking force-reload # 重新载入配置文件
    /etc/init.d/networking restart # 重启网络服务

  • 设置DNS
    sudo vi /etc/resolv.conf
    nameserver 192.168.3.2

4 Ubuntu常用的网络指令

/etc/init.d/networking start # 启动网络服务
/etc/init.d/networking stop # 关闭网络服务
/etc/init.d/networking restart # 重启网络服务
/etc/init.d/networking force-reload # 强制重载网络配置

5 虚拟机

  • 点击虚拟机左上角的编辑,里面有个虚拟网络编辑器
    在这里插入图片描述
  • 再进入编辑虚拟机设置,点击NAT设置
  • 改成自定义:特定虚拟网络,选择VM8
    在这里插入图片描述
  • 然后就好了
  • sudo vim /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.2.110
netmask 255.255.0.0
gateway 192.168.2.1
  • sudo vim /etc/resolv.conf
nameserver 223.5.5.5 // 貌似是阿里的域名服务器
  • VMnet8设置(虚拟网卡)
    在这里插入图片描述
  • 实际网卡设置
    在这里插入图片描述

参考

1、虚拟机ubuntu16.04无法连网的问题的解决方案
2、ubuntu16.04配置网卡
3、VMware虚拟机下Ubuntu网络配置(桥接模式)
4、ubuntu系统网络设置方法(图文)
5、Ubuntu的网络配置详解
6、详解Ubuntu的网络配置
7、linux网络配置和管理
8、Ubuntu网络配置(桥接模式)
9、ubuntu16.04设置桥接模式,图文并茂,解决无法上网问题

猜你喜欢

转载自blog.csdn.net/qq_38880380/article/details/99442543