其實,無所謂特定的發行版本的,眾所周知,Linux的發行版實在是太多了,LSB都沒能同一起來。network是在系統啟動通過一 些個腳本來啟動的,例如 redhat /fedora下的/etc/init.d/network文件,適當的閱讀系統的初始化腳本吧 [lee@lee init.d]$ cat network #! /bin/bash # # network Bring up/down networking # # chkconfig: 2345 10 90 # description: Activates/Deactivates all network interfaces configured to \ # start at boot time. # ### BEGIN INIT INFO # Provides: $network ### END INIT INFO
# Source function library. . /etc/init.d/functions
if [ ! -f /etc/sysconfig/network ]; then exit 0 fi
. /etc/sysconfig/network
if [ -f /etc/sysconfig/pcmcia ]; then . /etc/sysconfig/pcmcia fi
# Check that networking is up. [ "${NETWORKING}" = "no" ] && exit 0
# if the ip configuration utility isn't around we can't function. [ -x /sbin/ip ] || exit 1
# Even if IPX is configured, without the utilities we can't do much [ ! -x /sbin/ipx_internal_net -o ! -x /sbin/ipx_configure ] && IPX=
# Even if VLAN is configured, without the utility we can't do much [ ! -x /sbin/vconfig ] && VLAN=
CWD=`pwd` cd /etc/sysconfig/network-scripts
. network-functions //注意這個可愛的腳本文件!
# find all the interfaces besides loopback. # ignore aliases, alternative configurations, and editor backup files interfaces=`ls ifcfg* | \ LANG=C sed -e '/\(ifcfg-lo\|:\|ifcfg-.*-range\)/d' \ -e '/\(rpmsave\|rpmorig\|rpmnew\)/d' \ -e '/\(~\|\.bak\)$/d' \ -e '/ifcfg-[A-Za-z0-9\._-]\+$/ { s/^ifcfg-//g;s/[0-9]/ &/}' | \ LANG=C sort -k 1,1 -k 2n | \ LANG=C sed 's/ //'`
# See how we were called. case "$1" in start) # IPv6 hook (pre IPv4 start) if [ "$NETWORKING_IPV6" = "yes" ]; then if [ -x /etc/sysconfig/network-scripts/init.ipv6-global ]; then /etc/sysconfig/network-scripts/init.ipv6-global start pre fi fi
sysctl -e -p /etc/sysctl.conf >/dev/null 2>&1
# bring up loopback interface action $"Bringing up loopback interface: " ./ifup ifcfg-lo
case "$IPX" in yes|true) /sbin/ipx_configure --auto_primary=$IPXAUTOPRIMARY \ --auto_interface=$IPXAUTOFRAME if [ "$IPXINTERNALNETNUM" != "0" ]; then /sbin/ipx_internal_net add $IPXINTERNALNETNUM $IPXINTERNALNODENUM fi ;; esac
case "$VLAN" in yes) if [ -d /proc/net/vlan ] || modprobe 8021q >/dev/null 2>&1 ; then test -z "$VLAN_NAME_TYPE" && VLAN_NAME_TYPE=DEV_PLUS_VID_NO_PAD action $"Setting 802.1Q VLAN parameters: " /sbin/vconfig set_name_type "$VLAN_NAME_TYPE" else echo $"No 802.1Q VLAN support available in kernel." fi ;; esac
# bring up all other interfaces configured to come up at boot time for i in $interfaces; do eval $(LANG=C fgrep "DEVICE=" ifcfg-$i) eval $(LANG=C fgrep "TYPE=" ifcfg-$i) eval $(LANG=C fgrep "SLAVE=" ifcfg-$i) eval $(LANG=C fgrep "BRIDGE=" ifcfg-$i)
if [ -z "$DEVICE" ] ; then DEVICE="$i"; fi
if [ "${DEVICE##cipcb}" != "$DEVICE" ] ; then cipeinterfaces="$cipeinterfaces $i" unset DEVICE TYPE SLAVE BRIDGE continue fi if [ "$TYPE" = "xDSL" ]; then xdslinterfaces="$xdslinterfaces $i" unset DEVICE TYPE SLAVE BRIDGE continue fi
if [ -n "$BRIDGE" ]; then is_available $i bridgeinterfaces="$bridgeinterfaces $i" unset DEVICE TYPE SLAVE BRIDGE continue fi
if [ "${DEVICE%%.*}" != "$DEVICE" ] ; then vlaninterfaces="$vlaninterfaces $i" unset DEVICE TYPE SLAVE BRIDGE continue fi
if [ "$SLAVE" = "yes" ]; then unset DEVICE TYPE SLAVE BRIDGE continue fi unset DEVICE TYPE SLAVE BRIDGE
if LANG=C egrep -L "^ONBOOT=['\"]?[Nn][Oo]['\"]?" ifcfg-$i > /dev/null ; then # this loads the module, to preserve ordering is_available $i continue fi # If we're in confirmation mode, get user confirmation. if [ -f /var/run/confirm ]; then confirm $i test $? = 1 && continue fi action $"Bringing up interface $i: " ./ifup $i boot done
# Bring up xDSL and CIPE interfaces for i in $vlaninterfaces $bridgeinterfaces $xdslinterfaces $cipeinterfaces ; do if ! LANG=C egrep -L "^ONBOOT=['\"]?[Nn][Oo]['\"]?" ifcfg-$i >/dev/null 2>&1 ; then # If we're in confirmation mode, get user confirmation. if [ -f /var/run/confirm ]; then confirm $i test $? = 1 && continue fi action $"Bringing up interface $i: " ./ifup $i boot fi done
# Add non interface-specific static-routes. if [ -f /etc/sysconfig/static-routes ]; then grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do /sbin/route add -$args done fi
# IPv6 hook (post IPv4 start) if [ "$NETWORKING_IPV6" = "yes" ]; then if [ -x /etc/sysconfig/network-scripts/init.ipv6-global ]; then /etc/sysconfig/network-scripts/init.ipv6-global start post fi fi # Run this again to catch any interface-specific actions sysctl -e -p /etc/sysctl.conf >/dev/null 2>&1
touch /var/lock/subsys/network ;; stop) # If this is a final shutdown/halt, check for network FS, # and unmount them even if the user didn't turn on netfs
# IPv6 hook (pre IPv4 stop) if [ "$NETWORKING_IPV6" = "yes" ]; then if [ -x /etc/sysconfig/network-scripts/init.ipv6-global ]; then /etc/sysconfig/network-scripts/init.ipv6-global stop pre fi fi
# get list of bonding, cipe, and xdsl interfaces for i in $interfaces; do eval $(LANG=C fgrep "DEVICE=" ifcfg-$i) eval $(LANG=C fgrep "TYPE=" ifcfg-$i) eval $(LANG=C fgrep "BRIDGE=" ifcfg-$i)
if [ -z "$DEVICE" ] ; then DEVICE="$i"; fi
if [ "${DEVICE##cipcb}" != "$DEVICE" ] ; then cipeinterfaces="$cipeinterfaces $i" unset DEVICE TYPE BRIDGE continue fi if [ -n "$BRIDGE" ]; then bridgeinterfaces="$bridgeinterfaces $i" unset DEVICE TYPE BRIDGE continue fi if [ "$TYPE" = "xDSL" ]; then xdslinterfaces="$xdslinterfaces $i" unset DEVICE TYPE BRIDGE continue fi
if [ "${DEVICE%%.*}" != "$DEVICE" ] ; then vlaninterfaces="$vlaninterfaces $i" unset DEVICE TYPE SLAVE BRIDGE continue fi remaining="$remaining $i" unset DEVICE TYPE BRIDGE done
for i in $cipeinterfaces $xdslinterfaces $bridgeinterfaces $vlaninterfaces; do eval $(fgrep "DEVICE=" ifcfg-$i) if [ -z "$DEVICE" ] ; then DEVICE="$i"; fi
if ! check_device_down $DEVICE; then action $"Shutting down interface $i: " ./ifdown $i boot fi done
# shut down all interfaces (other than loopback) for i in $remaining ; do eval $(fgrep "DEVICE=" ifcfg-$i) if [ -z "$DEVICE" ] ; then DEVICE="$i"; fi
if ! check_device_down $DEVICE; then action $"Shutting down interface $i: " ./ifdown $i boot fi done case "$IPX" in yes|true) if [ "$IPXINTERNALNETNUM" != "0" ]; then /sbin/ipx_internal_net del fi ;; esac
action $"Shutting down loopback interface: " ./ifdown ifcfg-lo
if [ -d /proc/sys/net/ipv4 ]; then #ip的高級選項 if [ -f /proc/sys/net/ipv4/ip_forward ]; then if [ `cat /proc/sys/net/ipv4/ip_forward` != 0 ]; then action $"Disabling IPv4 packet forwarding: " sysctl -w net.ipv4.ip_forward=0 fi fi if [ -f /proc/sys/net/ipv4/ip_always_defrag ]; then if [ `cat /proc/sys/net/ipv4/ip_always_defrag` != 0 ]; then action $"Disabling IPv4 automatic defragmentation: " sysctl -w net.ipv4.ip_always_defrag=0 fi fi fi
# IPv6 hook (post IPv4 stop) if [ "$NETWORKING_IPV6" = "yes" ]; then if [ -x /etc/sysconfig/network-scripts/init.ipv6-global ]; then /etc/sysconfig/network-scripts/init.ipv6-global stop post fi fi
Red hat /etc/sysconfig/network /etc/sysconfig/networking /etc/sysconfig/network-scripts/ifcfg-ifname 以下是本人在PC上的操作,仔細查看各文件,上述三個文件以外的儘可能的包含到詳細的網路設置信息: [lee@lee sysconfig]$ ls amd bluetooth dund i18n kudzu network prelink squid xgl apmd cbq firstboot init lm_sensors networking rhn syslog xinetd apm-scripts clock grub iptables-config modules network-scripts samba system-config-securitylevel arpwatch console hidd irda named ntpd saslauthd system-config-users auditd crond hsqldb irqbalance netdump pand selinux tux authconfig desktop httpd kernel netdump_id_dsa pgsql sendmail vncservers autofs diskdump hwconf keyboard netdump_id_dsa.pub pm spamassassin wpa_supplicant [lee@lee sysconfig]$ cat network NETWORKING=yes HOSTNAME=lee.study.home [lee@lee sysconfig]$ cd networking [lee@lee networking]$ ls devices profiles [lee@lee networking]$ cd devices [lee@lee devices]$ ls ifcfg-eth0 ifcfg-eth1 [lee@lee devices]$ cat ifcfg-eth0 # Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ DEVICE=eth0 BOOTPROTO=none BROADCAST=192.168.0.255 HWADDR=00:E0:4D:90:4B:54 IPADDR=192.168.0.128 NETMASK=255.255.255.0 NETWORK=192.168.0.0 ONBOOT=yes USERCTL=yes IPV6INIT=no PEERDNS=yes GATEWAY=192.168.0.1 TYPE=Ethernet [lee@lee devices]$ cd .. [lee@lee networking]$ cd profiles [lee@lee profiles]$ ls default defaultCopy0 [lee@lee profiles]$ cd default [lee@lee default]$ ls hosts ifcfg-eth0 ifcfg-eth1 network resolv.conf [lee@lee default]$ cat resolv.conf # generated by NetworkManager, do not edit!
search study.home
nameserver 202.102.224.68 nameserver 202.102.247.250 [lee@lee default]$ cat hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 lee.study.home lee localhost.localdomain localhost