请教高人解释一下gentoo手册中配置网卡的这几步到底是为什么?
时间:2007-08-21
来源:互联网
按照官方安装文档,不管你有几个网卡,哦,错了,应该说了不管有几个网络连接界面-iface(ppp拨号产生的也算),你都得这么设置
举例
首先,产生一个链接
ln -s net.lo net.eth1
这样/etc/init.d/的下面就出现了net.eth1的启动脚本
然后在/etc/con.f/net里设置关于这个界面的配置,包括IP网关等,
最后,如果你要让它开机就能启动,你还必须
rc-upade add net.eth1 default
我现在不理解的地方在于第一步,第一步,为什么要这么干,这么干到底是做什么的?难道说回环界面lo的启动脚本可以复制一个给eth1,ppp0等直接使用吗?
我之所以如此问是我发现了一些奇怪的问题,那就是我的机器按照上面这一套做下来后,如果把网卡加入了开机启动,那么,哪怕你以后运行了
rc-update del net.eth1 default
把它从默认启动里删除,它仍然能开机启动,而且,从启动时滚动的命令行显示的信息可以很明显的看到eth1是紧跟着lo启动的,等他启动后,后面才开始出现default里的启动项目,这让我大惑不解,开始怀疑gentoo的开机启动模式的设计……
另外,最近发现了第二个问题,我设置了ppp0这个拨号上网的界面并且开机自启动后,ssh被卡住了,每次启动时,总会提示shh必须等待ppp0启动完后才能启动,然后即使ppp0启动完毕连上网,ssh服务也没能启动起来,远程登录无效,必须手动启动
这让我进一步怀疑ln -s net.lo net.xxx这个命令到底做了什么,请高人指点……
作者: abcbuzhiming 发布时间: 2007-08-21
作者: abcbuzhiming
我之所以如此问是我发现了一些奇怪的问题,那就是我的机器按照上面这一套做下来后,如果把网卡加入了开机启动,那么,哪怕你以后运行了
rc-update del net.eth1 default 把它从默认启动里删除,它仍然能开机启动,而且,从启动时滚动的命令行显示的信息可以很明显的看到eth1是紧跟着lo启动的,等他启动后,后面才开始出现default里的启动项目,这让我大惑不解,开始怀疑gentoo的开机启动模式的设计…… |
作者: 杨珂 发布时间: 2007-08-21
作者: 抽烟斗的狗 发布时间: 2007-08-21
作者: 抽烟斗的狗
/sbin/rc 文件是系统启动的shell脚本,不满意可以改,启动不了不要找我,哈哈~~~
|
作者: abcbuzhiming 发布时间: 2007-08-21
这个命令已经把网卡的启动加进系统的runlevels,runlevels是gentoo启动时的控制,也就是随系统的安排在启动时启动,而init.d是系统已经启动后的控制,你可以在启动后来关闭和启动网卡:
/etc/init.d/net.eth0 stop
/etc/init.d/net.eth0 start
是两个阶段的控制,我的理解,哈哈~~~~
为何不能删除runlevels的设定,我不会,没需要如此做过.
作者: 抽烟斗的狗 发布时间: 2007-08-22
作者: 抽烟斗的狗
rc-upade add net.eth1 default
这个命令已经把网卡的启动加进系统的runlevels,runlevels是gentoo启动时的控制,也就是随系统的安排在启动时启动,而init.d是系统已经启动后的控制,你可以在启动后来关闭和启动网卡: /etc/init.d/net.eth0 stop /etc/init.d/net.eth0 start 是两个阶段的控制,我的理解,哈哈~~~~ 为何不能删除runlevels的设定,我不会,没需要如此做过. |
/etc/init.d/net.eth0 stop
/etc/init.d/net.eth0 start
的不是我们讨论的范畴,我们现在讨论的焦点就一个——gentoo的启动程序设备加载机制是怎么回事?要么,这个网卡只要设置好链接和net文件里的设置,实际上不需要rc-upade add net.eth1 default就能够自己启动(其实我考虑过这种可能,因为在设置好eth1的IP,mask,route参数以后,等于eth1这个界面已经被我定了,这有点类似windows XP下的给网卡指定IP这个设置,被指定了IP的联网界面开机时会自动起效并完成网络连接),rc-upade add net.eth1 default这个命令是在你没有给定联网界面时的强行启动方式……要么就是gentoo启动时加载的方式仍然有秘密。
顺便说一下,我这个人有系统洁癖,我不能容忍系统背着我干任何我不明白的事情,曾经有个叫dhcpcd的程序,因为他会莫名其妙的,在我根本没在net文件里设置任何网卡用dhcp得到IP的情况下,如果我的一块网卡没IP时,启动系统居然能看见它自己启动起来给我那个没IP的网卡分配IP……当我看到这一情况又搞不清楚这dhcpcd为何会自己启动的情况下(连windows都可以禁用dhcp client服务,你个小样居然敢不经我允许启动),我立马把这程序踢出了我的系统,如果我找不到资料能解释gentoo会自动启动我网卡的合理解释,那我最后只能把他踢出我的电脑了……
作者: abcbuzhiming 发布时间: 2007-08-22
作者: 杨珂
我和zhoukb也为此郁闷过,有高手出来解释一下就再好不过了
|
现在我已将 /etc/init.d/net.eth*全部删除,用networkmanger来管理,具体可参考这篇文章http://gentoo-wiki.com/NetworkManager
作者: zhoukb 发布时间: 2007-08-22
作者: zhoukb
感觉是udev的功劳,不知是否对否?
现在我已将 /etc/init.d/net.eth*全部删除,用networkmanger来管理,具体可参考这篇文章http://gentoo-wiki.com/NetworkManager |
不过有一点你倒是说对了,就是如果删除了etc/init.d/net.eth*,那么eth*就真的无法自动启动了……
我觉得最重要的是搞清楚gentoo的这种启动机制到底怎么工作的,否则有一天被黑客利用了怎么办?
作者: abcbuzhiming 发布时间: 2007-08-22
作者: zhoukb
感觉是udev的功劳,不知是否对否?
现在我已将 /etc/init.d/net.eth*全部删除,用networkmanger来管理,具体可参考这篇文章http://gentoo-wiki.com/NetworkManager |
才搬了个家 网络有点问题 一空就试试
作者: 杨珂 发布时间: 2007-08-22
作者: abcbuzhiming 发布时间: 2007-08-22
一句话:你设定了网卡参数,有两个地方可以调用
1.rc-upade add net.eth1 default 命令,随机启用.
不使用rc-upade add net.eth1 default命令,网卡可用,因为大多数情况下网卡模块随系统启动,但参数不起用,ifconfig 会找到网卡,但找不到网卡的ip地址.
2./etc/init.d/net.eth0 start 命令调用.
作者: 抽烟斗的狗 发布时间: 2007-08-22
rc-update show
作者: tell 发布时间: 2007-08-22
作者: abcbuzhiming
我之所以如此问是我发现了一些奇怪的问题,那就是我的机器按照上面这一套做下来后,如果把网卡加入了开机启动,那么,哪怕你以后运行了 rc-update del net.eth1 default 把它从默认启动里删除,它仍然能开机启动, |
怎么加入开机启动的?
作者: tell 发布时间: 2007-08-22
作者: 抽烟斗的狗
网卡能用和网卡参数能用是两回事.网卡能用是内核和模块的事,网卡参数是rc和init的事.
一句话:你设定了网卡参数,有两个地方可以调用 1.rc-upade add net.eth1 default 命令,随机启用. 不使用rc-upade add net.eth1 default命令,网卡可用,因为大多数情况下网卡模块随系统启动,但参数不起用,ifconfig 会找到网卡,但找不到网卡的ip地址. 2./etc/init.d/net.eth0 start 命令调用. |
1.网卡模块随系统启动应该是他的硬件层面被驱动了,但是软件层面就未必了,我的理解是如果软件层面没有启动,ifconfig里就看到不到这个eth1,另外就是:网卡的IP地址等参数都记录在/etc/conf.d/net这个文件里,我的估计是如果这个文件已经记录了eth1的相关IP等参数,那么在硬件层面驱动的时候会自动加载,ifconfig就能看到eth1这个软界面,只有这样才解释的通,因为从启动记录里可以看到,很明显eth1不是在default组里启动的,rc-upade add net.eth1 default仅仅是把net.eth1启动加入到runlevel里,和把QQ快捷方式加到windows的开机程序启动没有区别,我前面也说了,如果以前rc-upade add net.eth1 default过了,即使后来运行了rc-upade del net.eth1 default,把net.eth1赶出runlevel的default组,重新启动后net.eth1仍然启动了,ifconfig仍然能看见网卡IP,很明显网卡被启动了……当然这需要懂行的人解释
2.现在最关键的问题是搞清楚一件事就是/etc/init.d/net.eth0 start这个命令到底启动了些什么,或者说/etc/init.d/net.eth0 stop到底停止了什么。
作者: abcbuzhiming 发布时间: 2007-08-22
还有,你是在哪里执行的上述命令?/etc/init.d还是/etc/runlevels/{boot,default}?
/etc/init.d中存放一些脚本,可以用于开机时执行,但这些脚本要链接到/etc/runlevels下开机时才会真正执行,
rc-update所做的就是这件事,添加/删除/etc/runlevels下的链接而已
redhat有/etc/rc.d/rc.{0,1,2,3,4,5,6}这几个目录,这是经典的启动目录排列方式,
gentoo用了自己的一套,只剩下/etc/runlevels/{boot,default,nonetwork,single}
好像新版ubuntu也用了它自己的一套启动方式
作者: tell 发布时间: 2007-08-22
/etc/conf.d/rc
# RC_NET_STRICT_CHECKING allows some flexibility with the 'net' service.
# The following values are allowed:
# none - The 'net' service is always considered up.
# no - This basically means that at least one net.* service besides net.lo
# must be up. This can be used by notebook users that have a wifi and
# a static nic, and only wants one up at any given time to have the
# 'net' service seen as up.
# lo - This is the same as the 'no' option, but net.lo is also counted.
# This should be useful to people that do not care about any specific
# interface being up at boot.
# yes - For this ALL network interfaces MUST be up for the 'net' service to
# be considered up.
RC_NET_STRICT_CHECKING="no"
作者: SDE 发布时间: 2007-08-22
作者: tell
看看以下命令的输出:
rc-update show |
作者: tell
你说的“把网卡加入了开机启动”是什么意思?
怎么加入开机启动的? |
配置你的网络 在准备说“嘿,我们已经配置过网络”之前,你应该记得在开始安装Gentoo之初所设置的网络配置是仅仅为了安装而设置的。现在你所要设置的是Gentoo系统的永久网络配置。 注意: 更多关于网络配置的详细信息,包括网卡绑定、网桥、802.1Q VLANs和无线网络在内的高级配置会在Gentoo网络配置这一部分介绍. /etc/conf.d/net当中收集了所有的网络信息。尽管这个文件采用直接易懂的语法,如果你还是因为觉得不够直观而完全不知道如何手动进行网络配置的话,请不用担心,我们将一一解释。在/etc/conf.d/net.example中有一个详细注释过的例子,它涵盖了许多种类不同的配置。 系统默认使用DHCP。如果使用DHCP的话,你需要安装一个DHCP客户端。这个将在稍后的安装必要的系统工具部分介绍。但是不要忘记安装一个DHCP客户端。 如果你需要配置你的网络连接,不管是因为你是需要指定DHCP选项还是你根本不想采用DHCP,请使用你喜欢的编辑器(在这个例子中用的是nano)打开/etc/conf.d/net: 代码 7: 打开/etc/conf.d/net准备编辑 # nano -w /etc/conf.d/net 你会看到以下的文件: 代码 8: 默认的/etc/conf.d/net # This blank configuration will automatically use DHCP for any net.* # scripts in /etc/init.d. To create a more complete configuration, # please review /etc/conf.d/net.example and save your configuration # in /etc/conf.d/net (this file :]!). 为了输入你自己的IP地址,子网掩码和网关,你需要设置config_eth0和routes_eth0: 代码 9: 手动为eth0设置IP信息 config_eth0=( "192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255" ) routes_eth0=( "default via 192.168.0.1" ) 如果你使用DHCP并且想设定DHCP选项,请定义一下config_eth0和dhcp_eth0: 代码 10: 让eth0自动获得IP地址 config_eth0=( "dhcp" ) dhcp_eth0="nodns nontp nonis" 请阅读/etc/conf.d/net.example以得到所有选项的列表。 如果你有多个网络接口,那么重复之前对于config_eth1、config_eth2等的操作步骤。 现在可以保存配置并且退出,继续下面的安装和配置。 在启动时自动启用网络 为了在启动时自动激活网络接口,你必须添加这些到default运行级别。 代码 11: 添加net.eth0到默认的运行级别 # rc-update add net.eth0 default 如果你有多个网络接口,你需要为他们创建合适的net.eth1、net.eth2等启动脚本。你可以用ln来做这个。 代码 12: 创建额外的启动脚本 # cd /etc/init.d # ln -s net.lo net.eth1 # rc-update add net.eth1 default
其实现在想想,还有一个奇怪的地方,理论上,linux里的eth*仅仅是一个联网界面他可以不存在,也可以不启动,比如如果我在eth0上ppp拨号,我认为系统应该只显示ppp0,而不应该显示eth0(如果eth0没有被配置IP等设定并启动的话),然而现实是ppp0建立时必须先启动eth0,也就是说这个eth0本身既是一个虚拟的联网界面,同时也代表网卡的硬件界面,这个定义就很模糊了,当年我想了有一个星期才想明白:网卡硬件代号——联网界面代号之间的区别,现在又糊涂了……
作者: abcbuzhiming 发布时间: 2007-08-22
rc-update add net.eth1 boot
了
那么
rc-upade del net.eth1 default
自然没用,
所以,贴下
rc-update show
还有你rc-upade写错了,我从你那段拷下来发现*_*
作者: tell 发布时间: 2007-08-22
作者: abcbuzhiming
貌似我并没有启动udev,
不过有一点你倒是说对了,就是如果删除了etc/init.d/net.eth*,那么eth*就真的无法自动启动了…… 我觉得最重要的是搞清楚gentoo的这种启动机制到底怎么工作的,否则有一天被黑客利用了怎么办? |
还有就是看一下你启动runlerels中的脚本中depend() 段是否包括need net,这样net也会随着这个脚本启动的。
作者: zhoukb 发布时间: 2007-08-22
作者: tell 发布时间: 2007-08-22
作者: tell
ln -s net.lo net.eth1 —— 这一步一般不需要,网卡驱动配好后一般自动出现/etc/init.d/net.eth0
还有,你是在哪里执行的上述命令?/etc/init.d还是/etc/runlevels/{boot,default}? /etc/init.d中存放一些脚本,可以用于开机时执行,但这些脚本要链接到/etc/runlevels下开机时才会真正执行, rc-update所做的就是这件事,添加/删除/etc/runlevels下的链接而已 redhat有/etc/rc.d/rc.{0,1,2,3,4,5,6}这几个目录,这是经典的启动目录排列方式, gentoo用了自己的一套,只剩下/etc/runlevels/{boot,default,nonetwork,single} 好像新版ubuntu也用了它自己的一套启动方式 |
在哪里执行这些命令?我不懂你的意思,我用命令时全部写的绝对路径,,我现在奇怪的就在这,rc-dpdate仅仅是添加了一个链接,为什么这个链接被删除后他代表的东西还能启动呢,虽然从启动命令行的滚动来看不是在default组启动的
/etc/rc.d/rc.{0,1,2,3,4,5,6}
这是不是linux的通用启动目录,是不是说记录在其中的可以在系统启动时启动,真是的话我要好好研究一下了,gentoo手册上没有提到这点
作者: SDE
也许跟这里有关
/etc/conf.d/rc # RC_NET_STRICT_CHECKING allows some flexibility with the 'net' service. # The following values are allowed: # none - The 'net' service is always considered up. # no - This basically means that at least one net.* service besides net.lo # must be up. This can be used by notebook users that have a wifi and # a static nic, and only wants one up at any given time to have the # 'net' service seen as up. # lo - This is the same as the 'no' option, but net.lo is also counted. # This should be useful to people that do not care about any specific # interface being up at boot. # yes - For this ALL network interfaces MUST be up for the 'net' service to # be considered up. RC_NET_STRICT_CHECKING="no" |
作者: tell
我是怀疑你
rc-update add net.eth1 boot 了 那么 rc-upade del net.eth1 default 自然没用, 所以,贴下 rc-update show 还有你rc-upade写错了,我从你那段拷下来发现*_* |
作者: abcbuzhiming 发布时间: 2007-08-22
RC_HOTPLUG="yes"
如果是yes,表示如果插上硬件,而且你有驱动,驱动自动加载(此即hotplug),之后此硬件相关的服务会自动启动
RC_COLDPLUG="yes"
和hotplug类似,不过只是指开机时检测加载硬件驱动
RC_PLUG_SERVICES="net.eth0 !net.*"
如此就表示不管是hot还是coldplug,只有eth0会自动启动,其他任何网络界面都不会启动
而我自己则做的更绝,我根本不让系统加载我的8139cp模块——我只用无线网卡
作者: zhllg 发布时间: 2007-08-22
作者: zhllg
看/etc/conf.d/rc里的这几个选项
RC_HOTPLUG="yes" 如果是yes,表示如果插上硬件,而且你有驱动,驱动自动加载(此即hotplug),之后此硬件相关的服务会自动启动 RC_COLDPLUG="yes" 和hotplug类似,不过只是指开机时检测加载硬件驱动 RC_PLUG_SERVICES="net.eth0 !net.*" 如此就表示不管是hot还是coldplug,只有eth0会自动启动,其他任何网络界面都不会启动 而我自己则做的更绝,我根本不让系统加载我的8139cp模块——我只用无线网卡 |
不过最后有个问题,那就是eth*这东西到底是一个硬件层面上的东西,还仅仅是一个软件的网络界面,我们都知道类似ppp0这样的只是一个软件界面而已,可是为什么当ppp0从eth*这块网卡上拨号时,系统仍然会启动eth*呢,eth*到底仅仅是一个网络界面,还是包含硬件层面的东西?
作者: abcbuzhiming 发布时间: 2007-08-22
如果你用ADSL,ppp0就会依赖于eth0,因为ADLS是ppp over ethernet
如果你用56K modem,那ppp0就代表modem
作者: zhllg 发布时间: 2007-08-22
作者: zhllg
当然eth0是和硬件对应的,network interface就是网卡,直译就是网络界面
如果你用ADSL,ppp0就会依赖于eth0,因为ADLS是ppp over ethernet 如果你用56K modem,那ppp0就代表modem |
作者: abcbuzhiming 发布时间: 2007-08-22
An IP address (Internet Protocol address) is a unique address that certain electronic devices use in order to identify and communicate with each other on a computer network utilizing the Internet Protocol standard (IP)
不过我的回帖可能让你有些糊涂了,不好意思
我第一个回帖里的网络界面指的是服务,也是这个服务所代表的通信节点,就是网络地址,就是IP
第二个我又说是指网卡,我其实是忘记看了我的第一个回帖
这两种理解都正确,不过要看具体环境
http://en.wikipedia.org/wiki/Network_interface
ppp0, eth0这些东西一般都和具体硬件一一对应,不过ADSL是特殊的,ADSL是pppoe,也就是运行在以太网之上的ppp协议,ppp0此时就和eth0重叠,对应同一个物理硬件。或者你想象成是一个虚拟硬件,但下面依赖于实体物理硬件。
作者: zhllg 发布时间: 2007-08-22
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28