Linux系统下网络配置方法
对于busybox、debian、ubuntu系统,大多数网络设置可以通过/etc/network/interfaces配置文件完成。系统启动时通过/etc/init.d/networking服务中的ifup程序来解析/etc/network/interfaces配置文件。若接口设置为dhcp方式则会调用系统下的DHCP客户端程序udhcpc或dhclient来动态获取IP。
使用DHCP自动配置接口
编辑/etc/network/interfaces,参考设置如下:
auto eth0
iface eth0 inet dhcp
重启networking服务生效
/etc/init.d/networking restart
网络接口可以通过命令查看
$ ls /sys/class/net/
eth0 eth1 lo
手动配置接口
编辑/etc/network/interfaces,参考设置如下:
auto eth0
iface eth0 inet static
address 192.168.0.10
gateway 192.168.0.1
netmask 255.255.255.0
broadcast 192.168.0.255
重启networking服务生效
/etc/init.d/networking restart
设置DNS
/etc/resolv.conf中的DNS列表为其他程序、库最终使用的DNS列表,该文件会被resolvconf、network-manager及DHCP客户端修改覆盖,建议直接编辑/etc/network/interfaces,并确认系统下安装了resolvconf程序,通过以下命令确认。
$ which resolvconf
/sbin/resolvconf
编辑/etc/network/interfaces,参考设置如下:
dns-nameservers 1.2.4.8 114.114.114.114
重启networking服务生效
/etc/init.d/networking restart
NetworkManager
有桌面的debian、ubuntu系统默认安装了network-manager,会进一步管理网络,在系统启动时通过/etc/init.d/network-manager启用。有桌面的系统,一般直接从桌面设置网络即可。若从/etc/network/interfaces中进行配置,对于interfaces中声明过的网络接口NetworkManager默认不再管理,重启NetworkManager服务,会看到桌面上NetworkManager菜单中相应的网络接口显示“device not managed”
/etc/init.d/network-manager restart
若仍需要管理该网络接口,则设置/etc/NetworkManager/NetworkManager.conf中managed为true
[ifupdown]
managed=true
也可以通过卸载network-manager来自己管理网络
apt-get remove network-manager --purge
海思 busybox
海思主板的linux系统使用的busybox文件系统比较精简,没有/etc/network/interfaces配置文件,系统默认在/etc/init.d/S*_norco中用ifconfig命令配置了静态IP。
配置动态IP使用udhcpc命令,参考如下:
udhcpc -i eth0
配置为静态IP及网关使用ip命令,参考如下:
ip addr add 192.168.0.10/24 brd + dev eth0
ip route add default via 192.168.0.1 dev eth0
设置DNS,若设置动态IP,则udhcpc会动态创建/etc/resolv.conf,若设置静态IP,可直接编辑/etc/resolv.conf
nameserver 1.2.4.8
nameserver 114.114.114.114
buildroot busybox
buildroot构建的busybox文件系统,在/etc/init.d/S40network中调用ifup命令,解析/etc/network/interfaces配置文件。此外系统下/etc/init.d/S41dhcpcd调用DHCP客户端程序dhcpcd对网络进一步管理。
配置静态IP、网关及DNS也可以通过编辑/etc/dhcpcd.conf,参考如下:
interface eth0
static ip_address=192.168.0.10/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1 1.2.4.8