“Linux系统下网络配置方法”的版本间的差异
Tangdapeng(讨论 | 贡献) (创建页面,内容为“===设置以太网接口=== 大多数网络设置可以通过/etc/network/interfaces配置文件完成。系统启动时通过/etc/init.d/networking服务中的ifup...”) |
Sunxiaolin(讨论 | 贡献) (→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 /> | |
− | |||
====使用DHCP自动配置接口==== | ====使用DHCP自动配置接口==== | ||
− | + | 编辑/etc/network/interfaces,参考设置如下:<br /> | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
auto eth0 | auto 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> | ||
− | ==== | + | 网络接口可以通过命令查看 |
− | + | <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 | ||
− | + | </syntaxhighlight> | |
− | + | 重启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/ | + | 有桌面的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> | ||
− | === | + | ====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