我已经根据本书构建了我的 LFS linux ,它工作正常,网络接口卡也在工作。即使它使用dhcpcd
服务自动配置IP。
根据那本书的第9章,有一个文件叫做
/etc/sysconfig/ifconfig.eth0
问题是,如果我正在使用wlan0
,我是否需要手动修改配置文件或将 eth0 重命名为 wlan0 每次更改网络接口卡,我希望它会自动检测到
这里是由 LFS 书籍生成的初始化网络脚本,/etc/init.d/network
与/etc/sysconfig/ifconfig.*
### BEGIN INIT INFO
# Provides: $network
# Required-Start: $local_fs localnet swap
# Should-Start: $syslog firewalld iptables nftables
# Required-Stop: $local_fs localnet swap
# Should-Stop: $syslog firewalld iptables nftables
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: Starts and configures network interfaces.
# Description: Starts and configures network interfaces.
# X-LFS-Provided-By: LFS
### END INIT INFO
case "${1}" in
start)
# Start all network interfaces
for file in /etc/sysconfig/ifconfig.*
do
interface=${file##*/ifconfig.}
# Skip if $file is * (because nothing was found)
if [ "${interface}" = "*" ]; then continue; fi
/sbin/ifup ${interface}
done
;;
stop)
# Unmount any network mounted file systems
umount --all --force --types nfs,cifs,nfs4
# Reverse list
net_files=""
for file in /etc/sysconfig/ifconfig.*
do
net_files="${file} ${net_files}"
done
# Stop all network interfaces
for file in ${net_files}
do
interface=${file##*/ifconfig.}
# Skip if $file is * (because nothing was found)
if [ "${interface}" = "*" ]; then continue; fi
# See if interface exists
if [ ! -e /sys/class/net/$interface ]; then continue; fi
# Is interface UP?
ip link show $interface 2>/dev/null | grep -q "state UP"
if [ $? -ne 0 ]; then continue; fi
/sbin/ifdown ${interface}
done
;;
restart)
${0} stop
sleep 1
${0} start
;;
*)
echo "Usage: ${0} {start|stop|restart}"
exit 1
;;
esac
exit 0
# End network
通过阅读脚本,很明显它会处理所有
/etc/sysconfig/ifconfig.*
文件:该脚本将从文件名中选择要配置的接口名称,因此您只需分别编写您想要的
eth0
设置和您想要/etc/sysconfig/ifconfig.eth0
的设置。wlan0
/etc/sysconfig/ifconfig.wlan0
另外,请注意,对于无线网络接口(如
wlan0
),您很可能还需要安装和配置wpa_supplicant
, 以处理现代形式的无线网络安全。能够阅读其他人编写的 shell 脚本对于 Linux 系统管理员来说是一项宝贵的技能。有时你可能需要阅读一个脚本来验证它是否真的做了它声称做的事情;有时您可能需要弄清楚脚本实际上做了什么才能解决某些问题,或者因为可用的文档不够详细。