多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 练习 25:网络:配置文件,`/etc/network/interfaces` > 原文:[Exercise 25. Networking: configuration files, /etc/network/interfaces](https://archive.fo/ckUKJ) > 译者:[飞龙](https://github.com/wizardforcel) > 协议:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/) > 自豪地采用[谷歌翻译](https://translate.google.cn/) 从命令行配置网络接口是很好的,但现在是时候学习如何让`vm1`自动配置网络接口。为此,你将了解`/etc/network/interfaces`配置文件: ``` user1@vm1:~$ cat /etc/network/interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface #(1) (2) auto lo #(3) (4)(5) (6) iface lo inet loopback # The primary network interface #(7) (8) allow-hotplug eth0 #(9) (10) (11) (12) iface eth0 inet dhcp ``` 像往常一样,字段及其描述: | 字段 | 描述 | | --- | --- | | (1) | 自动配置界面。 | | (2) | 接口名称。 | | (3) | 接口配置的开始 | | (4) | 要配置的接口名称 | | (5) | 此接口使用 TCP/IP 网络,IPv4。 | | (6) | 它是回送接口。默认回送地址将自动分配给它。 | | (7) | 在可用时自动配置接口(请在这里考虑 usb-modem)。 | | (8) | 接口名称。 | | (9) | 接口配置的开始 | | (10) | 要配置的接口名称 | | (11) | 此接口使用 TCP/IP 网络,IPv4。 | | (12) | 此接口通过 DHCP 自动获取其参数。 | 其他包含网络配置的重要文件,但我们在这里不会碰到他们: + `/etc/hosts` - 操作系统中使用的计算机文件,用于将主机名映射到 IP 地址。`hosts`文件是一个纯文本文件,通常按照惯例命名为`hosts`。 + `/etc/hostname` - 分配给连接到计算机网络的设备的标签,并用于识别各种形式的电子通信设备。 + `/etc/resolv.conf` - 各种操作系统中的计算机文件,用于配置域名系统( DNS)解析器库。该文件是纯文本文件,通常由网络管理员或管理系统配置任务的应用创建。`resolvconf`程序是 linux 机器上的这样的程序,它管理`resolv.conf`文件。 让我们回忆之前练习的`tap0`。如果你重新启动`vm1`, 它就会消失。当然,你可以通过重新输入相关命令来启用它,但是让我们想象一下,你需要在重新启动后自动使用该命令。 现在,你将学习如何使用`/etc/network/interfaces`文件来配置接口。 ## 这样做 ``` 1: ip a s 2: sudo vim /etc/network/interfaces ``` 现在将这些东西添加到配置文件末尾: ``` 3: auto tap0 4: iface tap0 inet static 5: address 10.1.1.2 6: netmask 255.255.255.0 7: tunctl_user uml-net 8: 9: allow-hotplug tap1 10: iface tap1 inet static 11: address 10.1.1.3 12: netmask 255.255.255.0 ``` 现在键入`:wq<ENTER>`并继续: ``` 13: sudo /etc/init.d/networking start 14: ip a s 15: sudo tunctl -t tap1 -u uml-net 16: ip a s ``` ## 你会看到什么 ``` user1@vm1:~$ ip a s 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:d4:45:68 brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0 inet6 fe80::a00:27ff:fed4:4568/64 scope link valid_lft forever preferred_lft forever user1@vm1:~$ sudo vim /etc/network/interfaces # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 iface eth0 inet dhcp auto tap0 iface tap0 inet static address 10.2.2.2 netmask 255.255.255.0 tunctl_user uml-net allow-hotplug tap1 iface tap1 inet static address 10.3.3.3 netmask 255.255.255.0 ~ "/etc/network/interfaces" 21L, 457C written 21,1-8 Bot user1@vm1:~$ sudo /etc/init.d/networking start Configuring network interfaces...Set 'tap0' persistent and owned by uid 104 done. user1@vm1:~$ ip a s 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:d4:45:68 brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0 inet6 fe80::a00:27ff:fed4:4568/64 scope link valid_lft forever preferred_lft forever 3: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500 link/ether 46:63:30:70:b5:21 brd ff:ff:ff:ff:ff:ff inet 10.2.2.2/24 brd 10.2.2.255 scope global tap0 inet6 fe80::4463:30ff:fe70:b521/64 scope link valid_lft forever preferred_lft forever user1@vm1:~$ sudo tunctl -t tap1 -u uml-net Set 'tap1' persistent and owned by uid 104 user1@vm1:~$ ip a s 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:d4:45:68 brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0 inet6 fe80::a00:27ff:fed4:4568/64 scope link valid_lft forever preferred_lft forever 3: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500 link/ether 46:63:30:70:b5:21 brd ff:ff:ff:ff:ff:ff inet 10.2.2.2/24 brd 10.2.2.255 scope global tap0 inet6 fe80::4463:30ff:fe70:b521/64 scope link valid_lft forever preferred_lft forever 4: tap1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500 link/ether 8a:ed:90:33:93:55 brd ff:ff:ff:ff:ff:ff inet 10.3.3.3/24 brd 10.3.3.255 scope global tap1 inet6 fe80::88ed:90ff:fe33:9355/64 scope link valid_lft forever preferred_lft forever user1@vm1:~$ ``` ## 解释 1. 打印当前接口配置。 1. 编辑`/etc/network/interfaces`。 1. 自动配置`tap0`。 1. 为`tap0`设置以下 IPv4 静态参数。 1. 将 IP 地址`10.2.2.2`添加给`tap0`。 1. 为此 IP 地址指定网络掩码、参数“广播”和“网络”自动 从这个网络掩码导出。 1. 指定拥有`tap0`接口的用户。 1. 由于可读性的空行。 1. 在`tap1`接口出现在系统中时,添加以下参数。 1. 为`tap1`设置以下 IPv4 静态参数。 1. 将 IP 地址`10.3.3.3`添加给tap1。 1. 为此 IP 地址指定网络掩码。 1. 应用网络配置更改。 1. 打印当前接口配置。你可以看到`tap0`被添加到接口列表中。 1. 添加`tap1`伪接口。 1. 打印当前接口配置。你可以看到`/etc/network/interfaces中指定的参数自动应用于它。 ## 附加题 + 说明如何导出“网络”和“广播”参数。 + 尝试这个:`ping kitty`。预期会失败。现在添加一个条目到`/etc/hosts`,以便你能够成功执行`ping`。