Thiết lập Raspberry Pi làm điểm truy cập - cách dễ dàng


15

Tôi biết cách thực hiện theo cách cổ điển như được mô tả ví dụ bằng tài liệu chính thức tại Thiết lập Raspberry Pi làm điểm truy cập trong mạng độc lập (NAT) . Nhưng điều đó cần nhiều thành phần khác nhau phải chơi cùng nhau và mỗi thành phần phải được cấu hình theo cách riêng của nó. Đó là kết nối mạng (ifupdown) , dhcpcd , hostapd , dnsmasqBridge-utils .

Ngày nay, Raspbian Stretch có tất cả các thành phần cần thiết được tích hợp sẵn nên không cần cài đặt thêm phần mềm. Điều này có thể đơn giản hóa việc thiết lập rất nhiều.

Có thể chỉ cần cấu hình Raspbian hoạt động như một điểm truy cập wifi mà không cần cài đặt phần mềm bổ sung?

Câu trả lời:


25

Ăn chơi Thiết lập một điểm truy cập

Chúng ta đang nói về một điểm truy cập cùng với một cổng ethernet eth0 .

Nếu bạn muốn một điểm truy cập cùng với kết nối máy khách wlan0 đến một mạng wifi khác (bộ lặp wlan) thì hãy xem Điểm truy cập dưới dạng bộ định tuyến / bộ lặp WiFi, tùy chọn có cầu nối .

Có thể định cấu hình Raspbian Stretch làm điểm truy cập wifi mà không cần cài đặt phần mềm bổ sung. Tất cả các thành phần cần thiết đều có sẵn: mạng, máy chủ DHCP và cầu nối đi kèm với systemd-networkd và wifi có thể được thiết lập với wpa_supplicant . Kết nối hai giao diện eth0wlan0 có thể được thực hiện bằng cách định tuyến hoặc bằng cách bắc cầu. Dưới đây đầu tiên thiết lập để cài đặt nhanh chóng và sau đó các chi tiết. Đầu tiên chúng ta phải chuyển sang systemd-networkd .

Đã thử nghiệm với
Raspbian Stretch Lite 2019-04-08 trên Raspberry Pi 3B + được cập nhật vào 2019-04-14.
Raspbian Buster Lite 2019-07-10 trên Raspberry Pi 4B được cập nhật vào 2019-07-20.
Cập nhật được thực hiện với sudo apt update && sudo apt full-upgrade && sudo reboot.


♦ Thiết lập chung

Chuyển sang systemd-networkd

Để biết thông tin chi tiết, hãy xem (1) . Ở đây chỉ trong ngắn hạn. Thực hiện các lệnh này:

# disable classic networking
rpi ~$ sudo -Es
rpi ~# systemctl mask networking.service dhcpcd.service
rpi ~# mv /etc/network/interfaces /etc/network/interfaces~
rpi ~# sed -i '1i resolvconf=NO' /etc/resolvconf.conf

# enable systemd-networkd
rpi ~# systemctl enable systemd-networkd.service systemd-resolved.service
rpi ~# ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

Định cấu hình wpa_supplicant làm điểm truy cập

Để cấu hình wpa_supplicant như điểm truy cập tạo ra tập tin này với các thiết lập của bạn cho country=, ssid=, psk=và có lẽ frequency=. Bạn chỉ có thể sao chép và dán khối này trong một khối vào dòng lệnh của bạn bắt đầu bằng catvà bao gồm cả EOF (dấu phân cách EOF sẽ không nhận được một phần của tệp):

rpi ~# cat > /etc/wpa_supplicant/wpa_supplicant-wlan0.conf <<EOF
country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="RPiNet"
    mode=2
    frequency=2437
    #key_mgmt=NONE   # uncomment this for an open hotspot
    # delete next 3 lines if key_mgmt=NONE
    key_mgmt=WPA-PSK
    proto=RSN WPA 
    psk="password"
}
EOF
rpi ~# chmod 600 /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
rpi ~# systemctl disable wpa_supplicant.service
rpi ~# systemctl enable wpa_supplicant@wlan0.service

Hoàn tất thiết lập chung. Quay lại.


♦ Thiết lập điểm truy cập độc lập

Ví dụ cho thiết lập này:

                 wifi
mobile-phone <~.~.~.~.~> (wlan0)RPi(eth0)
            \             /
           (dhcp)   192.168.4.1

