액세스 포인트로 라즈베리 파이 설정하기-쉬운 방법


16

예를 들어 독립형 네트워크 (NAT)에서 액세스 포인트로 Raspberry Pi 설정 의 공식 문서에 설명 된 것처럼 고전적인 방법으로 수행하는 방법을 알고 있습니다 . 그러나 여러 가지 구성 요소가 함께 작동해야하며 각 구성 요소는 고유 한 방식으로 구성되어야합니다. 이들은 네트워킹 (ifupdown) , dhcpcd , hostapd , dnsmasqbridge-utils 입니다.

현재 Raspbian Stretch 에는 필요한 모든 구성 요소가 내장되어 있으므로 추가 소프트웨어를 설치할 필요가 없습니다. 이것은 설정을 많이 단순화 할 수 있습니다.

추가 소프트웨어를 설치하지 않고도 Wi-Fi 액세스 포인트로 작동 하도록 Raspbian 을 구성 할 수 있습니까?

답변:


26

━━━ 액세스 포인트 설정하기 ━━━

이더넷 포트 eth0 과 함께 액세스 포인트에 대해 이야기하고 있습니다 .

다른 Wi-Fi 네트워크 (무선 리피터)에 대한 wlan0 클라이언트 연결 과 함께 액세스 포인트를 원할 경우 액세스 포인트를 WiFi 라우터 / 리피터 (브릿지 옵션)로 확인하십시오 .

추가 소프트웨어를 설치하지 않고도 Raspbian Stretch 를 Wi-Fi 액세스 포인트로 구성 할 수 있습니다 . 필요한 모든 구성 요소를 사용할 수 있습니다. 네트워킹, DHCP 서버 및 브리징은 systemd-networkd 와 함께 제공되며 , wpa_supplicant로 wifi를 설정할 수 있습니다 . 라우팅 또는 브리징을 통해 두 개의 인터페이스 eth0wlan0을 연결할 수 있습니다. 먼저 빠른 설치를위한 설정과 세부 사항이 있습니다. 먼저 systemd-networkd 로 전환해야합니다 .


2020-01-18로 업데이트 된 Raspberry Pi 4B에서 Raspbian Buster Lite 2019-09-26 으로 테스트 되었습니다.
업데이트가 완료되었습니다 sudo apt update && sudo apt full-upgrade && sudo reboot.
여기 에서 이전 Raspbian 버전에 대해 마지막으로 테스트 된 개정판을 찾을 수 있습니다 .


♦ 일반 설정

시스템 네트워크로 전환

자세한 내용은 (1)systemd-networkd로 이름 확인을 구성하는 방법을 참조하십시오 . 여기서는 짧게 말입니다. 다음 명령을 실행하십시오.

# deinstall classic networking
rpi ~$ sudo -Es
rpi ~# apt --autoremove purge ifupdown dhcpcd5 isc-dhcp-client isc-dhcp-common
rpi ~# rm -r /etc/network /etc/dhcp

# setup systemd-resolved
rpi ~# apt --autoremove purge avahi-daemon
rpi ~# apt install libnss-resolve
rpi ~# ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
rpi ~# systemctl enable systemd-resolved.service

# enable systemd-networkd
rpi ~# systemctl enable systemd-networkd.service

액세스 포인트로 wpa_supplicant 구성

구성하려면 wpa_supplicant를 액세스 포인트로에 대한 설정이 파일 생성 country=, ssid=, psk=어쩌면을 frequency=. catEOF로 시작 하고 두 가지 EOF를 포함 하여 명령 행에 이것을 한 블록으로 복사하여 붙여 넣을 수 있습니다 (구분자 EOF는 파일의 일부를 얻지 못합니다).

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

일반 설정을 완료했습니다. 돌아가


♦ 독립형 액세스 포인트 설정

이 설정의 예 :

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

마십시오 "일반 설정"은 다음 구성에 다음 파일을 생성 wlan0을 . 액세스 포인트 만 있습니다. 이더넷 장치가 구성되어 있지 않습니다.

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

