#はじめに
私がRaspberrypi3を使用してWEBサーバ(外部公開)をするまでに陥った問題を共有します。
WEBサーバ公開にはポートの開放が必須ですが、これがうまく行かない問題にハマりました。
本方法より、同様の問題を抱えるユーザが救済されることを願います。
#結論(原因)
- プロバイダへのネット接続方式がTransix (DS-Lite)方式であった
#対策
-
RaspberrypiをPPPOE接続した
ルータはDS-Lite(Transix)を継続。
#手順
0. Apachを導入し、イントラ内からWEBサイトを確認できる状態(ココからスタート)
どうもTransixではポート開放ができないようです。。。。(知らなかった。。。)
参照先
ルータの設定をPPPOEに戻しても良いのですが、ネット速度を改善するためにTransix(DS-Lite)に変更したので、
今回は別の方法を模索しました。
3.Raspberry piで直接PPPOE接続、ルータはDS-Liteを継続
今回試みるイメージ図です。ルータの下にホストPCと今回の主役であるRaspberrypiをおいています。
PCはDS-Liteを継続し、RaspberrypiはPPPOE接続します。
これによりRaspberrypiはポートが開放可能となります。
##方法
$ sudo apt-get install pppoe pppoeconf
$sudo pppoeconf
あとは手順にしたがいプロバイダへの接続ID,PWを設定してください。
- 設定後以下のコマンドを打ち込みます
$pon dsl-provider #PPPOE開始
$ip addr show ppp0 #PPPOEステータス表示
ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1454 qdisc pfifo_fast state UNKNOWN group default qlen 3
link/ppp
inet XXX.XXX.XXX.XXX peer YYY.YYY.YYY.YYY/YY scope global ppp0
のようにppp0のアドレスが確認できればPPPOEの設定完了です。
- 最後にデフォルトの経路設定です
デフォルトの経路を今回設定したPPP0にしないとポート開放がうまくいきません。
まずrouteコマンドでdefaultの経路を確認します。
$route
デフォルトの経路が有線LANのeth0になっています。
default 192.168.11.1 0.0.0.0 UG 103 0 0 eth0
XXXXXXXXX.fl 0.0.0.0 255.255.255.200 UH 0 0 0 ppp0
192.168.11.0 0.0.0.0 255.255.255.0 U 402 0 0 eth0
これをPPP0に切り替えます。
$sudo route del default dev eth0
$sudo route add default dev ppp0
以上で切り替えができました。
最後に再度起動して完了です。
$sudo poff #PPPOE停止
$sudo pon dsl-provider #PPPOE接続開始
これで、ポート開放が有効になる・・・はず。