[メモ] Raspberry Pi 3で、Wi-Fi アクセスポイントルータ - Qiita
qiita.com

ラズパイを有線LANの接続先にする方法です
ラズパイを家庭内の無線LANに接続し、有線LANのアクセス先にします
簡単に無線LAN接続する方法を記載しましたが(ここ)、試作用にOSを再インストールするときは有線LANに接続したほうが断然楽です
また、無線LANがオンボードでないRaspberrypi(初期)やRaspberrypi2でルーターが遠くにあるなんかはこの方法は便利だと思います
ほとんどQiitaに記載されている方法のため、ネタ被り感が半端ないです
基本はwlan0をlo0を入れ替えるだけです
参考:http://qiita.com/mt08/items/f2e4f9d3b1ed00849e23
こんな感じの接続方法
インターネット —> ルーター -無線LAN-> Raspberrypi3 -有線LAN-> 色々な機器
必要なもの
-
Raspberrypi3
-
適当なスイッチングハブ
手順
ほんとQiitaと一緒なので簡単にかきます ※詳細はQiita参照(ここ)
いつものやつ
sudo apt-get update
sudo apt-get upgrade -y
dhcpサーバーのパッケージインストール
sudo apt-get install -y hostapd isc-dhcp-server
dhcd.confの編集
sudo nano /etc/dhcp/dhcpd.conf
#コメントアウト
# option definitions common to all supported networks...
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;
#一番最後に記述
subnet 192.168.42.0 netmask 255.255.255.0 {
range 192.168.42.10 192.168.42.30; #割り振れるアドレスが10~30まで
option broadcast-address 192.168.42.255;
option routers 192.168.42.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name "local";
option domain-name-servers 8.8.8.8, 8.8.4.4;
}
isc-dhcp-serverの編集
sudo nano /etc/default/isc-dhcp-server
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth0" #有線LANをdhcpにするためeth0にする
dhcpcd.confの編集
sudo nano /etc/dhcpcd.conf
#最後に記述
#アドレスの固定
interface eth0
static ip_address=192.168.42.1/24
hostapd.confの編集
sudo nano /etc/hostapd/hostapd.conf
interface=eth0
driver=nl80211
#driver=rtl871xdrv
ssid=******* #SSID 各自で編集
hw_mode=g
channel=6
ieee80211n=1
wmm_enabled=1
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=******* #パスワード 各自で編集
rsn_pairwise=CCMP
hostapdの編集
$sudo nano /etc/default/hostapd
# file can be found at /usr/share/doc/hostapd/examples/hostapd.conf.gz
#
#下記の行のコメントアウトをはずす
DAEMON_CONF="/etc/hostapd/hostapd.conf"
sysctl.confの編集
$sudo nano /etc/sysctl.conf
# Uncomment the next line to enable TCP/IP SYN cookies
# See http://lwn.net/Articles/277146/
# Note: This may impact IPv6 TCP sessions too
#net.ipv4.tcp_syncookies=1
# Uncomment the next line to enable packet forwarding for IPv4
#下記の行のコメントアウトをはずす
net.ipv4.ip_forward=1
iptablesの設定
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
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
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
70-ipv4-natの編集
$ sudo nano /lib/dhcpcd/dhcpcd-hooks/70-ipv4-nat
#追記
iptables-restore < /etc/iptables.ipv4.nat
再起動
sudo reboot
サービスの開始と登録
sudo service hostapd start
sudo service isc-dhcp-server start
sudo update-rc.d hostapd enable
sudo update-rc.d isc-dhcp-server enable
isc-dhcp-serverの編集
case "$1" in
start)
test_config
log_daemon_msg "Starting $DESC" "$NAME"
#waitを入れる
sleep 7
start-stop-daemon --start --quiet --pidfile "$DHCPD_PID" \
--exec /usr/sbin/dhcpd -- \
-q $OPTIONS -cf "$DHCPD_CONF" -pf "$DHCPD_PID" $INTERFA$
これで終了です
有線LANで接続し、割り振られたIPをみると192.168.42.*で割り振られていると思います
MACアドレスを申請しなければならないネット環境でも、このようにネットワークを構築することで、MACアドレスを申請していないパソコンでもラズパイを返してネットワーク接続をすることができるようになりました
便利だと思うコマンド
- ラズパイ上で割り振ったIPを確認するコマンド
$cat /var/lib/dhcp/dhcpd.leases
#こんなかんじででてくる
lease 192.168.42.10 {
starts 1 2017/04/17 02:18:22;
ends 1 2017/04/17 02:28:22;
cltt 1 2017/04/17 02:18:22;
binding state active;
next binding state free;
rewind binding state free;
hardware ethernet 00:00:00:00:00:00; #macアドレス
uid "*********************";
client-hostname "android-a5273765c0f82141"; #ホストネーム
}