
Я пытаюсь разместить небольшой веб-сервер из своей домашней сети; однако мне не удалось успешно перенаправить порты на локальный сервер. Моя текущая топология сети выглядит следующим образом:
Кабельный модем/маршрутизатор -> Вторичный беспроводной маршрутизатор -> Множество компьютеров (включая сервер)
Модем/маршрутизатор, который я использую, — это Cisco (Scientific Atlantic) DPC2100, предоставленный моим интернет-провайдером. Беспроводной маршрутизатор, который я использую в качестве центрального концентратора для моей домашней сети, — это Linksys E3000. Компьютер, используемый в качестве сервера, работает под управлением Ubuntu 10.04 Server Edition. Основная проблема в том, что я не могу получить удаленный доступ к серверу, используя мой WAN IP-адрес. Я перенаправил порты моего беспроводного маршрутизатора; однако я считаю, что мне нужно каким-то образом перевести мой модем в режим моста. Насколько я могу судить, это невозможно.
Вот различные настройки IP-адреса:
DPC2100
WAN: 69.xxx.xxx.xxx
Internal IP: 192.168.100.1
Internal Network: 192.168.7.0
Е3000
IP Address: 192.168.7.2
Gateway: 192.168.7.1
Internal IP: 192.168.1.1
Internal Network: 192.168.1.0
Сервер
IP Address: 192.168.1.123
Gateway: 192.168.1.1
Теперь я могу выполнить nmap
на различных узлах, и вот результаты (с сервера):
nmap localhost
: 22,25,53,80,110,139,143,445,631,993,995,3306,5432,8080 открыто
nmap 192.168.7.2
: 22,25,80 (отфильтровано),110,139,445 открыто (порты, которые я перенаправил в E3000)*
nmap 69.xxx.xxx.xxx
: 1720 открыто
**По какой-то причине я могу подключиться по SSH к серверу по адресу 192.168.7.2, но не могу просмотреть веб-сайт.*
Вот еще несколько настроек:
/etc/hosts/
127.0.0.1 localhost
127.0.1.1 servername
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
/etc/apache2/sites-available/defaultфрагмент
<VirtualHost *:80>
DocumentRoot /srv/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
...
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
...
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
...
</Directory>
</VirtualHost>
Если вам понадобится какая-либо дополнительная информация, дайте мне знать; возможно, что-то вылетело из головы.
решение1
Вам необходимо перенаправить все порты (или, по крайней мере, те, которые вы хотите подключить к своему серверу) с публичного порта на DPC2100 на E3000.
Но есть ли причина, по которой вам нужны ДВА уровня NAT? Если вы можете жить с E3000, который просто является «антенной» для вашей локальной сети, вы можете отключить его DHCP-сервер и подключить DPC к одному из его портов LAN.
NAT = хлопоты, а два уровня = еще больше хлопот...
решение2
Подобно другому ответу, вот как я бы это сделал:
DPC2100
WAN: 69.xxx.xxx.xxx Внутренний IP: 192.168.1.1 Внутренняя сеть: 192.168.1.0
Е3000
WAN IP-адрес: Отключен Шлюз: 192.168.1.1 Внутренний IP: 192.168.1.2 Внутренняя сеть: 192.168.1.0
Сервер
IP-адрес: 192.168.1.123 Шлюз: 192.168.1.1
E3000 будет подключаться к DPC2100 через интерфейс LAN, вам также нужно отключить DHCP, и он по сути станет точкой доступа с 4-портовым коммутатором. Сделайте переадресацию портов на DPC2100.
Том