Câu trả lời:
Hướng dẫn này mô tả cách thiết lập mạng bằng dhcpcd của trình quản lý mạng mặc định có trong Raspbian kể từ 2015-05-05.
Nó áp dụng cho các bản phát hành Foundation của Raspbian Buster , Raspbian Stretch , Raspbian Jessie và Raspbian Wheezy cuối cùng .
Cài đặt Buster giống hệt với Stretch.
Nếu bạn đang sử dụng kết nối Ethernet với bộ định tuyến thì sẽ không cần cấu hình và nó sẽ hoạt động tốt.
LƯU Ý WiFi sẵn có Pi3 / Pi Zero W không hỗ trợ mạng 5GHz và có thể không kết nối với Ch 12,13 trên mạng 2.4GHz cho đến khi miền điều tiết không dây được đặt.
WiFi trên các thiết bị hỗ trợ 5GHz bị vô hiệu hóa cho đến khi miền quy định không dây được đặt (Pi4B, Pi3B +, Pi3A +)
- Tên miền có thể được đặt qua
Raspberry Pi Configuration
(RC_gui)raspi-config
hoặc bằng cách đặt thànhcountry=
mã quốc gia ISO 3166 alpha2 thích hợp/etc/wpa_supplicant/wpa_supplicant.conf
.
Nếu bạn đang sử dụng WiFi và GUI được thiết lập bằng cách thực hiện theo Nguyên tắc nền tảng
Nếu bạn đang sử dụng WiFi từ Dòng lệnh được thiết lập bằng cách thực hiện theo Nguyên tắc nền tảng
Đây là cách duy nhất để thiết lập mạng không phát sóng SSID
.
Điều này cũng có thể được sử dụng để thiết lập hệ thống 'Không đầu', ví dụ như sử dụng cáp bàn điều khiển nối tiếp, nhưng sẽ dễ dàng hơn nếu bạn có thể mượn màn hình và bàn phím để thiết lập. Xem bên dưới để biết phương pháp khác có thể sử dụng cáp Ethernet đến PC.
Raspbian , kể từ tháng 5 năm 2016, kiểm tra nội dung của thư mục khởi động cho một tệp được gọi wpa_supplicant.conf
và sẽ sao chép tệp vào /etc/wpa_supplicant
, thay thế bất kỳ wpa_supplicant.conf
tệp hiện có nào có thể ở đó. Các tập tin trong thư mục khởi động sau đó được loại bỏ. Điều này có thể được sử dụng để cho phép thiết lập không đầu, sử dụng các wpa_supplicant.conf
cài đặt chi tiết bên dưới. (Bạn có thể cũng muốn kích hoạt ssh
.)
Nếu bạn chỉ muốn biết IP Address
Pi của bạn đang sử dụng, hãy nhập hostname -I
dòng lệnh.
Kể từ phiên bản tháng 11 năm 2016, Raspbian có máy chủ SSH bị tắt theo mặc định. Bạn sẽ phải kích hoạt nó bằng tay.
Nhập sudo raspi-config
vào thiết bị đầu cuối, trước tiên chọn advanced options
, sau đó điều hướng đến ssh
, nhấn Enter
và chọn Bật hoặc tắt máy chủ ssh.
Để thiết lập không đầu, SSH có thể được bật bằng cách đặt tệp có tên 'ssh', không có bất kỳ tiện ích mở rộng nào, trên phân vùng khởi động của thẻ SD.
Nếu bạn đang chạy một Raspbian gần đây
/etc/network/interfaces
nên như dưới đây. Nếu bạn đã thay đổi, PUT IT BACK. (HoặcStretch
chỉ cần xóa nó - nó thực sự KHÔNG CÓ.)
# giao diện (5) tệp được sử dụng bởi ifup (8) và ifdown (8) # Xin lưu ý rằng tệp này được viết để sử dụng với dhcpcd # Đối với IP tĩnh, tham khảo /etc/dhcpcd.conf và 'man dhcpcd.conf' # Bao gồm các tệp từ /etc/network/interfaces.d: thư mục nguồn /etc/network/interfaces.d
Tập tin /etc/wpa_supplicant/wpa_supplicant.conf
sẽ được tạo / sửa đổi bằng các phương pháp thiết lập được đề xuất, nhưng có thể được thiết lập bằng tay. Raspbian gần đây có một tùy chọn raspi-config
để nhập SSID và Mật khẩu. Nó nên chứa một cái gì đó như sau: -
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=AU
network={
ssid="ESSID"
psk="Your_wifi_password"
}
Nếu bạn cần kết nối với một mạng riêng (tức là không phát sóng SSID
), hãy bao gồm đường dây scan_ssid=1
bên trong network={⋯}
.
LƯU Ý Nếu bạn muốn kết nối với các mạng khác nhau (ví dụ: tại nơi làm việc hoặc ở nhà), bạn có thể bao gồm nhiều
network={⋯}
mục.Nếu bạn có quyền truy cập vào nhiều mạng và muốn kết nối với một mạng cụ thể, hãy bao gồm dòng
priority=100
bên trongnetwork={⋯}
mục nhập.
Bạn có thể chọn mức độ ưu tiên khác nhau cho mỗi mạng, mạng ưu tiên cao nhất có thể truy cập sẽ được chọn; mặc định là 0.
Có nhiều lựa chọn khác có thể được sử dụng xem man wpa_supplicant.conf
.
Jessie không bao gồm 10-wpa_supplicant
móc để quản lý giao diện WiFi, vì vậy cần có liên kết đến wpa_supplicant. Các cài đặt này không tương thích với Tên giao diện mạng có thể dự đoán.
Việc /etc/network/interfaces
sử dụng bởi Jessie nên là: -
# 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
LƯU Ý gọi dhcp trong /etc/network/interfaces
sẽ vô hiệu hóa dhcpcd
.
Stretch
đã giới thiệu 1 tên giao diện mạng có thể dự đoán được sử dụng trong các bản phân phối khác trong một thời gian.
Các giao diện mạng sẽ có các tên được hình thành từ tiền tố en
- Ethernet hoặc wl
- wlan theo sau là x
dấu hiệu MAC
và MAC
ví dụ enxb827eb123456
hoặc wlx00c140123456
. Tuy nhiên, WiFi trên bo mạch của Pi4, Pi3 và PIZeroW được kết nối qua sdio
sẽ sử dụng tênwlan0
Điều này có thể có lợi cho những người sử dụng nhiều giao diện mạng, tuy nhiên đối với hầu hết người dùng Pi, với một giao diện Ethernet và WiFi duy nhất sẽ tạo ra sự khác biệt nhỏ. Các tên trước đó eth0
và wlan0
có thể được khôi phục nếu bạn truyền net.ifnames=0
vào dòng lệnh kernel /boot/cmdline.txt
.
Có một tùy chọn raspi-config
để kích hoạt tên giao diện mạng có thể dự đoán được.
1. Vì một số lý do khó hiểu, Quỹ đã quyết định "Vô hiệu hóa tên giao diện mạng có thể dự đoán được cho các thiết bị Ethernet" chỉ 3 tuần sau khi giới thiệu tính năng được chờ đợi từ lâu. Có một tùy chọn dưới Advanced Options
của raspi-config
để chuyển đổi thiết lập này.
Xem câu trả lời riêng Địa chỉ IP tĩnh
dhcpcd
Cấu hình nâng caoRaspbian, theo mặc định, sử dụng dhcpcd
để quản lý giao diện mạng. Điều này là tự động và hầu hết người dùng không cần phải làm gì ngoài việc chỉ định SSID và mật khẩu cho mạng không dây.
Có thể định cấu hình cách dhcpcd
hoạt động bằng cách nhập tùy chọn /etc/dhcpcd.conf
; thấy man dhcpcd.conf
.There là một bài viết tốt về dhcpcd
tại https://wiki.archlinux.org/index.php/dhcpcd
Dưới đây mô tả một số cấu hình phổ biến hơn: -
Có thể định cấu hình cấu hình tĩnh bên trong dhcpcd
và quay lại cấu hình đó khi thuê DHCP không thành công. Điều này đặc biệt hữu ích cho các máy không đầu, trong đó cấu hình tĩnh có thể được sử dụng làm hồ sơ "phục hồi" để đảm bảo rằng luôn có thể kết nối với máy. Cấu hình tĩnh được thiết lập như mọi Địa chỉ IP tĩnh khác
# xác định hồ sơ tĩnh hồ sơ static_eth0 ip_address tĩnh = ⋯ bộ định tuyến tĩnh = ⋯ tên miền tĩnh_name_servers = ⋯ # dự phòng hồ sơ tĩnh trên eth0 giao diện eth0 dự phòng static_eth0
dhcpcd
cấu hình một giao diệnĐiều này thường được thực hiện để cho phép Pi hoạt động như một Điểm truy cập (cần được cấu hình bằng các tệp khác), đồng thời cho phép DHCP
cấu hình bình thường trên các giao diện khác.
Thêm denyinterfaces wlan0
vào cuối tập tin (nhưng trên bất kỳ dòng giao diện được thêm nào khác).
dhcpcd
cấu hình một cổng trên một giao diệnNếu bạn muốn giao diện không cài đặt bất kỳ tuyến mặc định nào (thường được sử dụng cùng với địa chỉ IP tĩnh), hãy chỉ định
đường nogate
dhcpcd
có thể cấu hình các giao diện phụ thuộc vào mạng máy chủ. Điều này sử dụng Giao thức phân giải địa chỉ (ARP) để thăm dò các máy chủ dựa trên địa chỉ MAC hoặc IP trước khi thử độ phân giải DHCP.
giao diện bge0 arping 192.168.0.1 # Mạng 192.168.0.1 cụ thể của tôi hồ sơ dd: ee: aa: dd: bb: ee ip_address tĩnh = 192.168.0.10 / 24 # Mạng 192.168.0.1 chung hồ sơ 192.168.0.1 ip_address tĩnh = 192.168.0.98 / 24
Bạn có thể tăng tốc DHCP bằng cách vô hiệu hóa việc thăm dò ARP nếu bạn không sử dụng các tính năng này và có một mạng đơn giản.
buổi trưa
Có thể định cấu hình dhcpcd để sử dụng các tệp wpa_supplicant.conf khác nhau cho một giao diện không dây cụ thể.
Tạo một tệp có tên wpa_supplicant-"$interface".conf
trong /etc/wpa_supplicant/
ví dụ wpa_supplicant-wlan0.conf
sẽ chỉ được sử dụng bởiwlan0
/etc/wpa_supplicant/wpa_supplicant.conf
sẽ được sử dụng cho bất kỳ giao diện không dây nào khác.
Các phiên bản gần đây của Raspbian (sử dụng dhcpcd
) cho phép ssh
hoạt động trên một link-local
địa chỉ và avahi
(đó là triển khai zeroconf) cho phép các chương trình khám phá các máy chủ đang chạy trên mạng cục bộ.
Điều này có nghĩa là bạn có thể cắm Pi vào Máy tính (bằng cáp Ethernet) hoặc bộ định tuyến mạng cục bộ và kết nối mà không cần biết địa chỉ IP.
Bạn có thể dễ dàng kết nối từ Linux và OS X với ssh pi@hostname.local
(tên máy chủ mặc định là raspberrypi
) Điều này sẽ hoạt động với ssh
các chương trình GUI phổ biến . Điều này đôi khi có vấn đề với một số phiên bản Windows và mạng sử dụng .local theo cách không chuẩn. (Xem https://en.wikipedia.org/wiki/.local )
.local
Độ phân giải LƯU Ý không phải lúc nào cũng hoạt động, ví dụ như trong rsync
. Sau đây sẽ giải quyết IP (và có thể được bao gồm trong bash
các tập lệnh)
RemotePi=$(getent hosts hostname.local | awk '{ print $1 }')
Nếu hệ thống của bạn không phải getent
truy vấn hosts
macOS, bạn có thể sử dụng như sau: -
RemotePi=$(arp -n hostname.local | awk '{x = $2; gsub(/[()]/, "", x); print x }')
Nếu bạn có nhiều Pi, bạn cần đảm bảo mỗi Pi có một tên máy chủ duy nhất.
Bạn có thể sử dụng cáp chéo, nhưng bạn không cần một (hầu hết các giao diện hiện đại tự động phát hiện).
Một nhược điểm của kết nối trực tiếp là Pi sẽ không có quyền truy cập Internet và ngày sẽ không được đặt. Bạn có thể sao chép ngày từ máy chủ bằng cách chạy ssh pi@hostname.local sudo date -s$(date -Ins)
trước khi kết nối.
Hướng dẫn này là về việc thiết lập cài đặt Raspbian bình thường để truy cập internet bằng phần mềm đi kèm. Nó cũng bao gồm các kết nối với các máy tính khác trên cùng một mạng.
Nó chủ yếu nhằm mục đích giúp người dùng mới đấu tranh để Pi của họ (đặc biệt là WiFi) hoạt động.
Nó KHÔNG bao gồm: -
- Quản lý mạng khác.
- Chạy mạng nâng cao trên Pi (ví dụ:
DHCP
máy chủ, Đường hầm, VPN, Điểm truy cập).- Sử dụng
ipv6
(mặc dù nếu bạn có mộtipv6
mạng, nó sẽ hoạt động).- Thiết lập mạng thay thế. (Có nhiều cách khác nhau để thiết lập mạng.)
Các câu hỏi về cài đặt Địa chỉ IP tĩnh là một trong những câu hỏi phổ biến nhất trên trang web này. Có rất nhiều hướng dẫn (nhiều sai, lỗi thời hoặc không đầy đủ).
Khước từ
Trước khi tiếp tục, tôi cảm thấy bắt buộc phải tuyên bố rằng việc thiết lập một địa chỉ tĩnh KHÔNG được khuyến khích. Kỹ sư viễn thông không làm điều này. Địa chỉ IP tĩnh có thể là nguyên nhân sống còn của Quản trị viên mạng. Có những tình huống trong đó Địa chỉ IP tĩnh là cần thiết, ví dụ: nếu bạn đang chạy máy chủ DHCP hoặc chạy trên mạng bị cô lập không có máy chủ DHCP.
Nếu bạn quyết tâm tiến hành bằng mọi cách, bạn nên chắc chắn rằng bạn đã làm đúng. Chuyển thể từ Hướng dẫn Mạng Foundation
Điều này được thực hiện dễ dàng nhất với chính Pi, sử dụng DHCP, nhưng có thể được thực hiện trên bất kỳ máy tính nào trên mạng của bạn, mặc dù các lệnh có thể khác nhau trên các hệ thống khác.
Chạy
ip -4 addr show | grep global
mà sẽ cung cấp một đầu ra như:
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
Địa chỉ đầu tiên là địa chỉ IP của Pi của bạn trên mạng và phần sau dấu gạch chéo là kích thước mạng. Rất có khả năng là của bạn sẽ là / 24.
Địa chỉ thứ hai là địa chỉ brd (quảng bá) của mạng.
Tìm địa chỉ của bộ định tuyến của bạn (hoặc cổng)
ip route | grep default | awk '{print $3}'
10.1.1.1
Cuối cùng ghi lại địa chỉ máy chủ DNS của bạn, thường giống với cổng của bạn.
cat /etc/resolv.conf
# Generated by resolvconf
nameserver 10.1.1.1
Sau đó làm theo MỘT trong các phương pháp sau. (Có nhiều phương pháp khác không ghi nhận ở đây. Đây là những phổ biến nhất trên Raspbian.) ( Trong cả hai phương pháp thay thế tên giao diện mạng thích hợp cho eth0
, wlan0
hoặc tên giao diện mạng có thể dự đoán . )
Nếu bạn muốn tìm tên giao diện, ngay cả khi không được kết nối, hãy chạy lệnh sau ls /sys/class/net/
Trong cả hai phương pháp, bạn nên chọn địa chỉ IP không được sử dụng; lý tưởng ngoài phạm vi được sử dụng bởi máy chủ DHCP của bạn, trong cùng một mạng con.
Để /etc/network/interfaces
mặc định của nó (như trên).
Chỉnh sửa /etc/dhcpcd.conf
như sau: -
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
là địa chỉ và kích thước từ lệnh trên (hoặc một địa chỉ không sử dụng khác trên cùng một mạng),
routers
là địa chỉ của bộ định tuyến (hoặc cổng) của bạn.
domain_name_servers
là địa chỉ DNS từ /etc/resolv.conf. (xem man dhcpcd.conf
)
Có một bài viết tốt về dhcpcd
tại https://wiki.archlinux.org/index.php/dhcpcd Các Fallback profile
là một thay thế cho IP tĩnh
LƯU Ý Phương pháp này KHÔNG được khuyến nghị (và chỉ hoạt động nếu bạn tắt trình nền máy khách DHCP), đặc biệt nếu bạn dự định sử dụng cả hai giao diện.
Định cấu hình một tiện ích mạng tĩnh trên Pi của bạn trong /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
là địa chỉ từ lệnh trên (hoặc một địa chỉ không sử dụng khác trên cùng một mạng),
netmask
255.255.255.0 tương ứng với kích thước mạng /24
.
gateway
là địa chỉ của bộ định tuyến của bạn (hoặc cổng).
Bạn cũng có thể chỉ định dns-nameservers
, nhưng điều này thường không cần thiết. Nó broadcast
được tự động bắt nguồn từ address
và netmask
không cần phải được chỉ định. Để biết thêm chi tiết, hãy xem https://wiki.debian.org/NetworkConfiguration
Bạn có thể đặt một hoặc cả hai eth0
, wlan0
hoặc một trong các tên giao diện mạng có thể dự đoán
Sau đó vô hiệu hóa trình nền máy khách DHCP và chuyển sang kết nối mạng Debian tiêu chuẩn :
sudo systemctl disable dhcpcd
sudo systemctl enable networking
Khởi động lại để những thay đổi có hiệu lực:
sudo reboot
systemd-analyze
.
static domain_search=example.local
phương thức dhcpcd.conf. Vui lòng hoàn nguyên / chỉnh sửa / liên hệ với tôi.
Đối với địa chỉ IP tĩnh trên kết nối Ethernet:
sudo nano /etc/dhcpcd.conf
Nhập các dòng sau trên đầu tệp:
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
Điều này cần phải được thực hiện cho bản cập nhật gần đây của Jessie. /etc/network/interfaces
Nên bỏ lại một mình . Mở trình duyệt của bạn và nhập địa chỉ bộ định tuyến của bạn (192.168.1.1) và kiểm tra mạng gia đình của bạn để đảm bảo Raspberry Pi hiển thị dưới dạng 'Tĩnh'.
dhcpcd
suy ra netmask, điều này không thể cho các dải địa chỉ khác. Đọc các man
trang.
auto eth0
trên iface eth0 inet manual
trong /etc/network/interface
tệp của mình . Khởi động lại mạng thông qua sudo service networking restart
lệnh
Phương pháp ngắn gọn và hoàn hảo để làm điều này với:
Điều này sẽ đặt một IP cố định và kích hoạt daemon ssh:
/boot/cmdline.txt
và thêm ip=192.168.1.20
vào cuối dòng./boot/ssh
ssh pi@192.168.1.20
mật khẩu là raspberry
. Sử dụng Putty trên Windows để kết nối qua ssh.Tôi đang sử dụng điều này để truy cập vào Raspbian Jessie và Stretch mà khởi động mà không có màn hình kèm theo, chỉ có nguồn và ethernet. Sau khi truy cập nó bằng vỏ ssh tôi có thể tiếp tục thiết lập.
Sau khi xử lý, Raspberry PI có hai IP: Một từ IP cố định mà bạn đã chỉ định và một từ dhcp-client chạy trên Raspberry Pi.
ifconfig
sẽ cho bạn thấy IP cố định. Trong khi mũi tên màu xanh-Biểu tượng ở phía trên bên phải hiển thị dhcpd-IP.
Điều đầu tiên bạn nên làm là làm cho IP Raspberry pi của bạn tĩnh. Vì vậy, bất cứ khi nào bạn tăng sức mạnh cho Raspberry pi, nó sẽ kết nối với điểm truy cập của bạn (Hotspot).
Kết nối với điểm truy cập của bạn. Nhập ifconfig trong thiết bị đầu cuối của raspberry pi và nhập địa chỉ IP đó bên dưới, trong trường hợp của tôi là 192.168.43.233
Bắt đầu bằng cách chỉnh sửa tệp dhcpcd.conf
sudo nano /etc/dhcpcd.conf
Cuộn tất cả xuống phía dưới và thêm dòng này ở cuối theo kết nối của bạn (có dây hoặc không dây).
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
Nhấn Ctrl + x để lưu và khởi động lại. Bây giờ cấp nguồn cho pi mâm xôi của bạn và nó sẽ tự động kết nối với điểm truy cập của bạn.
routers
vàdomain_name_servers
là tùy chọn nếu bạn không muốn thiết lập định tuyến qua giao diện đó.