
セキュリティの重要性がほとんどないサーバーでテストを行っています。これらのテストでは、バージョン 5.4 以降で内部的に提供される PHP サーバーを使用したいと考えています。ただし、Amazon AWS では、バインドされたポートは外部からアクセスできません (接続時にハングします)。
$ php -S 10.138.XXX.XXX:81 -t ~/webapps/ssh
PHP 5.4.37 Development Server started at Fri Feb 20 23:22:12 2015
これで、そのボックス上のローカル PHP サーバーにアクセスできるようになりました。
wget 10.138.XXX.XXX:81/webconsole.php
しかし、リモートアクセスを試みると接続がハングしたりタイムアウトしたりします
以下は、外部からは見えず、ローカルホストでのみ表示されるポートです。
$ netstat -an | grep 81 #81 is the php port number
tcp 0 0 10.138.xxx.xxx:YY 0.0.0.0:* LISTEN
反例として、外部から見える Jetty サーバー ポートを見てみましょう。
以下は、外部から見えるポート 8080 の動作例です。
root@ip-10-138-XXX-XXX ~]$ netstat -an | grep 8080
tcp 0 0 :::8080 :::* LISTEN
tcp 0 0 :::18080 :::* LISTEN
tcp 0 0 ::ffff:10.138.xxx.xxx:8080 ::ffff:107.1.xxx.xxx:61428 ESTABLISHED
答え1
インスタンスが属するセキュリティ グループの受信ルールでは、自分の IP アドレスまたはすべてのユーザーに対してポート 81 の受信を開くことができます。