無線網路的設定可以參考【設定無線網路】,這篇文章著重在有線的網路封包轉傳。在Linux上要實現封包轉送只需要設定好iptable就可以了!
首先編/etc/sysctl.conf檔案,將net.ipv4.ip_forward=1這行註解拿掉
# Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1
sysctl --system
完成上述動作RPi的iptable功能就被啟動了,接著設定RPi的eth0網卡IP設定為192.168.0.1
,修改/etc/network/interfaces
#iface eth0 inet dhcp
allow-hotplug eth0
iface eth0 inet static
address 192.168.0.1
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
ifconfig eth0 down ifconfig eth0 up
最後設定iptable,在家目錄下編輯一個新檔nat.sh
#!/bin/sh IPT=/sbin/iptables LOCAL_IFACE=eth0 INET_IFACE=wlan0 INET_ADDRESS=`ifconfig wlan0 | grep "inet addr" | cut -d ' ' -f 12 | cut -d : -f 2` # Flush the tables $IPT -F INPUT $IPT -F OUTPUT $IPT -F FORWARD $IPT -t nat -P PREROUTING ACCEPT $IPT -t nat -P POSTROUTING ACCEPT $IPT -t nat -P OUTPUT ACCEPT # Allow forwarding packets: $IPT -A FORWARD -p ALL -i $LOCAL_IFACE -j ACCEPT $IPT -A FORWARD -i $INET_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT # Packet masquerading $IPT -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_ADDRESS
執行nat.sh
chmod +x ~/nat.sh ~/nat.sh
到這裡一切就設定完成了,接著在電腦端設定固定IP(ex. 192.168.0.2)、路由與DNS等資訊就可以透過RPi上網了。
請問這個動作【最後設定iptable,在家目錄下編輯一個新檔nat.sh】家目錄是在哪裡呢?我在/home/pi下面建立該檔案,後來執行都跟我說沒有這個檔案
回覆刪除上面寫/nat.sh 所以應該是根目錄吧
刪除如果放在家目錄應該要把
刪除chmod +x ~/nat.sh
~/nat.sh
改成
chmod +x ~/home/pi/nat.sh
~/home/pi/nat.sh