내 Raspberry Pi는 eth0 포트를 통해 PC에 연결됩니다. RPi를 SSH로 연결하기 위해 eth0을 사용하고 있습니다. 인터넷 액세스가 필요한 RPi에 웹 애플리케이션이 있습니다.
이제 고정 IP를 RPi(192.168.1.50)와 PC(192.168.1.66)로 설정했습니다. PC에 있는 무선 어댑터를 통해 인터넷에 연결할 수 있고, RPi에 있는 USB Wi-Pi 어댑터를 통해 인터넷에 연결할 수 있습니다.
이것은 PC용입니다 ifconfig
:
eth0 Link encap:Ethernet HWaddr 3c:a8:2a:7e:fd:7d
inet addr:192.168.1.66 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::3ea8:2aff:fe7e:fd7d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:184 errors:0 dropped:0 overruns:0 frame:0
TX packets:638 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:20422 (20.4 KB) TX bytes:80928 (80.9 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:4126 errors:0 dropped:0 overruns:0 frame:0
TX packets:4126 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:460006 (460.0 KB) TX bytes:460006 (460.0 KB)
wlan0 Link encap:Ethernet HWaddr 34:e6:ad:08:67:5e
inet addr:192.168.1.13 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::36e6:adff:fe08:675e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11305 errors:0 dropped:0 overruns:0 frame:0
TX packets:10338 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6496258 (6.4 MB) TX bytes:1391363 (1.3 MB)
RPi에서 인터넷에 연결하면 wlan0이 192.168.1.10
.
문제는 PC를 통해 RPi에 SSH로 연결할 때 RPi에서 인터넷에 액세스할 수 없고 route -n
eth0이 기본 인터페이스로 표시된다는 것입니다.
PC의 무선 및 이더넷 연결을 브리지하고 ssh를 수행할 때 인터넷을 RPi에 공유하려고 하거나, wlan0과 eth0을 동시에 활성화할 수 있도록 RPi의 연결을 브리지하려고 합니다.
옵션을 시도 echo 1 > /proc/sys/net/ipv4/ip_forward
하고 사용했지만 성공하지 못했습니다. 뭔가 놓치고 있고 뭔가 잘못하고 있지만 실제로 볼 수는 없습니다.MASQUERADE
iptables
/etc/network/interfaces
목표를 달성하는 방법, 파일 설정 방법 및 기타 고려해야 할 사항을 설명해 주시겠습니까 ?
감사해요.
답변1
사용 명령: https://wiki.debian.org/BridgeNetworkConnections(가운데는 무선)
bridge-utils를 설치합니다:
apt-get install bridge-utils (ubuntu)
aptitude install bridge-utils (debain)
nano /etc/network/interfaces
다음 줄을 추가하세요
pre-up iwconfig wlan0 essid $YOUR_ESSID (wifi name)
bridge_hw $MAC_ADDRESS_OF_YOUR_WIRELESS_CARD(34:e6:ad:08:67:5e)
ebtable을 설치합니다:
aptitude install ebtables (debian)
apt-get install ebtables (ubuntu)
wlan0 MAC 주소($MAC=34:e6:ad:08:67:5e)를 사용하여 브리지된 네트워크를 설정합니다.
ebtables -t nat -A POSTROUTING -o wlan0 -j snat --to-src $MAC --snat-arp --snat-target ACCEPT
인터넷에 액세스해야 하는 장치의 MAC 주소를 추가합니다. ($ip를 ip로 바꾸고, $MAC를 pi로 바꾸고 컴퓨터의 MAC 주소로 바꿉니다.)
규칙 설정:
ebtables -t nat -A PREROUTING -p IPv4 -i wlan0 --ip-dst $IP -j dnat --to-dst $MAC --dnat-target ACCEPT
ebtables -t nat -A PREROUTING -p ARP -i wlan0 --arp-ip-dst $IP -j dnat --to-dst $MAC --dnat-target ACCEPT
위 명령을 반복하여 pi와 컴퓨터를 추가합니다.
규칙 저장:
EBTABLES_ATOMIC_FILE=/root/ebtables-atomic ebtables -t nat --atomic-save
EBTABLES_ATOMIC_FILE=/root/ebtables-atomic ebtables -t nat --atomic-commit
그래픽 사용자 인터페이스 사용: https://askubuntu.com/questions/359856/share-wireless-internet-connection-through-ethernet