“Linux系统下网络配置方法”的版本间的差异

来自ARM Wiki
跳转至: 导航搜索
(创建页面,内容为“===设置以太网接口=== 大多数网络设置可以通过/etc/network/interfaces配置文件完成。系统启动时通过/etc/init.d/networking服务中的ifup...”)
 
rockchip buildroot
 
(未显示1个用户的5个中间版本)
第1行: 第1行:
===设置以太网接口===
+
对于busybox、debian、ubuntu系统,大多数[https://wiki.debian.org/NetworkConfiguration 网络设置]可以通过/etc/network/interfaces配置文件完成。系统启动时通过/etc/init.d/networking服务中的ifup程序来解析/etc/network/interfaces配置文件。若接口设置为dhcp方式则会调用系统下的DHCP客户端程序udhcpc或dhclient来动态获取IP。<br />
大多数网络设置可以通过/etc/network/interfaces配置文件完成。系统启动时通过/etc/init.d/networking服务中的ifup程序来解析/etc/network/interfaces配置文件。若接口设置为dhcp方式则会调用系统下的DHCP客户端程序udhcpc或dhclient来动态获取IP。<br />
 
 
====使用DHCP自动配置接口====
 
====使用DHCP自动配置接口====
参考设置如下:<br />
+
编辑/etc/network/interfaces,参考设置如下:<br />
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
auto eth0
 
auto eth0
allow-hotplug eth0
 
 
iface eth0 inet dhcp
 
iface eth0 inet dhcp
 
</syntaxhighlight>
 
</syntaxhighlight>
第12行: 第10行:
 
/etc/init.d/networking restart
 
/etc/init.d/networking restart
 
</syntaxhighlight>
 
</syntaxhighlight>
====手动配置配置接口====
+
网络接口可以通过命令查看
参考设置如下:<br />
+
<syntaxhighlight lang="bash">
 +
$ ls /sys/class/net/
 +
eth0  eth1  lo
 +
 
 +
</syntaxhighlight>
 +
====手动配置接口====
 +
编辑/etc/network/interfaces,参考设置如下:<br />
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
auto eth0
 
auto eth0
第21行: 第25行:
 
     netmask 255.255.255.0
 
     netmask 255.255.255.0
 
     broadcast 192.168.0.255
 
     broadcast 192.168.0.255
    dns-nameservers 1.2.4.8 114.114.114.114
+
</syntaxhighlight>
    metric 15
+
重启networking服务生效<br />
 +
<syntaxhighlight lang="bash">
 +
/etc/init.d/networking restart
 +
</syntaxhighlight>
 +
====设置DNS====
 +
/etc/resolv.conf中的DNS列表为其他程序、库最终使用的DNS列表,该文件会被resolvconf、network-manager及DHCP客户端修改覆盖,建议直接编辑/etc/network/interfaces,并确认系统下安装了resolvconf程序,通过以下命令确认。
 +
<syntaxhighlight lang="bash">
 +
$ which resolvconf
 +
/sbin/resolvconf
 +
</syntaxhighlight>
 +
编辑/etc/network/interfaces,参考设置如下:<br />
 +
<syntaxhighlight lang="bash">
 +
dns-nameservers 1.2.4.8 114.114.114.114
 
</syntaxhighlight>
 
</syntaxhighlight>
 
重启networking服务生效<br />
 
重启networking服务生效<br />
第29行: 第45行:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
====NetworkManager====
 
====NetworkManager====
有桌面的debian、ubuntu系统默认安装了network-manager,会进一步管理网络,在系统启动时通过/etc/init.d/network-manager启用。有桌面的系统,一般直接从桌面设置网络即可。若从/etc/network/interfaces中进行配置,对于interfaces中声明过的网络接口NetworkManager默认不再管理,重启NetworkManager服务,会看到NetworkManager图标显示“device not managed”<br />
+
有桌面的debian、ubuntu系统默认安装了network-manager,会进一步管理网络,在系统启动时通过/etc/init.d/network-manager启用。有桌面的系统,一般直接从桌面设置网络即可。若从/etc/network/interfaces中进行配置,对于interfaces中声明过的网络接口NetworkManager默认不再管理,重启[https://wiki.debian.org/NetworkManager NetworkManager]服务,会看到桌面上NetworkManager菜单中相应的网络接口显示“device not managed”<br />
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
/etc/init.d/network-manager restart
 
/etc/init.d/network-manager restart
第41行: 第57行:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
apt-get remove network-manager --purge
 
apt-get remove network-manager --purge
 +
</syntaxhighlight>
 +
====海思 busybox====
 +
海思主板的linux系统使用的busybox文件系统比较精简,没有/etc/network/interfaces配置文件,系统默认在/etc/init.d/S*_norco中用ifconfig命令配置了静态IP。<br />
 +
配置动态IP使用udhcpc命令,参考如下:
 +
<syntaxhighlight lang="bash">
 +
udhcpc -i eth0
 +
</syntaxhighlight>
 +
配置为静态IP及网关使用[https://wiki.linuxfoundation.org/networking/iproute2 ip]命令,参考如下:
 +
<syntaxhighlight lang="bash">
 +
ip addr add 192.168.0.10/24 brd + dev eth0
 +
ip route add default via 192.168.0.1 dev eth0
 +
</syntaxhighlight>
 +
设置DNS,若设置动态IP,则udhcpc会动态创建/etc/resolv.conf,若设置静态IP,可直接编辑/etc/resolv.conf
 +
<syntaxhighlight lang="bash">
 +
nameserver 1.2.4.8
 +
nameserver 114.114.114.114
 +
</syntaxhighlight>
 +
====rockchip buildroot====
 +
buildroot构建的busybox文件系统,在/etc/init.d/S40network中调用ifup命令,解析/etc/network/interfaces配置文件。此外系统下/etc/init.d/S41dhcpcd调用DHCP客户端程序[https://wiki.archlinux.org/index.php/Dhcpcd dhcpcd]对网络进一步管理。<br />
 +
配置静态IP、网关及DNS也可以通过编辑/etc/dhcpcd.conf,参考如下:
 +
<syntaxhighlight lang="bash">
 +
interface eth0
 +
static ip_address=192.168.0.10/24
 +
static routers=192.168.0.1
 +
static domain_name_servers=1.2.4.8 114.114.114.114
 
</syntaxhighlight>
 
</syntaxhighlight>
  
===设置WIFI===
+
====imx6 debian9====
 +
系统安装了[https://manpages.debian.org/testing/connman/connman.8.en.html connman]来进一步管理网络,接管了DNS的设置,安装resolvconf也无法解析/etc/network/interfaces中的DNS设置,可以卸载connman来自己管理网络。
 +
<syntaxhighlight lang="bash">
 +
apt-get remove connman --purge
 +
</syntaxhighlight>
 +
若在/etc/network/interfaces中指定了网络接口获取dhcp,系统启动时有若干[https://wiki.debian.org/systemd systemd]服务在一直前台等待网络正常可能造成阻塞,可编辑/etc/network/interfaces为
 +
<syntaxhighlight lang="bash">
 +
allow-hotplug eth0
 +
iface eth0 inet dhcp
 +
</syntaxhighlight>
 +
====imx8 yocto====
 +
系统的init system使用systemd,系统下没有/etc/init.d/networking及/etc/network/interfaces来管理网络,使用了[https://wiki.archlinux.org/index.php/ConnMan connman]来管理网络。<br />
 +
获取有线网络列表
 +
<syntaxhighlight lang="bash">
 +
$ connmanctl services
 +
*AO Wired                ethernet_06ee12e6d6cd_cable
 +
</syntaxhighlight>
 +
设置静态IP、网关及DNS
 +
<syntaxhighlight lang="bash">
 +
$ connmanctl config ethernet_06ee12e6d6cd_cable --ipv4 manual 192.168.0.10 255.255.255.0 192.168.0.1
 +
$ connmanctl config ethernet_06ee12e6d6cd_cable --nameservers 1.2.4.8 114.114.114.114
 +
</syntaxhighlight>
 +
添加.config来保存设置,新建/var/lib/connman/eth.config
 +
<syntaxhighlight lang="bash">
 +
[service_eth]
 +
Type = ethernet
 +
IPv4 = 192.168.0.10/255.255.255.0/192.168.0.1
 +
Nameservers = 1.2.4.8,114.114.114.114
 +
</syntaxhighlight>
 +
====多网络接口====
 +
对有NetworkManager的系统,网络会自动选择。NetworkManager会给对应的网络接口都设置默认网关,但metric值不同,以太网比无线网的metric值要低,选择使用以太网。在NetworkManager检测到以太网被down下去,则使用无线网接口。<br />
 +
以下提供一些网络管理命令供参考:
 +
<syntaxhighlight lang="bash">
 +
ip route show
 +
ip route add default via 192.168.0.1 dev eth0 metric 10
 +
ip route del default via 192.168.0.1
 +
ip link show
 +
ip link set eth0 down
 +
ip link set eth0 up
 +
ip addr show
 +
</syntaxhighlight>

2020年11月4日 (三) 09:59的最新版本

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

rockchip buildroot

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=1.2.4.8 114.114.114.114

imx6 debian9

系统安装了connman来进一步管理网络,接管了DNS的设置,安装resolvconf也无法解析/etc/network/interfaces中的DNS设置,可以卸载connman来自己管理网络。

apt-get remove connman --purge

若在/etc/network/interfaces中指定了网络接口获取dhcp,系统启动时有若干systemd服务在一直前台等待网络正常可能造成阻塞,可编辑/etc/network/interfaces为

allow-hotplug eth0
iface eth0 inet dhcp

imx8 yocto

系统的init system使用systemd,系统下没有/etc/init.d/networking及/etc/network/interfaces来管理网络,使用了connman来管理网络。
获取有线网络列表

$ connmanctl services
*AO Wired                ethernet_06ee12e6d6cd_cable

设置静态IP、网关及DNS

$ connmanctl config ethernet_06ee12e6d6cd_cable --ipv4 manual 192.168.0.10 255.255.255.0 192.168.0.1
$ connmanctl config ethernet_06ee12e6d6cd_cable --nameservers 1.2.4.8 114.114.114.114

添加.config来保存设置,新建/var/lib/connman/eth.config

[service_eth]
Type = ethernet
IPv4 = 192.168.0.10/255.255.255.0/192.168.0.1
Nameservers = 1.2.4.8,114.114.114.114

多网络接口

对有NetworkManager的系统,网络会自动选择。NetworkManager会给对应的网络接口都设置默认网关,但metric值不同,以太网比无线网的metric值要低,选择使用以太网。在NetworkManager检测到以太网被down下去,则使用无线网接口。
以下提供一些网络管理命令供参考:

ip route show
ip route add default via 192.168.0.1 dev eth0 metric 10
ip route del default via 192.168.0.1
ip link show
ip link set eth0 down
ip link set eth0 up
ip addr show