Я установил apache2 на мой Raspberry Pi, работающий на Rasbian. Затем я настроил свой маршрутизатор для сопоставления портов 80 и 443 с теми же портами на моем Pi (192.168.2.108).
Из самого моего Pi я могу получить доступ к тестовой странице apache, введя localhost или 127.0.0.1 или его локальный ip (192.168.2.108) или внешний ip моего маршрутизатора.
Со своего ноутбука я могу получить доступ к этой странице, только введя внешний ip-адрес моего маршрутизатора, но не введя внутренний ip моего Pi (192.168.2.108).
Есть идеи почему? Вот некоторая информация, которая может быть важной:
$ apache2 -v
Server version: Apache/2.4.10 (Raspbian)
Server built: Jul 20 2016 10:31:40
$ sudo /etc/init.d/apache2 status
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2)
Active: active (exited) since Sa 2016-09-10 12:35:22 UTC; 21min ago
Process: 1128 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 1140 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
Sep 10 12:35:22 raspberrypi apache2[1140]: Starting web server: apache2AH005...e
Sep 10 12:35:22 raspberrypi apache2[1140]: (99)Cannot assign requested addre...0
Sep 10 12:35:22 raspberrypi apache2[1140]: no listening sockets available, s...n
Sep 10 12:35:22 raspberrypi apache2[1140]: AH00015: Unable to open logs
Sep 10 12:35:22 raspberrypi apache2[1140]: Action 'start' failed.
Sep 10 12:35:22 raspberrypi apache2[1140]: The Apache error log may have mor....
Sep 10 12:35:22 raspberrypi apache2[1140]: .
Sep 10 12:35:22 raspberrypi systemd[1]: Started LSB: Apache2 web server.
Hint: Some lines were ellipsized, use -l to show in full.
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
$ sudo netstat -ntlp
Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 457/sshd
tcp6 0 0 :::80 :::* LISTEN 1422/apache2
tcp6 0 0 :::22 :::* LISTEN 457/sshd
$ cat /etc/apache2/ports.conf
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
Listen 80
#Listen 192.168.2.107:80
#Listen 8000
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
/etc/apache2/apache.conf (удалены некоторые комментарии):
#ServerRoot "/etc/apache2"
Mutex file:${APACHE_LOCK_DIR} default
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
# Include list of ports to listen on
Include ports.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
РЕДАКТИРОВАТЬ:
Интересная новая информация: я могу получить доступ к тестовой странице, используя 192.168.2.108 со своего смартфона! Это также работает с моим ноутбуком, если я использую Chromium вместо Firefox.