dnsmasq
この目的のためにパッケージを使用するのは、DHCPサーバーとDNSサーバーが組み合わされており、構成も簡単だからです。
もう少し「重い」ものが必要な場合は、DHCPとDNSのパッケージisc-dhcp-server
とbind9
パッケージをそれぞれ使用できますが、ここでの目的のためにはdnsmasq
うまくいきます
。
sudo apt-get install dnsmasq
インターフェイスを構成する必要があります。eth0
ゲートウェイとして使用される静的IPアドレスを割り当て
ます。interfacesファイルを開きます
sudo nano /etc/network/interfaces
次のeth0
ようにセクションを編集します。
allow-hotplug eth0
iface eth0 inet static
address 192.168.2.1
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
次に、を構成しますdnsmasq
。出荷されたdnsmasq
設定ファイルには、使用方法に関する多くの情報が含まれています。そのため、移動して新しいものを作成することをお勧めします。
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano /etc/dnsmasq.conf
以下を新しいファイルに貼り付けます
interface=eth0 # Use interface eth0
listen-address=192.168.2.1 # listen on
# Bind to the interface to make sure we aren't sending things
# elsewhere
bind-interfaces
server=8.8.8.8 # Forward DNS requests to Google DNS
domain-needed # Don't forward short names
# Never forward addresses in the non-routed address spaces.
bogus-priv
# Assign IP addresses between 192.168.2.2 and 192.168.2.100 with a
# 12 hour lease time
dhcp-range=192.168.2.2,192.168.2.100,12h
/etc/sysctl.conf
ファイルを編集してパケット転送を有効にします
sudo nano /etc/sysctl.conf
これを#
含む行の先頭からを
削除すると、net.ipv4.ip_forward=1
次の再起動時にパケット転送が有効になります。ただし、再起動せずに今すぐ試してみたい場合は、これを実行してください。
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
また、RPiのインターネット接続をWi-Fiで接続されたデバイスと共有する必要があります。との間eth0
で
NATを構成しますwlan0
。
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
ただし、Piをリブートするたびにこれらのルールを適用する必要があるため、実行 sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
してファイルにルールを保存します/etc/iptables.ipv4.nat
。これで、再起動のたびにこれを実行する必要があるので、行のすぐ上で次の行を追加して/etc/rc.local
ファイルを開きます
。sudo nano /etc/rc.local
exit 0
iptables-restore < /etc/iptables.ipv4.nat
そして、それだけです!RPiを再起動するだけで、インターネットにアクセスできるようになります
sudo reboot