我正在尝试从我的家庭网络托管一个小型 Web 服务器;但是,我无法成功将端口转发到本地服务器。我当前的网络拓扑如下所示:
电缆调制解调器/路由器 -> 辅助无线路由器 -> 多台计算机(包括服务器)
我使用的调制解调器/路由器是 Cisco (Scientific Atlantic) DPC2100,由我的 ISP 提供。我用作家庭网络中央集线器的无线路由器是 Linksys E3000。用作服务器的计算机运行的是 Ubuntu 10.04 服务器版。主要问题是我无法使用我的 WAN IP 地址远程访问服务器。我已经对无线路由器进行了端口转发;但是,我认为我需要以某种方式将调制解调器设置为桥接模式。但据我所知,这是不可能的。
以下是各种 IP 地址设置:
DPC2100
WAN: 69.xxx.xxx.xxx
Internal IP: 192.168.100.1
Internal Network: 192.168.7.0
E3000
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/主机/
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/站点可用/默认片段
<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
E3000
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 将通过 LAN 接口连接到 DPC2100,您还需要禁用 DHCP,它基本上将成为带有 4 端口交换机的接入点。在 DPC2100 上进行端口转发。
汤姆