원하는 경우 재부팅하십시오.
그게 다야.
그렇지 않으면 지금 다시 부팅 할 필요가 없습니다.


♦ 라우팅없이 액세스 포인트 및 eth0 설정

이 설정의 예 :

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

설정

마십시오 "독립형 액세스 포인트 설정" 다음 구성에 다음 파일을 생성 eth0를을 .

rpi ~$ sudo -Es   # if not already executed before
rpi ~# cat > /etc/systemd/network/04-eth0.network <<EOF
[Match]
Name=eth0
[Network]
DHCP=yes
EOF

재부팅하십시오.
그게 다야.

세부

인터페이스 eth0 은 이더넷 케이블로 인터넷 라우터에 연결되며 인터넷 라우터에서 DHCP를 통해 구성을 가져옵니다. 예를 들어 Address=192.168.50.2대신에 고정 IP 주소를 지정하는 것은 문제가되지 않습니다 DHCP=yes.

라우팅이 없으면 휴대폰으로 인터넷에 접속할 수 없습니다. RPi 자체에서만 업데이트 또는 이와 유사한 정보를 얻을 수 있습니다.


♦ NAT를 사용하여 액세스 포인트 및 eth0 설정 (권장)

이 설정의 예 :

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

설정

마십시오 "일반 설정"은 다음 구성에 다음 파일을 생성 wlan0eth0를을 . 이전 설정 중 하나를 시도한 경우 두 파일을 덮어 쓸 수 있습니다. 액세스 포인트에 라우터와 다른 서브넷을 사용해야합니다. 이 예의 라우터는 서브넷 192.168.4.0/24를 사용하지 않습니다. 다른 서브넷이 필요한 경우 주소 줄을 변경하십시오 (예 :) Address=192.168.5.1/24.

rpi ~$ sudo -Es   # if not already executed before
rpi ~# cat > /etc/systemd/network/08-wlan0.network <<EOF
[Match]
Name=wlan0
[Network]
Address=192.168.4.1/24
MulticastDNS=yes
# IPMasquerade is doing NAT
IPMasquerade=yes
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

재부팅하십시오.
그게 다야.

세부

인터넷 라우터에 액세스 할 수없는 경우 NAT (네트워크 주소 변환)로 위조하여 모든 패키지가 RasPi AP에서 온 것임을 알 수 있습니다. 그러나 이것은 깨끗한 라우팅이 아니며 제한이 있습니다. 라우터의 서브넷에있는 클라이언트는 wifi의 클라이언트에 연결할 수 없습니다. 그러나 대부분의 경우 이것은 필요하지 않으므로 설정을 단순화하므로이 설정을 사용하는 것이 좋습니다. 라우터 네트워크에서 wifi 클라이언트에 연결해야하는 경우 다음 섹션에 설명 된대로 전체 라우팅을 사용해야합니다.


♦ 라우팅을 사용하여 액세스 포인트 및 eth0 설정

이 설정의 예 :

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

설정

마십시오 "일반 설정"은 다음 구성에 다음 파일을 생성 wlan0eth0를을 . 이전 설정 중 하나를 시도한 경우 두 파일을 덮어 쓸 수 있습니다. 액세스 포인트와 라우터 네트워크에 서로 다른 서브넷을 사용해야합니다. 고정 IP 주소를 게이트웨이로 사용해야하므로 고정 IP 주소를 사용해야합니다.

rpi ~$ sudo -Es   # if not already executed before
rpi ~# cat > /etc/systemd/network/08-wlan0.network <<EOF
[Match]
Name=wlan0
[Network]
Address=192.168.4.1/24
MulticastDNS=yes
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

재부팅하십시오.