Thực hiện "Thiết lập chung" sau đó tạo tệp sau để định cấu hình wlan0 . Chúng tôi chỉ có điểm truy cập. Không có thiết bị ethernet được cấu hình.

rpi ~# cat > /etc/systemd/network/08-wlan0.network <<EOF
[Match]
Name=wlan0
[Network]
Address=192.168.4.1/24
DHCPServer=yes
EOF

Nếu bạn muốn điều này thì khởi động lại.
Đó là nó.
Nếu không thì tiếp tục, không cần phải khởi động lại vào lúc này.


♦ Thiết lập điểm truy cập và với eth0, không cần định tuyến

Ví dụ cho thiết lập này:

                                 |
                 wifi            |           wired            wan
mobile-phone <~.~.~.~.~> (wlan0)RPi(eth0) <---------> router <---> INTERNET
            \             /      |     \             /
           (dhcp)   192.168.4.1  |    (dhcp)   192.168.50.1

Thiết lập

Thực hiện "Thiết lập điểm truy cập độc lập" sau đó tạo tệp sau để định cấu hình eth0 .

rpi ~# cat > /etc/systemd/network/04-eth0.network <<EOF
[Match]
Name=eth0
[Network]
DHCP=yes
EOF

Khởi động lại.
Đó là nó.

Chi tiết

Giao diện eth0 được kết nối với cáp ethernet với bộ định tuyến internet và được cấu hình bởi DHCP từ bộ định tuyến internet. Không có vấn đề gì khi cung cấp cho nó một địa chỉ IP tĩnh với ví dụ Address=192.168.50.2thay vìDHCP=yes .

Nếu không định tuyến, bạn không thể truy cập internet bằng điện thoại di động. Bạn chỉ có thể truy cập nó từ chính RPi để nhận các bản cập nhật hoặc đại loại như thế.


♦ Thiết lập điểm truy cập và với eth0, với NAT (được khuyến nghị)

Ví dụ cho thiết lập này:

                 wifi                        wired            wan
mobile-phone <~.~.~.~.~> (wlan0)RPi(eth0) <---------> router <---> INTERNET
            \             /            \
           (dhcp)   192.168.4.1       (dhcp)

Thiết lập

Thực hiện "Thiết lập chung" sau đó tạo các tệp sau để định cấu hình wlan0eth0 . Hãy chắc chắn rằng bạn sử dụng một mạng con khác cho điểm truy cập so với điểm truy cập từ bộ định tuyến. Bộ định tuyến trong ví dụ này không sử dụng mạng con 192.168.4.0/24. Nếu bạn cần một mạng con khác thì chỉ cần thay đổi dòng Địa chỉ, vd Address=192.168.5.1/24.

rpi ~# cat > /etc/systemd/network/08-wlan0.network <<EOF
[Match]
Name=wlan0
[Network]
Address=192.168.4.1/24
DHCPServer=yes
[DHCPServer]
DNS=84.200.69.80 1.1.1.1
EOF

rpi ~# cat > /etc/systemd/network/04-eth0.network <<EOF
[Match]
Name=eth0
[Network]
DHCP=yes
IPForward=yes
EOF

Để định cấu hình NAT, bạn phải mở rộng dịch vụ wpa_supplicant với:

rpi ~# systemctl edit wpa_supplicant@wlan0.service

Trong trình soạn thảo trống, chèn các câu lệnh này, lưu chúng và thoát khỏi trình soạn thảo:

[Service]
ExecStartPre=/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
ExecStopPost=-/sbin/iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Khởi động lại.
Đó là nó.

Chi tiết

Nếu bạn không có quyền truy cập vào bộ định tuyến internet, bạn có thể giả mạo nó bằng NAT (dịch địa chỉ mạng) để nói với họ rằng tất cả các gói đều đến từ RasPi AP của bạn. Nhưng đây không phải là định tuyến sạch và có những hạn chế. Các máy khách trên mạng con của bộ định tuyến không thể kết nối với các máy khách trên wifi. Nhưng trong hầu hết các trường hợp, điều này là không cần thiết vì vậy thiết lập này được khuyến nghị vì nó đơn giản hóa việc thiết lập. Nếu bạn cần kết nối với các máy khách wifi từ mạng bộ định tuyến thì bạn phải sử dụng định tuyến đầy đủ như được mô tả trong phần tiếp theo.


