Answers:
本教程介绍自2015-05-05起如何使用Raspbian中包含的默认网络管理器dhcpcd设置网络。它适用于Raspbian Buster,Raspbian Stretch,Raspbian Jessie和最后的Raspbian Wheezy的Foundation版本。
压克力设置与拉伸相同。
如果将以太网连接与路由器配合使用,则无需进行任何配置,并且可以直接使用。
注意Pi3 / Pi Zero W内置WiFi不支持5GHz网络,在设置无线监管域之前,可能无法连接到2.4GHz网络上的Ch 12,13 。
在设置了无线监管域(Pi4B,Pi3B +,Pi3A +)之前,将禁用启用5GHz的设备上的WiFi
- 可以通过
Raspberry Pi Configuration
(rc_gui)设置域,也可以通过将域raspi-config
设置country=
为适当的ISO 3166 alpha2国家/地区代码来进行设置/etc/wpa_supplicant/wpa_supplicant.conf
。
如果您使用的是WiFi和GUI,请遵循基础准则
如果您通过遵循基金会准则从命令行使用WiFi,则
这是设置不广播网络的唯一方法。SSID
这也可以用于设置“无头”系统,例如使用串行控制台电缆,但是如果您可以借用显示器和键盘进行设置,则非常容易。有关使用以太网电缆连接到PC的另一种可能的方法,请参见下文。
自2016年5月起,Raspbian会在引导目录中检查名为的文件wpa_supplicant.conf
,并将该文件复制到中/etc/wpa_supplicant
,替换wpa_supplicant.conf
其中可能存在的任何现有文件。然后删除引导目录中的文件。可以使用wpa_supplicant.conf
以下详细说明启用无头设置。(您可能还需要启用ssh
。)
如果您只想知道IP Address
您的Pi正在使用hostname -I
,请在命令行中输入。
从2016年11月发行版开始,Raspbian默认禁用SSH服务器。您将必须手动启用它。
sudo raspi-config
在终端中输入,首先选择advanced options
,然后导航至ssh
,按Enter
并选择启用或禁用ssh服务器。
对于无头设置,可以通过将名为“ ssh”的文件(没有任何扩展名)放置到SD卡的引导分区上来启用SSH。
如果您正在运行最近的Raspbian,
/etc/network/interfaces
则应如下所示。如果您已将其放回原位。(或者Stretch
只是删除它 -它实际上没有任何作用。)
#ifup(8)和ifdown(8)使用的interfaces(5)文件 #请注意,此文件被编写为与dhcpcd一起使用 #有关静态IP,请查阅/etc/dhcpcd.conf和'man dhcpcd.conf' #包括/etc/network/interfaces.d中的文件: 源目录/etc/network/interfaces.d
该文件/etc/wpa_supplicant/wpa_supplicant.conf
将通过推荐的设置方法进行创建/修改,但可以手动设置。最近的Raspbian可以选择raspi-config
输入SSID和密码。它应包含以下内容:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=AU
network={
ssid="ESSID"
psk="Your_wifi_password"
}
如果您需要连接到专用网络 (即,不广播SSID
),请在scan_ssid=1
内部添加线路network={⋯}
。
注意如果要连接到其他网络(例如,在公司或家里),则可以包含多个
network={⋯}
条目。如果您可以访问多个网络并希望连接到特定网络,请
priority=100
在network={⋯}
条目内添加该行。
您可以为每个网络选择不同的优先级,将选择优先级最高的可访问网络;默认值为0。
还有许多其他选项可以使用参见man wpa_supplicant.conf
。
Jessie不包含10-wpa_supplicant
用于管理WiFi接口的挂钩,因此需要链接到wpa_supplicant。这些设置与可预测的网络接口名称不兼容。
该/etc/network/interfaces
所用杰西应该是: -
# interfaces(5) file used by ifup(8) and ifdown(8)
# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
iface eth0 inet manual
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
注意在中调用dhcp /etc/network/interfaces
将禁用 dhcpcd
。
Stretch
引入了1个 可预测的网络接口名称,这些名称已在其他发行版中使用了一段时间。
网络接口的名称将由前缀en
-以太网或wl
-wlan组成,后跟x
指示MAC
和MAC
例如enxb827eb123456
或wlx00c140123456
。连接的Pi4,Pi3和PIZeroW的板载WiFi sdio
将使用该名称wlan0
这对于使用多个网络接口的用户可能是有益的,但是对于大多数Pi用户而言,具有单个以太网和WiFi接口的差别不大。如果在中传递内核命令行,则可以恢复以前的名称eth0
和名称。wlan0
net.ifnames=0
/boot/cmdline.txt
有一个选项raspi-config
可启用可预测的网络接口名称。
1.由于某些无法理解的原因,基金会在引入期待已久的功能后仅三周就决定“禁用以太网设备的可预测网络接口名称”。在Advanced Options
of 下有一个选项raspi-config
可切换此设置。
查看单独的答案静态IP地址
dhcpcd
配置默认情况下,Raspbian dhcpcd
用于管理网络接口。这是自动的,大多数用户只需要指定无线网络的SSID和密码即可。
dhcpcd
通过在中输入选项可以配置工作方式/etc/dhcpcd.conf
。看到man dhcpcd.conf
。有一个很好的文章dhcpcd
在https://wiki.archlinux.org/index.php/dhcpcd
以下描述了一些更常见的配置:
dhcpcd
当DHCP租约失败时,可以在其中配置静态配置文件,然后将其回退。这对于无头机器尤其有用,在无头机器中,静态配置文件可用作“恢复”配置文件,以确保始终可以连接到该机器。静态配置文件设置为任何其他静态IP地址
#定义静态配置文件 资料static_eth0 静态ip_address =⋯ 静态路由器=⋯ 静态domain_name_servers =⋯ #退回到eth0上的静态配置文件 eth0接口 后备static_eth0
dhcpcd
配置接口通常这样做是为了使Pi可以用作访问点(需要使用其他文件进行配置),同时允许DHCP
在其他接口上进行常规配置。
添加denyinterfaces wlan0
到文件的末尾(但在任何其他添加的接口行之上)。
dhcpcd
在接口上配置网关如果您希望接口不安装任何默认路由(通常与静态IP地址结合使用),请指定
Nogateway
dhcpcd
可以根据主机网络配置接口。这将使用地址解析协议(ARP)在尝试DHCP解析之前基于MAC或IP地址来探查主机。
接口bge0 设定192.168.0.1 #我特定的192.168.0.1网络 个人资料dd:ee:aa:dd:bb:ee 静态ip_address = 192.168.0.10 / 24 #通用192.168.0.1网络 配置文件192.168.0.1 静态ip_address = 192.168.0.98 / 24
如果您不使用这些功能并且网络简单,则可以通过禁用ARP探测来加快DHCP的速度。
Noarp
可以将dhcpcd配置为对特定的无线接口使用不同的wpa_supplicant.conf文件。
创建一个以例如命名的文件wpa_supplicant-"$interface".conf
,将仅由/etc/wpa_supplicant/
wpa_supplicant-wlan0.conf
wlan0
/etc/wpa_supplicant/wpa_supplicant.conf
将用于任何其他无线接口。
Raspbian的最新版本(使用dhcpcd
)允许ssh
在一个link-local
地址上工作,并且avahi
(这是一个零配置实现)使程序可以发现在本地网络上运行的主机。
这意味着您可以将Pi插入计算机(使用以太网电缆)或本地网络路由器,然后在不知道IP地址的情况下进行连接。
您可以轻松地从Linux和OS X使用ssh pi@hostname.local
(默认主机名是raspberrypi
)进行连接。这应该适用于流行的GUI ssh
程序。对于某些版本的Windows和以非标准方式使用.local的网络,有时会出现问题。(请参阅https://en.wikipedia.org/wiki/.local)
注意.local
分辨率并不总是有效,例如在中rsync
。以下内容应解析IP(并且可以包含在bash
脚本中)
RemotePi=$(getent hosts hostname.local | awk '{ print $1 }')
如果您的系统不必getent
查询hosts
例如macOS,则可以使用以下命令:
RemotePi=$(arp -n hostname.local | awk '{x = $2; gsub(/[()]/, "", x); print x }')
如果您有多个Pi,则需要确保每个Pi都有一个唯一的主机名。
您可以使用交叉电缆,但不需要一根电缆(大多数现代接口会自动检测到)。
直接连接的一个缺点是Pi将无法访问Internet,并且日期也无法设置。您可以通过ssh pi@hostname.local sudo date -s$(date -Ins)
在连接之前运行从主机复制日期。
本教程是关于设置常规的Raspbian安装,以使用附带的软件访问Internet。它还涵盖了到同一网络上其他计算机的连接。
它主要旨在帮助新用户努力使他们的Pi(特别是WiFi)正常工作。
它不包括:
- 其他网络管理员。
- 在Pi上运行高级网络(例如
DHCP
服务器,隧道,VPN,访问点)。- 的使用
ipv6
(尽管如果您有ipv6
网络,这应该可以工作)。- 备用网络设置。(设置网络的方式有很多。)
有关设置静态IP地址的问题是此站点上最常见的问题。教程很多(很多错误,过时或不完整的教程)。
免责声明
在继续之前,我认为必须声明不建议设置静态地址。电信工程师不这样做。静态IP地址可能是网络管理员生活的祸根。在某些情况下,需要静态IP地址,例如,如果您正在运行DHCP服务器,或者在没有DHCP服务器的隔离网络上运行。
如果您决定继续进行操作,则应确保操作正确。改编自 Foundation Network教程
这最容易通过Pi本身使用DHCP来完成,但是可以在网络上的任何计算机上完成,尽管命令在其他系统上可能有所不同。
跑
ip -4 addr show | grep global
应该给出如下输出:
inet 10.1.1.30/24 brd 10.1.1.255 scope global eth0
inet 10.1.1.31/24 brd 10.1.1.255 scope global wlan0
第一个地址是您Pi在网络上的IP地址,斜杠后的部分是网络大小。您极有可能是/ 24。
第二个地址是网络的brd(广播)地址。
查找路由器(或网关)的地址
ip route | grep default | awk '{print $3}'
10.1.1.1
最后记下DNS服务器的地址,该地址通常与网关相同。
cat /etc/resolv.conf
# Generated by resolvconf
nameserver 10.1.1.1
然后按照ONE下列方法。(这里有没有记录的其他方法。这是最常见的上Raspbian。)(在任一方法替代相应的网络接口名称eth0
,wlan0
或可预见的网络接口名称。)
如果要查找接口名称(即使未连接),请运行以下命令 ls /sys/class/net/
无论采用哪种方法,都应选择未使用的IP地址。理想情况下,在同一子网内超出DHCP服务器使用的范围。
保留/etc/network/interfaces
默认值(如上所述)。
编辑/etc/dhcpcd.conf
如下:
Here is an example which configures a static address, routes and dns.
interface eth0
static ip_address=10.1.1.30/24
static routers=10.1.1.1
static domain_name_servers=10.1.1.1
interface wlan0
static ip_address=10.1.1.31/24
static routers=10.1.1.1
static domain_name_servers=10.1.1.1
ip_address
是上面命令的地址和大小(或同一网络上的另一个未使用的地址),
routers
是路由器(或网关)的地址。
domain_name_servers
是/etc/resolv.conf中的DNS地址。(请参阅man dhcpcd.conf
)
dhcpcd
在https://wiki.archlinux.org/index.php/dhcpcd上有一篇不错的文章。它Fallback profile
是静态IP的替代方法
注意不建议使用此方法(仅在禁用DHCP客户端守护程序时才有效),特别是在您计划同时使用两个接口时。
在您的Pi中配置静态网络地址 /etc/network/interfaces
auto eth0
iface eth0 inet static
address 10.1.1.30
netmask 255.255.255.0
gateway 10.1.1.1
allow-hotplug wlan0
iface wlan0 inet static
address 10.1.1.31
netmask 255.255.255.0
gateway 10.1.1.1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
address
是上面命令的地址(或同一网络上的另一个未使用地址),
netmask
255.255.255.0对应于网络大小/24
。
gateway
是路由器(或网关)的地址。
您也可以指定dns-nameservers
,但这通常不是必需的。该broadcast
自动源自address
与netmask
和无需指定。有关更多详细信息,请参见https://wiki.debian.org/NetworkConfiguration
您可以设置一个或两个eth0
,也可以设置wlan0
一个可预测的网络接口名称
然后禁用DHCP客户端守护程序,并切换到标准Debian网络:
sudo systemctl disable dhcpcd
sudo systemctl enable networking
重新启动以使更改生效:
sudo reboot
systemd-analyze
。
static domain_search=example.local
到dhcpcd.conf方法。随时还原/编辑/与我联系。
对于以太网连接上的静态IP地址:
sudo nano /etc/dhcpcd.conf
在文件顶部键入以下几行:
interface eth0
static ip_address=192.168.1.XX/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
sudo reboot
对于最近的Jessie更新,需要这样做。/etc/network/interfaces
应该一个人呆着。打开浏览器,输入路由器地址(大多数情况下为192.168.1.1),然后检查您的家庭网络,以确保Raspberry Pi显示为“静态”。
dhcpcd
推断出网络掩码(通常无法针对其他地址范围)而无法正常运行。阅读man
页面。
auto eth0
上述iface eth0 inet manual
行/etc/network/interface
。通过sudo service networking restart
命令重启网络
简短而简单的方法如何执行此操作:
这将设置一个固定的IP并启用ssh守护程序:
/boot/cmdline.txt
并添加ip=192.168.1.20
到该行的末尾。/boot/ssh
ssh pi@192.168.1.20
密码为raspberry
。在Windows上使用Putty通过ssh连接。我正在使用它来访问我的Raspbian Jessie和Stretch,该靴子无需连接显示器即可启动,仅具有电源和以太网。使用ssh shell访问它之后,我可以继续设置。
经过这种处理后,Raspberry PI具有两个 IP:一个来自您指定的固定IP,一个来自运行在Raspberry Pi上的dhcp-client。
ifconfig
将显示固定的IP。右上角的蓝色箭头图标显示dhcpd-IP。
您应该做的第一件事是使Raspberry pi的IP保持静态。这样,每当您打开Raspberry pi的电源时,它都应连接到您的访问点(热点)。
连接到您的接入点。在树莓派的终端中输入ifconfig并在下面输入该IP地址,在我的情况下为192.168.43.233
首先编辑dhcpcd.conf文件
sudo nano /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
interface wlan0
static ip_address=192.168.43.233/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
按Ctrl + x保存并重新启动。现在打开树莓派的电源,它将自动连接到您的接入点。
routers
和domain_name_servers
行是可选的。