라우팅이 완벽하게 작동하려면 인터넷 라우터에 고정 경로를 설정해야 RasPi를 통해 WiFi로 액세스 지점에 연결된 클라이언트로 패키지를 다시 가져올 경로를 찾을 수 있습니다. 대부분의 인터넷 라우터에서는 고정 경로를 설정할 수 있지만 그 방법은 모델마다 다릅니다. 그것을 찾는 것은 당신에게 달려 있습니다. 예를 들어 RasPi eth0 인터페이스의 고정 IP 주소는 192.168.50.2입니다. 그런 다음 라우터에서 게이트웨이 (다음 홉)는 192.168.50.2이고 대상 네트워크는 192.168.4.0/24 (또는 192.168.4.0 넷 마스크 255.255.255.0)입니다.

인터넷 라우터의 의미 : "서브넷 192.168.4.0/24(AP에서 대상 네트워크)에 속하는 모든 패키지 를 내 서브넷의 다음 라우터 인 RasPi AP 192.168.50.2(게이트웨이)로 보냅니다 . 어디로 갈지 알고 있습니다."

그게 다야.


♦ 브리지로 액세스 포인트 설정

이 설정의 예 :

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

DHCP 서버 및 인터넷 라우터가있는 이더넷 네트워크가 있고 Wi-Fi 액세스 포인트로 동일한 IP 주소로 확장하려는 경우 브리지를 사용합니다. 이것은 종종 라우터의 업 링크로 사용됩니다.

설정

마십시오 "일반 설정"은 다음 네트워크 인터페이스를 구성하려면 다음 세 개의 파일을 만듭니다. 이전 설정 중 하나를 시도한 경우 존재하는 경우 를 /etc/systemd/network/제외하고 모든 파일을 삭제할 수 있습니다 99-default.link. IP 주소는 예입니다. 당신은 당신의 자신을 사용해야합니다.

rpi ~$ sudo -Es   # if not already executed before
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]
MulticastDNS=yes
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

이제 wpa_supplicant 에게 브릿지를 사용하도록 지시해야 합니다 . 다음과 같이 서비스를 수정하여 수행합니다.

rpi ~# systemctl edit wpa_supplicant@wlan0.service

빈 편집기에서 다음 명령문을 삽입하고 저장하고 편집기를 종료하십시오.

