Linux系统下网络配置方法

来自ARM Wiki
Tangdapeng讨论 | 贡献2020年4月9日 (四) 11:28的版本
跳转至: 导航搜索

对于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