♦ Thiết lập điểm truy cập và với eth0, với định tuyến

Ví dụ cho thiết lập này:

                 wifi                        wired            wan
mobile-phone <~.~.~.~.~> (wlan0)RPi(eth0) <---------> router <---> INTERNET
            \             /            \              /
           (dhcp)   192.168.4.1   192.168.50.2   192.168.50.1

Thiết lập

Thực hiện "Thiết lập chung" sau đó tạo các tệp sau để định cấu hình wlan0eth0 . Hãy chắc chắn rằng bạn sử dụng các mạng con khác nhau cho điểm truy cập và mạng bộ định tuyến. Chúng tôi phải sử dụng địa chỉ IP tĩnh bởi vì chúng tôi phải sử dụng chúng làm cổng.

rpi ~# cat > /etc/systemd/network/08-wlan0.network <<EOF
[Match]
Name=wlan0
[Network]
Address=192.168.4.1/24
DHCPServer=yes
[DHCPServer]
DNS=84.200.69.80 1.1.1.1
EOF

rpi ~# cat > /etc/systemd/network/04-eth0.network <<EOF
[Match]
Name=eth0
[Network]
Address=192.168.50.2/24
Gateway=192.168.50.1
DNS=84.200.69.80 1.1.1.1
IPForward=yes
EOF

Khởi động lại.

Để làm việc định tuyến hoàn tất, bạn phải đặt tuyến tĩnh trong bộ định tuyến internet để có thể tìm tuyến cho các gói sắp tới qua RasPi tới các máy khách được kết nối bằng wifi đến điểm truy cập. Trên hầu hết các bộ định tuyến internet, bạn có thể đặt tuyến tĩnh nhưng cách thực hiện khác nhau tùy theo từng mô hình. Tùy thuộc vào bạn để tìm ra nó. Ví dụ: giao diện RasPi eth0 của bạn có địa chỉ ip tĩnh 192.168.50.2. Sau đó, trên bộ định tuyến của bạn, cổng (hop tiếp theo) là 192.168.50.2, mạng đích là 192.168.4.0/24 (hoặc 192.168.4.0 netmask 255.255.255.0).

Điều đó có nghĩa là cho bộ định tuyến internet: "gửi tất cả các gói thuộc mạng con 192.168.4.0/24(mạng đích từ AP) đến bộ định tuyến tiếp theo trên mạng con của tôi, RasPi AP 192.168.50.2(cổng). Nó biết nơi nào sẽ tiếp tục."

Đó là nó.


♦ Thiết lập một điểm truy cập với một cây cầu

Ví dụ cho thiết lập này:

                               RPi
               wifi   ┌──────bridge──────┐   wired            wan
mobile-phone <.~.~.~> │(wlan0) br0 (eth0)│ <-------> router <-----> INTERNET
            \                   |                   / DHCP-server
           (dhcp              (dhcp           192.168.50.1
        from router)       from router)

Nếu bạn đã có một mạng ethernet với máy chủ DHCP và bộ định tuyến internet và bạn muốn mở rộng nó với một điểm truy cập wifi nhưng với cùng một địa chỉ IP thì bạn sử dụng một cây cầu. Điều này thường được sử dụng như một đường lên đến một bộ định tuyến.

Thiết lập

Thực hiện "Thiết lập chung" sau đó dọn sạch thư mục / etc / systemd / mạng nhưng không chạm vào 99-default.linknếu có. Tạo ba tệp sau để cấu hình eth0br0 . Các địa chỉ IP là ví dụ. Bạn phải thiết lập của riêng bạn.

rpi ~# cat > /etc/systemd/network/02-br0.netdev <<EOF
[NetDev]
Name=br0
Kind=bridge
EOF

rpi ~# cat > /etc/systemd/network/04-br0_add-eth0.network <<EOF
[Match]
Name=eth0
[Network]
Bridge=br0
EOF

rpi ~# cat > /etc/systemd/network/12-br0_up.network <<EOF
[Match]
Name=br0
[Network]
DHCP=yes
# to use static IP uncomment these and comment DHCP=yes
#Address=192.168.50.60/24
#Gateway=192.168.50.1
#DNS=84.200.69.80 1.1.1.1
EOF

Bây giờ chúng ta phải nói với wpa_supplicant sử dụng một cây cầu. Chúng tôi làm điều đó bằng cách sửa đổi dịch vụ của mình với:

