/etc/network/interfaces
的最基本概念,但是我在网上找到的都是示例,一个又一个的示例,可以从中复制粘贴。我想念的是语法的解释,命令含义的解释以及命令要求的顺序。我想了解一下,因为大多数时候复制粘贴是不够的,因为我不是在新机器上工作,所以我不能仅仅覆盖现有配置,因为它会破坏很多东西。 man interfaces
并不是很有用,因为它写得很复杂。示例问题:
inet
行中的iface
到底是什么意思(我什至在手册页中都找不到),manual
在什么地方iface
行的确切含义(很多示例都使用它,但是根据手册页的说明,它需要一个额外的配置文件,而这些示例不存在),我何时使用或需要它们?什么时候不?创建网桥时,接口究竟发生了什么?#1 楼
好吧,让我们将其分成几部分,以便于理解/etc/network/interfaces
:链接层+接口类型选项(通常是每个接口节的第一个,并由
interfaces(5)
联机帮助页称为地址族+方法):auto interface
–在引导时启动接口。这就是为什么lo
接口使用这种链接配置的原因。allow-auto interface
–与auto
allow-hotplug interface
相同–在检测到“热插拔”事件时启动接口。在现实世界中,它与auto
的使用情况相同,但区别在于它将等待诸如“被udev hotplug api检测到”或“电缆链接”之类的事件。有关更多信息,请参见“相关的东西(热插拔)”。寻址)。例如,您可能具有链接聚合,无论链接状态是什么,bond0接口都需要启动,并且其成员可能在链接状态事件之后启动:auto bond0
iface bond0 inet manual
down ip link set $IFACE down
post-down rmmod bonding
pre-up modprobe bonding mode=4 miimon=200
up ip link set $IFACE up mtu 9000
up udevadm trigger
allow-hotplug eth0
iface eth0 inet manual
up ifenslave bond0 $IFACE
down ifenslave -d bond0 $IFACE 2> /dev/null
allow-hotplug eth1
iface eth1 inet manual
up ifenslave bond0 $IFACE
down ifenslave -d bond0 $IFACE 2> /dev/null
这样,我用这种方式创建了一个链路聚合,接口将被添加到其中,并在电缆链路状态上被删除。
最常见的接口类型:
下面的所有选项是已定义接口(
iface <Interface_family>
)的后缀。基本上,iface eth0
在以太网设备上创建一个名为eth0
的节。 iface ppp0
应该创建一个点对点接口,它可能有不同的方式来获取像inet wvdial
这样的地址,该地址会将此接口的配置转发到wvdialconf
脚本。元组inet
/ inet6
+ option
将定义将使用的IP协议的版本以及此地址的配置方式(static
,dhcp
,scripts
...)。在线Debian手册将为您提供更多信息有关此操作的详细信息。
以太网接口上的选项:
inet static
–定义静态IP地址。inet manual
–不为接口定义IP地址。通常由作为桥接或聚合成员的接口,需要以混杂模式运行的接口(例如,端口镜像或网络TAP)或在其上配置了VLAN设备的接口使用。这是保持接口不使用IP地址的一种方法。inet dhcp
–通过DHCP协议获取IP地址。inet6 static
–定义静态IPv6地址。示例:
# Eth0
auto eth0
iface eth0 inet manual
pre-up modprobe 8021q
pre-up ifconfig eth0 up
post-down ifconfig eth0 down
# Vlan Interface
auto vlan10
iface vlan10 inet static
address 10.0.0.1
netmask 255.255.255.0
gateway 10.0.0.254
vlan-raw-device eth0
ip_rp_filter 0
此示例将启动
eth0
,并创建一个名为vlan10
的VLAN接口,该接口将处理以太网帧上的标记号10。接口节(第2层和第3层)内的公用选项:address
–静态IP配置的接口的IP地址netmask
–网络掩码。如果使用cidr地址,则可以省略。示例:iface eth1 inet static
address 192.168.1.2/24
gateway 192.168.1.1
gateway
–服务器的默认网关。请小心,只使用其中一个。vlan-raw-device
–在VLAN接口上,定义其“父亲”。bridge_ports
–在网桥接口上,定义其成员。 down
–使用以下命令代替ifdown
来关闭接口。post-down
–接口关闭后立即执行的操作。 –接口启动之前的操作。pre-up
–使用以下命令代替up
来启动接口。您可以想象使用ifup
上可用的任何选项。例如,我们可以在iputils
操作期间使用up ip link set $IFACE up mtu 9000
启用巨型帧(而不是使用up
选项本身)。您还可以调用任何其他软件,例如mtu
,以在接口启动后5秒钟强制100Mbps全双工。up sleep 5; mii-tool -F 100baseTx-FD $IFACE
-更改接口的mac地址,而不是使用硬编码到rom或由算法生成的地址。您可以使用关键字hwaddress ether 00:00:00:00:00:00
来获取随机的mac地址。random
–名称服务器的IP地址。需要dns-nameservers
软件包。这是一种将所有信息集中在resolvconf
中的方法,而不是将/etc/network/interfaces
用于与DNS相关的配置。请勿手动编辑
/etc/resolv.conf
配置文件,因为它将由系统中的程序动态更改。
/>
resolv.conf
–将example.net作为域附加到主机的查询中,从而创建FQDN。 dns-search example.net
的选项domain
/etc/resolv.conf
–无线:设置无线WPA SSID。wpa-ssid
-MTU大小。 mtu
=巨型帧。如果您的Linux机器与支持更大MTU大小的交换机连接,则很有用。可能会破坏某些协议(我在使用snmp和巨型帧方面经验很差)。mtu 9000
–无线:为您的SSID设置十六进制编码的PSK。已启用。在您有两条通往主机的路由的情况下很有用,这将迫使数据包从其到达的地方返回(相同的接口,使用其路由)。示例:您已连接到lan(wpa-psk
)上,并且拥有一台dlna服务器,该服务器的lan(ip_rp_filter 1
)上具有一个接口,而dmz上的另一个接口可用于执行管理任务(192.168.1.1/24
)。在从计算机到dlna dmz ip的ssh会话中,信息需要返回给您,但由于您的dlna服务器将尝试直接通过其lan接口传递响应,因此该信息将永远挂起。在启用rp_filter的情况下,它将确保连接将从其来源返回。此处有更多信息。其中一些选项不是可选的。例如,如果将IP地址放在没有网络掩码的接口上,Debian会警告您。
您可以在此处找到更多网络配置的好例子。
相关资料:
具有与
192.168.1.10/24
网络配置文件有关的信息的链接:HOWTO:无线安全性-WPA1,WPA2 ,LEAP等。
如何用ip / iproute2桥接两个接口?
接口的热插拔事件是什么?
评论
谢谢,这很有帮助。 inet与“互联网”有关系吗?我读过一些东西,它只表示“ IPv4”,而inet6表示“ IPv6”,但是当您看到“ inet”一词并使其与“ internet”的简称混淆时,它确实令人困惑。一个人使用的名称(例如eth0)是否已定义,或者我可以自己选择它们?如果我有多个LAN适配器,如何知道哪个eth属于哪个LAN适配器?
– Foo酒吧
2014年5月9日12:48
都。他们共同定义了IP地址获取的方法(dhcp,静态,ppp脚本,无地址)和IP协议的版本(inet = v4和inet6 = v6)。接口名称在很大程度上取决于您使用的发行版以及udev的配置方式。 Debian使用eth *和wlan *来连接电缆和无线接口。 Fedora使用biosdevname方案,其中em0是主板上的第一个内置以太网接口,p
–user34720
2014年5月9日13:05
关于“网关-服务器的默认网关。请谨慎使用此家伙中的一个。”是每个节一个,还是所有节中一个网关接口?
–ctbrown
2014年12月12日14:17
应该是所有节中的一个网关,否则,您将无法使用默认路由。要使用多网关/多链接,将需要一些有关iptables +程序包标记+ ip规则的思考。
–user34720
15年1月20日在11:26
allow-hotplug不会在后台等待以太网端口上的“电缆链接”事件,并且从未这样做。 unix.stackexchange.com/a/520633/29483
– sourcejedi
19年5月23日在14:22
#2 楼
我还要补充一点:接口用于ifup / ifdown服务。
当您使用allow-hotplug时,它不会以ifup / ifdown开头,因此bcos您需要使用--allow = hotplug标志。 -verbose标志。
我不是100%同意,但似乎基本上,当调用ifup时,u将从/ etc / network / interfaces中使用up执行所有操作,除非另有说明。
我不知道它与服务网络的关系是什么...
如果有人指出通话后发生的事情,那将是很好的事情:
service networking restart
有关ifup / ifdown的信息。
#3 楼
如果在使用resolvconf
软件包时需要添加选项,即在Ubuntu上,则将该配置放在/etc/resolvconf/resolv.conf.d/base
中:# /etc/resolvconf/resolv.conf.d/base
options timeout:1 attempts:1 rotate
评论
手册页说接口名称后面是接口使用的地址族。 “ inet”是IPv4的名称,inet6是ipv6的名称。还有ipx,x25,appletalk ...,尽管如手册页所述,ifupdown仅处理inet / inet6 / ipx。手动意味着ifupdown对它们不执行任何操作,则必须自己手动执行。