[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

재부팅하십시오.
그게 다야.

세부

인터페이스 wlan0 이 브리지의 슬레이브 임을 wpa_supplicant 에게 알려줘야 합니다 . 그렇지 않으면 클라이언트가 "잘못된 비밀번호"로 연결하는 것을 거부합니다. 키 협상이 작동하지 않음을 의미합니다. 우리가 말할 때 / sbin에 / wpa_supplicant를 옵션 에 대한 브리지를 사용하는 wlan0 다음 인터페이스는 이미 다리의 구성원이어야합니다. 이것이 wpa_supplicant 서비스에 대한 드롭 인 파일 (오버레이)로 수행하는 작업 입니다. 빈 명령문 은 이전 항목을 삭제합니다. 그렇지 않으면 두 줄이 있고 wpa_supplicant 가 두 번 시작됩니다. 에서 볼 수 있는 원본 입니다 .-dbr0ExecStart=ExecStart=ExecStart=systemctl cat wpa_supplicant@wlan0.service

일반적으로 이더넷 케이블로 연결된 라우터에는 DHCP 서버가 활성화되어 있습니다. 브리지는 스테이션 (액세스 포인트에 연결된 장치)의 DHCP 요청에도 투명하므로 IP 주소 및 옵션을 사용하여 인터페이스를 구성 할 필요가 없습니다. 라우터가 서비스를 제공합니다.
excursus :
그러나 라우터에 DHCP 서버가없는 경우 RasPi 에서 DHCP 서버를 설정할 수 있습니다. systemd-networkd 에는 내장 DHCP 서버를 구성 할 수있는 옵션이 있지만 문제는 systemd-networkd 가 라우터 자체에서 실행되고 있다고 가정한다는 것입니다. 스테이션에 잘못된 옵션, 특히 라우터 옵션을 제공합니다. 구성 할 방법이 없습니다. 그래서 우리는 설치해야합니다dnsmasq이 경우 필요에 따라 구성 할 수 있습니다. 다음과 같이 설치 및 구성하십시오 (예 : 고유 한 IP 주소 사용).

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 ~$

이 예에서는 스테이션에 제공하도록 예약 된 IP 주소 192.168.50.128 ~ 192.168.50.164가 있습니다. 다른 고정 IP 주소의 경우이 풀 외부의 주소와 브리지 자체의 IP 주소도 사용하십시오.


♦ 최적화

wpa_supplicant 를 시작할 때 주로 다음 메시지가 저널에 표시됩니다.

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

큰 문제는 아닙니다. 암호화 키를 생성하려면 wpa_supplicant에 난수가 필요합니다. 이 작업은 약간 느리게 수행되므로 기다려야합니다. 다행히도 RasPi이있는 빌드 갖는 TR andom N 엄버 G의 enerator (TRNG 참조). 우리는 그것을 사용하고 소프트웨어의 조각 설치하여 임의의 숫자를 점점 속도를 높일 수 있습니다 (3) 과를 :

rpi ~$ sudo apt install rng-tools

업데이트 : Raspbian Stretch 2019-04-08
부터는 설치할 필요가 없습니다 . 기본적으로 설치됩니다. rng-tools


♦ 문제 해결

시스템 네트워크

서비스 상태를 확인하십시오.

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

또는 조금 더 :

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

진행중인 로깅을 따르는 것이 도움이된다는 것을 알았습니다.

rpi ~$ journalctl --boot --follow

파일을 삭제 한 경우 결과를 볼 수 있습니다.

rpi ~$ systemctl cat wpa_supplicant@wlan0.service

장치의 런타임 환경을 확인하려면 장치를 표시하고 예를 들어 두 ExecStart=줄 이 있는지 확인하십시오 .

rpi ~$ systemctl show wpa_supplicant@wlan0.service

그리고 아무것도 다른 사람이 당신이에서 디버그 옵션을 활성화 할 수 있습니다 도움이 경우 /sbin/wpa_supplicant-d파일의 드롭 :

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

결과는 저널에 있습니다. 이 방법으로 잘못된 키 협상 문제를 발견했습니다.

와이파이

액세스 포인트를 설정 한 경우 휴대폰으로 액세스 포인트를 찾아야합니다. 사용 가능한 네트워크가 표시되면 이름이 RPiNet으로 표시되며 연결할 수 있습니다. RasPi에서 다음 명령을 사용할 수도 있습니다.

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

보시다시피 AP 유형 (액세스 포인트)이며 사용중인 채널을 보여줍니다. 문제는 채널을 주파수로 변환하는 것일 수 있습니다. 주파수는 채널과 일치해야합니다. 당신은 볼 수 있습니다 (2) WLAN 채널의 목록. 5.1 GHz 대역에서 사용 채널 36 예를 들어, 당신은 설정해야합니다 frequency=5180에서 /etc/wpa_supplicant\wpa_supplicant.conf. 그러나 Wi-Fi가 5.1GHz 대역을 지원하는지 확인해야합니다. 로 확인할 수 있습니다 sudo iw phy. 이것은 당신에게 많은 정보를 줄 것입니다. 또한 5000MHz 이상의 지원되는 주파수를 포함해야합니다. 24xx MHz의 주파수 만 보이는 경우에는이 주파수 만 사용할 수 있습니다.

다른 점은 임의의 숫자 일 수 있습니다. 보안 연결을위한 키를 암호화하려면 wpa_supplicant에 임의의 숫자가 필요합니다. 이것을 생성하는 것은 Raspberry Pi에서 매우 느립니다. 암호화 키를 생성하기에 엔트로피가 충분하지 않으면 wpa_supplicant가 인증을 거부합니다. 당신이 함께 볼 수 cat /proc/sys/kernel/random/entropy_avail엔트로피를 사용할 수있는 얼마나 많은. 충분히 빨리 작동하려면> ​​1000이어야합니다. 이 속도를 높이기 위해 rng-tools가 기본적으로 설치됩니다. 자세한 내용은 최적화 섹션을 참조 하십시오.


참조 :
[1] 동적 장애 조치를 통해 네트워킹에서 시스템 네트워크로 마이그레이션하는 방법
[2] WLAN 채널 목록
[3] Rng-tools


rpi ~ # systemd-tmpfiles --create --prefix / var / log / journalroot이 출력 메시지와 함께 실패합니다. @pi : ~ # systemd-tmpfiles --create --prefix / var / log / journal '/에 대한 파일 속성을 설정할 수 없습니다 var / log / journal ', value = 0x00800000, mask = 0x00800000 : 지원되지 않는 작업'/ var / log / journal / 6d18954849a74479955b761e891619aa ', value = 0x00800000, mask = 0x00800000에 대한 파일 속성을 설정할 수 없습니다. 구현되었습니다. 절차 구현을 시작하는 것이 좋지 않습니다.
Jan Hus

1
안녕하세요 @JanHus 의견을 보내 주셔서 감사합니다. 이것은 오류가 아니라 경고 일 뿐이며 중요하지 않습니다. 나는 또한 매번 그것을 얻는다. 지속적 저널이 작성됩니다. 로보십시오 ls /var/log/journal/. 다음과 같은 디렉토리가 나타납니다 fa9462093e8d419cb646d0a0c44771c2. 액세스 할 저널의 스토리지입니다 journalctl. 답변을 업데이트하겠습니다.
Ingo

예, 파일이 생성되었는지 확인했습니다. 그러나 나는 길을 잃었고 멈추었다. 오늘도 계속하겠습니다. 지금까지 이것은 주제에 대한 더 나은 "자습서"중 하나입니다. 게시 해 주셔서 감사합니다. PS는 그것을 영속이라고 부릅니다. 임시 프로세스를 사용하여 만들 때 혼란스럽지 않습니다.
Jan Hus

2
@ Ingo proto=WPA2AP 구성 에 사용하는 것이 좋습니다 . 내 전화는 적어도 그것 없이는 "보안이 약하다"고 불평합니다.
Robin Dinse

2
@RobinDinse 물론입니다. 나는 그것을 감독했다. 힌트 주셔서 감사합니다. 추가했습니다 proto=RSN. 그것이 docu가 선호하는 것입니다 ( proto=WPA2별명 지정 ).
Ingo

3

Raspberry Pi를 AP로 설정 하는 훨씬 쉬운 방법은 Pi 3B + / 4의 구성을 AP로 자동화 하는 pi-ap Github 저장소 를 사용하는 것 입니다.

DHCP를 사용하도록 설정 한 인터넷 연결 라우터의 비어있는 포트에 Pi를 연결하십시오 (아마도 대부분의 소비자 라우터의 경우).

일단 연결되면 eth0라우터가 할당 한 DHCP 할당 IP에서 SSH로 Pi를 연결 한 후 다음을 수행하십시오.

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

cd pi-ap

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

sudo ./install.sh

차를 마시고 2 분 정도 기다린 후에 설정 한 SSID variables.sh가 무선 네트워크 목록에 나타납니다. 광고중인 Pi의 WLAN에 연결하십시오.

Pi의 wlan0인터페이스에서 AP 자체에 직접 SSH하려면 기본 IP를 사용하십시오.192.168.0.1

참고 : WiFi 클라이언트 IP를 할당하는 데 사용되는 기본 DHCP 서브넷 pi-ap은 variables.sh입니다 192.168.0.0/28. 네트워크에서 해당 서브넷을 이미 사용중인 경우 실행하기 전에variables.sh WiFi 클라이언트 에 다른 서브넷을 설정하십시오 .install.sh

좋은 결과를 얻기 위해 서브넷 계산기 나 심각한 네트워킹 기술이 필요하지 않습니다. pi-ap 은 MAC ACL을 통한 액세스 제한도 지원합니다.

공개 : 나는 pi-ap 의 개발자입니다 .


0

━━━ 체크 포인트로 단계별 설치 확인 ━━━

이 답변은 설정이 아닙니다. 안정적인 설정을 위해서는 다른 답변을 참조하십시오 . 액세스 포인트 설정 .

이 답변은 주로 문제 해결을위한 것이며 배경 및 정보가없는 자세한 명령을 단계별로 수행하고 수행하는 방법을 보여줍니다. Raspberry Pi에 모니터, 키보드 및 마우스가 연결되어 있다고 가정합니다. 이 점검의 IP 주소 및 기타 설정은 예입니다. 당신은 당신을 사용해야합니다. 당신은 항상 볼 수 있습니다journalctl -b -e 기록 된 정보를 .

Download ZIP이미지 Raspbian Stretch Lite 2018-11-13Linux PC에 .

체크 포인트 1 : 체크섬을 다운로드 사이트의 체크섬과 비교하십시오.

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

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

다음 단계 : 이미지를 연결된 SD 카드에 굽습니다.

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

체크 포인트 2 : 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

다음 단계 : 부팅 파티션을 마운트하고 wpa_supplicant.conf파일을 만듭니다 :

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/

SD 카드를 RasPi에 넣고 부팅하십시오.

확인 사항 3 : 로그인 후 유선 연결을 확인하십시오. 의 eth0 인터페이스는 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

이것은 즉시 작동해야합니다. 작동하지 않으면 네트워크 설정에 일반적인 문제가있는 것입니다. 계속하기 전에 수정하십시오.

체크 포인트 4 : 액세스 포인트를 점검하십시오.

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

wlan0의 인터페이스는 IP 주소를 가지고 갈까요. 인터페이스를 구성하지 않았으므로 링크 로컬 주소 는 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

RPiNet 이 표시 됩니다휴대폰의 액세스 포인트 목록에 되지만 아직 연결할 수는 없습니다.

다음 단계 : 전체 업그레이드 및 재부팅 :

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

재부팅 및 로그인 후 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

(*) 하나 또는 두 개의 혼란스러운 경고가 나타납니다. "... 파일 속성을 설정할 수 없습니다 ..."이것은 오류가 아니며이 경우에는 중요하지 않습니다.

인터페이스 eth0wlan0에 대한 다음 파일을 설정으로 작성하십시오.

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

인터페이스 설정과 일치하도록 /etc/wpa_supplicant/wpa_supplicant.conf의 이름을 바꾸고 재부팅하십시오.

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

검사 점 5 : 재부팅 후 로그인 확인 유선 연결 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

체크 포인트 6 : 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

휴대 전화에서 wifi를 확인하십시오. 당신은 찾아야한다RPiNet 연결할 수 있습니다. 라우팅이 아직 구성되지 않았기 때문에 휴대 전화가 인터넷에 접속할 수 없습니다.

다음 단계 : 인터넷 연결을 위해 NAT를 활성화합니다. NAT를 구성하려면 다음을 사용하여 wpa_supplicant 서비스를 확장해야합니다.

rpi ~$ sudo systemctl edit wpa_supplicant@wlan0.service

빈 편집기에서 다음 명령문을 삽입하고 저장하고 편집기를 종료하십시오.

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

그런 다음 수행하십시오.

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

Checkpoint 7 : 이제 휴대 전화로 인터넷에 접속할 수 있어야합니다.


@Wim 삭제 된 답변으로 물었습니다 : "새로운 Raspbian 릴리즈 버스터로 어떻게이 작업을 수행 할 수 있습니까?" 액세스 포인트를 설정하려는 경우 "체크 포인트가있는 설치 단계별 점검 ━━━"라는 대답이 맞지 않습니다. 이를 위해이 쪽의 다른 답변 "━━━ 액세스 포인트 설정 ━━━"을 사용해야합니다. Raspbian Buster 와도 작동합니다. 방금 확인했습니다.
Ingo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.