rpi ~# systemctl edit wpa_supplicant@wlan0.service

Trong trình soạn thảo trống, chèn các câu lệnh này, lưu chúng và thoát khỏi trình soạn thảo:

[Service]
ExecStartPre=/sbin/iw dev %i set type __ap
ExecStartPre=/bin/ip link set %i master br0

ExecStart=
ExecStart=/sbin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -Dnl80211,wext -i%I -bbr0

ExecStopPost=-/bin/ip link set %i nomaster
ExecStopPost=-/sbin/iw dev %i set type managed

Khởi động lại.
Đó là nó.

Chi tiết

Chúng ta phải nói với wpa_supplicant rằng giao diện của nó wlan0 là nô lệ của một cây cầu. Nếu không, nó sẽ từ chối máy khách kết nối với "mật khẩu sai" có nghĩa là đàm phán chính không hoạt động. Khi chúng ta nói / sbin / wpa_supplicant với tùy chọn -dbr0sử dụng cầu cho wlan0 thì giao diện phải là thành viên của cầu. Đó là những gì chúng tôi làm với việc thả tệp (lớp phủ) cho dịch vụ wpa_supplicant . Câu lệnh trống ExecStart=xóa mục cũ. Nếu không, bạn có hai dòng ExecStart=wpa_supplicant sẽ bắt đầu hai lần. Bản gốc ExecStart=bạn có thể xem với systemctl cat wpa_supplicant@wlan0.service.

Thông thường, bộ định tuyến bạn được kết nối với cáp ethernet có bật máy chủ DHCP. Cây cầu cũng trong suốt đối với các yêu cầu DHCP từ các trạm (thiết bị được kết nối với điểm truy cập), do đó bạn không phải lo lắng về cấu hình giao diện của nó với các tùy chọn và địa chỉ IP. Các bộ định tuyến sẽ phục vụ nó.
tham quan:
Nhưng nếu bộ định tuyến không có máy chủ DHCP, bạn có thể thiết lập một máy chủ trên RasPi. systemd-networkd có các tùy chọn để cấu hình máy chủ DHCP tích hợp của nó, nhưng vấn đề là systemd-networkd cho rằng nó đang chạy trên chính bộ định tuyến và điều đó không đúng trong trường hợp này. Nó sẽ phục vụ các tùy chọn sai cho các trạm, đặc biệt là bộ định tuyến tùy chọn . Không có cách nào để cấu hình nó. Vì vậy, chúng tôi phải cài đặtdnsmasqtrong trường hợp này có thể được cấu hình khi cần thiết. Cài đặt và cấu hình nó với (ví dụ: sử dụng địa chỉ IP của riêng bạn):

rpi ~$ sudo -Es
rpi ~# apt install dnsmasq
rpi ~# systemctl stop dnsmasq
rpi ~# mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

rpi ~# cat > /etc/dnsmasq.conf <<EOF
interface=br0
  dhcp-range=192.168.50.128,192.168.50.164,255.255.255.0,24h
  dhcp-option=option:router,192.168.50.1
  dhcp-option=option:dns-server,8.8.8.8,1.1.1.1
EOF

rpi ~# systemctl start dnsmasq
rpi ~# exit
rpi ~$

Trong ví dụ này là các địa chỉ IP 192.168.50.128 đến 192.168.50.164 dành riêng để cung cấp cho các trạm. Đối với các địa chỉ IP tĩnh khác, hãy sử dụng một địa chỉ bên ngoài nhóm này, cũng là địa chỉ IP cho chính cây cầu.


♦ Tối ưu hóa

Khi bắt đầu wpa_supplicant, bạn chủ yếu nhận được thông báo này trên tạp chí:

wpa_supplicant[427]: random: Cannot read from /dev/random: Resource temporarily unavailable
wpa_supplicant[427]: random: Only 12/20 bytes of strong random data available from /dev/random
wpa_supplicant[427]: random: Not enough entropy pool available for secure operations
wpa_supplicant[427]: WPA: Not enough entropy in random pool for secure operations - update keys later when the first station connects

Nó không phải là một vấn đề lớn. wpa_supplicant cần số ngẫu nhiên để tạo khóa mã hóa. Điều này được thực hiện chậm một chút để nó phải chờ. May mắn thay, RasPi có một bản dựng trong T rue R andom N umber G enerator (TRNG). Chúng tôi có thể sử dụng nó và tăng tốc nhận số ngẫu nhiên bằng cách cài đặt một phần mềm (3) với:

