해결책설명된다여기
문제
내 Raspberry Pi에는 3개의 인터페이스 eth0, wlan0, wlan1(2개의 Wi-Fi USB 동글)이 있습니다.
- wlan1은 SSDP를 통해 WiFi 카메라에 연결하는 데 사용됩니다.
- wlan0은 서버에 대한 TCP 연결을 갖는 데 사용됩니다(알려진 IP/도메인 이름). WiFi wlan0이 DHCP를 통해 연결되어 있다는 사실은 전혀 모릅니다. 수시로 변경될 수 있습니다. 특히 게이트웨이를 알지 못합니다.
- eth0은 예시를 통해 MacBook Air 연결 공유 서비스를 통해 SSH 액세스를 디버깅하는 데 사용됩니다.
실제로 이러한 인터페이스는 모두 작동하고 있습니다. 다음은 ifconfig 출력입니다(wlan1과 eth0은 동일한 네트워크에 있지만 앞으로는 그렇지 않습니다).
eth0 Link encap:Ethernet HWaddr b8:27:eb:8c:e2:10
inet addr:192.168.0.19 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1174 errors:0 dropped:0 overruns:0 frame:0
TX packets:141 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:93616 (91.4 KiB) TX bytes:12342 (12.0 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
wlan0 Link encap:Ethernet HWaddr c0:4a:00:2a:ab:6c
inet addr:192.168.43.44 Bcast:192.168.43.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1142 (1.1 KiB) TX bytes:1145 (1.1 KiB)
wlan1 Link encap:Ethernet HWaddr 74:da:38:0c:c6:f0
inet addr:192.168.0.14 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1480 errors:0 dropped:0 overruns:0 frame:0
TX packets:155 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:222449 (217.2 KiB) TX bytes:29711 (29.0 KiB)
다음은 sudo Route -n의 출력입니다.
0.0.0.0 192.168.0.254 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan1
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.43.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
지난 24시간 동안 읽은 내용을 잘 이해했다면 라우팅 작업을 해야 합니다. 그러나 나는 무엇을 어떻게 이해하지 못합니다. 기본 경로를 변경해야 했나요? 그렇다면 네트워크에 연결하기 전에 wlan0 또는 wlan1 게이트웨이를 모르기 때문에 어떻게 관리할 수 있습니까? 불가능한 문제인가요?
편집: /etc/network/interfaces 추가
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
post-up route del default dev wlan0
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid "wifi1"
wpa-psk "psw1"
auto wlan1
allow-hotplug wlan1
iface wlan1 inet dhcp
wpa-ssid "wifi2"
wpa-psk "pwd2"
답변1
/etc/network/interfaces에 있는 파일을 보면 기본 게이트웨이를 찾을 수 있습니다. 아마도 192.168.0.1일 것 같지만 확실하지는 않습니다. 게이트웨이는 라우터의 주소일 뿐입니다.
정보를 보려면 "cat /etc/network/interfaces"를 입력하세요. 변경하려면 루트 권한(sudo)으로 편집하세요.
이 시도:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
# post-up route del default dev wlan0
address 192.168.0.19
netmask 255.255.255.0
gateway 192.168.0.1
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
wpa-ssid "wifi1"
wpa-psk "psw1"
address 192.168.43.44
netmask 255.255.255.0
gateway 192.168.0.1
auto wlan1
allow-hotplug wlan1
iface wlan1 inet static
wpa-ssid "wifi2"
wpa-psk "pwd2"
address 192.168.0.14
netmask 255.255.255.0
gateway 192.168.0.1
원본 /etc/network/interfaces 파일을 백업하고 대신 이 파일을 사용해 보세요. 이렇게 하면 모든 것이 정적으로(변경되지 않음) 설정됩니다. ifdown/ifup을 사용하여 인터페이스를 다시 시작하거나 컴퓨터를 다시 시작해야 합니다.
답변2
지난 24시간 동안 읽은 내용을 잘 이해했다면 라우팅 작업을 해야 합니다.
시스템을 라우터로 설정하려는 경우가 아니면 그렇지 않습니다.
기본 게이트웨이는 대상이 네트워크 인터페이스의 서브넷 마스크 범위에 속하지 않는 경우 Linux가 트래픽을 보내는 IP입니다. 일반적으로 이는 "인터넷"으로 향하는 트래픽입니다.
이 시스템의 인터넷 액세스에 관심이 없다면 시스템이 필요하지 않지만 업데이트 등을 받을 수 있도록 그렇게 할 수도 있습니다.
DHCP는 일반적으로 기본 게이트웨이와 IP 주소를 전달합니다. 따라서 wlan0
DHCP에서 IP를 얻는다면 아마도 기본 게이트웨이도 얻게 될 것입니다. (또는 DHCP 서버가 제공되지 않는 경우 DHCP 서버를 확인해야 할 수도 있습니다.) 따라서 인터넷으로 향하는 트래픽은 해당 인터페이스를 통과합니다.
DHCP를 사용하지 않거나 DHCP를 통해 기본 게이트웨이를 전달하지 않으려면 수동으로 지정할 수 있습니다. 인터넷과 주고받을 수 있는 라우터의 IP 주소여야 합니다.
기본 게이트웨이가 하나만 있으면 상황이 가장 원활하게 진행되므로 다른 인터페이스가 고정 IP로 설정되어 있고 하나의 인터페이스만 DHCP를 통해 무언가를 받고 있는지 확인하십시오.
답변3
나는 몇 시간의 테스트 끝에 이 질문에 직접 대답했습니다.
설명해요여기