Pinvon's Blog

所见, 所闻, 所思, 所想

外网访问个人电脑

原理

ASDL拨号上网

这种上网方式不经过路由器等路由设备, 所以计算机直接获得公网的IP地址.

通过路由器共享上网

如果使用的是路由器来上网, 则需要在路由器上做端口映射, 这样外网的计算机才能访问到内网主机.

端口映射

在Internet中, 只有公网IP能够互相通讯.

局域网内的私有IP之间能够互相通讯.

公网IP和私有IP不能直接互相通讯.

路由器有两个IP: 公网IP, 用于和公网的计算机通讯; 私有IP, 用于和内网的计算机通讯.

内网的主机, 获取的是私有IP, 它们只能通过路由器访问外网, 和公网的其他计算机进行通讯.

各个路由器厂商对端口映射这个功能所取的名称不同, 有的叫虚拟服务器, 有的叫NAT设置.

私有地址范围

A类地址: 10.0.0.0-10.255.255.255

B类地址: 172.16.0.0-172.31.255.255

C类地址: 192.168.0.0-192.168.255.255

例子

假设外网有一台ADSL直接拨号上网的主机A, 其公网IP是123.207.62.191

现在A想要访问某个内网主机B, 其IP是192.168.1.104

假设路由器设置了端口映射, 规则为: 将所有发向路由器的80端口的数据, 都转发到主机B上.

访问过程:

  1. A向路由器(117.28.182.47)发送请求, 要求访问B的80端口.
  2. 路由器收到请求后, 按照端口映射规则, 通过内网IP地址192.168.1.1把请求的数据发送到内网主机B上.
  3. B收到请求后, 把响应数据发送到路由器.
  4. 路由器收到B的响应数据后, 通过公网IP117.28.182.47把它们发送到A.

设置

进入路由器管理界面, 找到虚拟服务器功能或NAT设置功能. 如下图所示:

1.png

填写参数, 如下图所示:

2.png

关于端口的设置, 一般如果内网开启的服务需要哪个端口, 就映射到哪个端口. 如, 用Node.js写了一个程序, 访问3000端口, 就在内网端口那边填3000端口. 另外, 建议内网外网使用一样的端口, 省得记忆.

设置完毕后, 百度搜索"IP"关键字, 获取路由器的外网IP.

然后就可以通过外网IP:9000访问内网了.

Comments

使用 Disqus 评论
comments powered by Disqus