rpi ~$ sudo apt install rng-tools

Cập nhật:
Kể từ Raspbian Stretch 2019-04-08 , không cần cài đặt rng-tools. Chúng được cài đặt theo mặc định.


♦ Xử lý sự cố

systemd-mạngd

Nhìn vào trạng thái của một dịch vụ:

rpi ~$ systemctl status systemd-networkd.service
rpi ~$ systemctl status wpa_supplicant@wlan0.service

Hoặc thậm chí nhiều hơn một chút:

rpi ~$ journalctl --boot --pager-end

Tôi thấy hữu ích để theo dõi việc đăng nhập đang diễn ra:

rpi ~$ journalctl --boot --follow

Nếu bạn đã thực hiện thả tập tin, bạn có thể xem kết quả:

rpi ~$ systemctl cat wpa_supplicant@wlan0.service

Để kiểm tra môi trường thời gian chạy của một đơn vị, bạn có thể hiển thị nó và ví dụ xem nếu có hai ExecStart=dòng:

rpi ~$ systemctl show wpa_supplicant@wlan0.service

Và nếu không có gì khác giúp bạn có thể kích hoạt tùy chọn gỡ lỗi từ /sbin/wpa_supplicantvới -dtrong một thả trong hồ sơ:

rpi ~$ sudo systemctl edit wpa_supplicant@wlan0.service
ExecStart=
ExecStart=/sbin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -Dnl80211,wext -i%I -bbr0 -d

Đầu ra là trong tạp chí. Bằng cách này, tôi đã tìm thấy vấn đề với đàm phán quan trọng sai.

wifi

Nếu bạn đã thiết lập điểm truy cập, bạn nên tìm thấy nó bằng điện thoại di động. Hiển thị các mạng có sẵn, nó được trình bày với tên RPiNet và bạn có thể kết nối với nó. Trên RasPi, bạn cũng có thể sử dụng lệnh:

rpi ~$ sudo iw dev wlan0 info
phy#0
        Interface wlan0
                ifindex 3
                wdev 0x2
                addr b8:27:eb:06:e8:8b
                ssid RPiNet
                type AP
                channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz

Như bạn có thể thấy nó là loại AP (điểm truy cập) và nó cũng sẽ cho bạn biết nó đang sử dụng kênh nào. Một vấn đề có thể là dịch một kênh thành tần số. Tần số phải phù hợp với một kênh. Bạn có thể xem (2) để biết danh sách các kênh WLAN. Ví dụ kênh sử dụng 36 trên băng tần 5,1 GHz bạn phải thiết lập frequency=5180trong /etc/wpa_supplicant\wpa_supplicant.conf. Nhưng bạn phải chắc chắn rằng wifi của bạn hỗ trợ băng tần 5,1 GHz. Bạn có thể kiểm tra với sudo iw phy. Điều này sẽ cung cấp cho bạn một loạt các thông tin. Nó cũng phải chứa các tần số được hỗ trợ trên 5000 MHz. Nếu bạn chỉ thấy tần số 24xx MHz thì tất nhiên bạn chỉ có thể sử dụng tần số này.

Một điểm khác có thể là số ngẫu nhiên. Để mã hóa khóa cho các kết nối được bảo mật, wpa_supplicant cần số ngẫu nhiên. Tạo ra điều này rất chậm trên Raspberry Pi. Nếu nó không có đủ entropy để tạo khóa mã hóa, wpa_supplicant sẽ từ chối xác thực. Bạn có thể xem có cat /proc/sys/kernel/random/entropy_availbao nhiêu entropy có sẵn. Nó phải là> 1000 để làm việc đủ nhanh. Để tăng tốc độ này, rng-toolsđược cài đặt theo mặc định. Nhìn vào phần Tối ưu hóa để biết thêm thông tin.


tài liệu tham khảo:
[1] Cách di chuyển từ mạng sang systemd-networkd với chuyển đổi dự phòng động
[2] Danh sách các kênh WLAN
[3] Rng-tools


rpi ~ # systemd-tmpfiles --create --prefix / var / log / Tạp chí FAILS với thông báo đầu ra này @pi: ~ # systemd-tmpfiles --create --prefix / var / log / Tạp chí Không thể đặt thuộc tính tệp cho '/ var. thực hiện. Không phải là một khởi đầu tốt để thực hiện các thủ tục.
Jan Hus

1
Xin chào @JanHus Cảm ơn phản hồi của bạn. Đây chỉ là một cảnh báo không phải là một lỗi và không quan trọng. Tôi cũng nhận được nó mỗi lần. Các tạp chí liên tục được tạo ra. Nhìn với ls /var/log/journal/. Bạn sẽ thấy một thư mục trông như thế fa9462093e8d419cb646d0a0c44771c2. Đây là lưu trữ cho tạp chí bạn truy cập journalctl. Tôi sẽ cập nhật câu trả lời của tôi.
Ingo

Có, tôi đã kiểm tra nếu tập tin được tạo ra. Nhưng tôi đã lúng túng và dừng lại. Tôi sẽ tiếp tục ngày hôm nay. Cho đến nay, đây là một trong những "hướng dẫn" tốt hơn về chủ đề. Cảm ơn đã đăng nó. PS đang gọi nó là OK? Ít bối rối khi nó được tạo ra bằng cách sử dụng quá trình tạm thời.
Jan Hus

2
@Ingo Tôi nghĩ nên sử dụng proto=WPA2cấu hình AP. Điện thoại của tôi, ít nhất, phàn nàn về "bảo mật yếu" mà không có nó.
Robin Dinse

2
@RobinDinse Bạn đúng, tất nhiên. Tôi đã giám sát nó. Cảm ơn đã gợi ý. Tôi đã thêm proto=RSN. Đó là những gì docu thích (đặt tên proto=WPA2bí danh).
Ingo

3

Một cách thậm chí DỄ DÀNG để thiết lập Raspberry Pi làm AP là sử dụng repo pi-ap Github tự động cấu hình của Pi 3B + / 4 thành AP.

Kết nối Pi với một cổng miễn phí trong bộ định tuyến kết nối Internet của bạn có bật DHCP (có thể là trường hợp trong hầu hết các bộ định tuyến người tiêu dùng).

Sau khi kết nối, SSH vào Pi trên IP được gán DHCP được gán eth0bởi bộ định tuyến và sau đó:

git clone https://github.com/f1linux/pi-ap

cd pi-ap

nano variables.sh   # Change default values for SSID & password

sudo ./install.sh

Uống trà và sau khi chờ khoảng 2 phút, SSID bạn đặt variables.shsẽ xuất hiện trong danh sách mạng không dây của bạn. Kết nối với mạng WLAN của Pi đang được quảng cáo.

Để SSH trực tiếp đến chính AP trên wlan0giao diện của Pi , hãy sử dụng IP mặc định của192.168.0.1

XIN LƯU Ý : DHCP subnet pi-ap dụng mặc định để assign khách hàng WiFi IP trong variables.sh192.168.0.0/28. Nếu bạn đã sử dụng mạng con đó trên mạng của mình, hãy đặt một mạng con khác variables.shcho các máy khách WiFi TRƯỚC KHI thực thi install.sh.

Không có máy tính mạng con hoặc thậm chí các kỹ năng mạng nghiêm trọng cần thiết để đạt được kết quả tốt. pi-ap thậm chí còn hỗ trợ hạn chế truy cập thông qua MAC ACL.

TIẾT LỘ : Tôi là nhà phát triển của pi-ap .


0

Kiểm tra cài đặt từng bước với các điểm kiểm tra

Câu trả lời này không được nghĩ đến để thiết lập. Để có thiết lập ổn định, hãy xem câu trả lời khác Thiết lập điểm truy cập .

Câu trả lời này chủ yếu để khắc phục sự cố và để hiển thị cách thức hoạt động với các lệnh chi tiết từng bước và điểm kiểm tra nhưng không có thông tin cơ bản. Tôi cho rằng bạn có một màn hình, bàn phím và chuột được gắn vào Raspberry Pi của bạn. Địa chỉ IP và các cài đặt khác trong kiểm tra này là ví dụ. Bạn phải sử dụng của bạn. Bạn luôn có thể nhìn vào journalctl -b -ethông tin đăng nhập.

Download ZIPhình ảnh Raspbian Stretch Lite 2018-11-13 vào máy tính linux của bạn.

Điểm kiểm tra 1: So sánh tổng kiểm tra với điểm kiểm tra trên trang tải xuống.

pc ~$ sha256sum 2018-11-13-raspbian-stretch-lite.zip

47ef1b2501d0e5002675a50b6868074e693f78829822eef64f3878487953234d 2018-11-13-raspbian-stretch-lite.zip

Bước tiếp theo: Ghi hình ảnh vào Thẻ SD đính kèm:

pc ~$ unzip -p 2018-11-13-raspbian-stretch-lite.zip | sudo dd of=/dev/sdb bs=4M conv=fsync

Điểm kiểm tra 2: kiểm tra phân vùng trên Thẻ SD:

pc ~$ sudo parted /dev/sdb print
Model: Mass Storage Device (scsi)
Disk /dev/sdb: 3965MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      4194kB  50,2MB  46,0MB  primary  fat32        lba
 2      50,3MB  1866MB  1816MB  primary  ext4

Bước tiếp theo: Gắn kết phân vùng khởi động và tạo một wpa_supplicant.conftệp:

pc ~$ mkdir boot/
pc ~$ sudo mount /dev/sdb1 boot/
pc ~$ sudo -e boot/wpa_supplicant.conf

# insert this into the empty editor with your settings, save it and quit the editor
country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="RPiNet"
    mode=2
    key_mgmt=WPA-PSK
    psk="password"
    frequency=2412
}

pc ~$ sudo umount boot/

Đặt Thẻ SD vào RasPi của bạn và khởi động.

Điểm kiểm tra 3: Sau khi đăng nhập, kiểm tra kết nối có dây. Các eth0 giao diện phải có một địa chỉ IP:

rpi ~$ ip -4 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.50.177/24 brd 192.168.50.255 scope global eth0
       valid_lft forever preferred_lft forever

rpi ~$ ping -I eth0 -c3 google.com
PING google.com (172.217.22.78) from 192.168.50.177 eth0: 56(84) bytes of data.
64 bytes from fra15s17-in-f14.1e100.net (172.217.22.78): icmp_seq=1 ttl=55 time=15.0 ms
64 bytes from fra15s17-in-f14.1e100.net (172.217.22.78): icmp_seq=2 ttl=55 time=14.7 ms
64 bytes from fra15s17-in-f14.1e100.net (172.217.22.78): icmp_seq=3 ttl=55 time=15.1 ms

--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 14.729/14.965/15.125/0.170 ms

Điều này sẽ làm việc ra khỏi hộp. Nếu nó không hoạt động thì bạn có một vấn đề chung với thiết lập mạng của bạn. Vui lòng sửa nó trước khi tiếp tục.

Điểm kiểm tra 4: Kiểm tra điểm truy cập:

rpi ~$ sudo iw dev wlan0 info
Interface wlan0
        ifindex 3
        wdev 0x1
        addr b8:27:eb:06:e8:8b
        ssid RPiNet
        type AP
        wiphy 0
        channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
        txpower 31.00 dBm

Các wlan0 giao diện shoud có một địa chỉ IP. Vì chúng tôi chưa định cấu hình giao diện nên nó sẽ có địa chỉ Liên kết cục bộ từ 169.254.0.0/16.

rpi ~$ ip -4 addr show dev wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 169.254.210.182/16 brd 169.254.255.255 scope global wlan0
       valid_lft forever preferred_lft forever

Bạn sẽ thấy RPiNet trong danh sách các điểm truy cập trên điện thoại di động của mình nhưng bạn chưa thể kết nối với nó.

Bước tiếp theo: Nâng cấp và khởi động lại đầy đủ:

rpi ~$ sudo apt update
rpi ~$ sudo apt full-upgrade
rpi ~$ sudo systemctl reboot

Sau khi khởi động lại và đăng nhập, chuyển sang systemd-networkd :

rpi ~$ sudo -Es
rpi ~# mkdir -p /var/log/journal
rpi ~# systemd-tmpfiles --create --prefix /var/log/journal #ignore warnings (*)

rpi ~# apt install rng-tools
rpi ~# systemctl mask networking.service
rpi ~# systemctl mask dhcpcd.service
rpi ~# sudo mv /etc/network/interfaces /etc/network/interfaces~
rpi ~# sed -i '1i resolvconf=NO' /etc/resolvconf.conf

rpi ~# systemctl enable systemd-networkd.service
rpi ~# systemctl enable systemd-resolved.service
rpi ~# ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

(*) Bạn sẽ nhận được một hoặc hai cảnh báo khó hiểu "... Không thể đặt thuộc tính tệp ..." Đây không phải là lỗi và không quan trọng trong trường hợp này.

Tạo các tệp này cho giao diện eth0wlan0 với cài đặt của bạn:

rpi ~# cat > /etc/systemd/network/04-eth0.network <<EOF
[Match]
Name=eth0
[Network]
Address=192.168.50.60/24
Gateway=192.168.50.1
DNS=84.200.69.80 84.200.70.40
IPForward=yes
EOF

rpi ~# cat > /etc/systemd/network/08-wlan0.network <<EOF
[Match]
Name=wlan0
[Network]
Address=192.168.4.1/24
DHCPServer=yes
[DHCPServer]
DNS=84.200.69.80 84.200.70.40
EOF

Đổi tên /etc/wpa_supplicant/wpa_supplicant.conf để phù hợp với cài đặt giao diện và khởi động lại:

rpi ~# mv /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
rpi ~# systemctl disable wpa_supplicant@wlan0.service
rpi ~# systemctl reboot

Điểm kiểm tra 5: Sau khi khởi động lại và đăng nhập kiểm tra kết nối có dây eth0 :

rpi ~$ ip -4 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.50.60/24 brd 192.168.50.255 scope global eth0
       valid_lft forever preferred_lft forever

rpi ~$ ping -I eth0 -c3 google.com
PING google.com (172.217.10.14) from 192.168.50.60 eth0: 56(84) bytes of data.
64 bytes from lga34s12-in-f14.1e100.net (172.217.10.14): icmp_seq=1 ttl=51 time=93.5 ms
64 bytes from lga34s12-in-f14.1e100.net (172.217.10.14): icmp_seq=2 ttl=51 time=93.5 ms
64 bytes from lga34s12-in-f14.1e100.net (172.217.10.14): icmp_seq=3 ttl=51 time=93.5 ms

--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 93.519/93.551/93.592/0.030 ms

Điểm kiểm tra 6: Kiểm tra kết nối wifi wlan0 :

rpi ~$ sudo systemctl start wpa_supplicant@wlan0.service
rpi ~$ sudo iw dev wlan0 info
Interface wlan0
        ifindex 3
        wdev 0x1
        addr b8:27:eb:06:e8:8b
        ssid RPiNet
        type AP
        wiphy 0
        channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
        txpower 31.00 dBm

rpi ~$ ip -4 addr show dev wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.4.1/24 brd 192.168.4.255 scope global wlan0
       valid_lft forever preferred_lft forever

Kiểm tra wifi trên điện thoại di động của bạn. Bạn nên tìm RPiNetvà bạn có thể kết nối với nó. Điện thoại di động của bạn không thể truy cập internet vì định tuyến chưa được định cấu hình.

Bước tiếp theo: kích hoạt NAT để kết nối internet. Để định cấu hình NAT, bạn phải mở rộng dịch vụ wpa_supplicant với:

rpi ~$ sudo systemctl edit wpa_supplicant@wlan0.service

Trong trình soạn thảo trống, chèn các câu lệnh này, lưu chúng và thoát khỏi trình soạn thảo:

[Service]
ExecStartPre=/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
ExecStopPost=-/sbin/iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Sau đó làm:

rpi ~$ sudo systemctl daemon-reload
rpi ~$ sudo systemctl restart systemd-networkd.service
rpi ~$ sudo systemctl restart wpa_supplicant@wlan0.service

Điểm kiểm tra 7: Bây giờ bạn sẽ có thể truy cập internet bằng điện thoại di động.


@Wim Bạn đã hỏi trong một câu trả lời bị xóa: "Làm thế nào điều này có thể được thực hiện với Buster phát hành Raspbian mới?" Câu trả lời này "ăn thử Kiểm tra cài đặt từng bước với các điểm kiểm tra" không phải là câu hỏi đúng nếu bạn muốn thiết lập một điểm truy cập. Đối với điều này, bạn nên sử dụng câu trả lời khác "Cách cài đặt một điểm truy cập ăn chơi" ở đây về phía này. Nó cũng hoạt động với Raspbian Buster. Tôi có nó chỉ cần xác minh.
Ingo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.