用公网域名访问内网自己网站:端口映射工具和hosts等方案
用域名来访问自己内网的网站,是一个比较常见的网络需求。同内网时,一般可用hosts实现同局域网内的互通。如是涉及跨网,不同内网的,可以根据对应不同环境下,走公网IP或端口映射,或nat123端口映射工具实现。
一、内外网使用不同的访问方案简单分析
1、在外网访问网站
有公网IP时:在本地的Web服务端里设置好了网络门户,外网用户就可以通过域名来访问网站了。但大多数家庭网络和公司带宽的不能使用纯域名,还得在域名后面加上端口号。因为公司网络虽有公网IP,但80、443端口是关闭的,只能通过端口映射来解决这个问题,就通过路由器的端口映射功能(或使用UPnP功能)把本地NAS或自己网站的80、443端口映射到了路由器的8000、8001端口。这样,在外网就可以通过“http://mydomain:8000”或“https://mydomain:8001”访问内部网站了。
无公网IP时:用端口映射软件,如nat123客户端上直接添加个端口映射记录,直接将本地内网IP端口转换成自定义域名端口。这样,在外网就可以通过自己域名或映射工具默认提供的自定义二级域名访问自己内部网站了。
2、在内网访问网站
因NAT回流的问题,内网的NAS或指定web网站只有在外网的时候才能使用域名访问,在内网是不能用域名来访问的。如果没有特殊需要,当然可以在内外网使用不同的方式来访问网站,在内网访问的时候,就直接使用NAS的局域网IP地址如“http://192.168.1.205”或“https://192.168.1.205”来访问就可以了。因为在内网可以直接访问NAS或网站的80、443端口,80、443是默认端口,就不需要添加端口号了。
二、内外网都使用域名访问网站
内外网使用不同的访问方法虽然简单,但存在一些问题,一是经常在内外网不同场景中办公的员工感觉不太方便;二是几个网站之间都有一些网页间跳转的链接,如果是使用域名跳转,则内网无法访问,如果使用内网IP跳转,则外网无法访问。解决这些问题的最好办法是让内外网都使用域名来访问网站。
1、自定义Hosts或DNS解析
个人电脑hosts方案:电脑上都可以自定义设置Hosts,基本格式是“192.168.1.5 mydomain”(地址和域名间有一个空格,每条记录单独一行),当我们访问“mydomain”时,就会直接访问“192.168.1.5”,这对于固定在办公室的台式机来讲问题不大,但如果电脑太多需要每台都设置就比较麻烦,而且员工的笔记本电脑需要在内外网间来回移动,设置固定的Hosts就不太现实了。
路由hosts:这是个较佳的办法,就是在路由器上进行自定义Hosts或设置DNS服务,如我公司网络使用了一台H3C的路由器,找到“高级设置”-“应用服务”-“DNS Server”,新增一项静态域名设置就完成了。
商用路由器的设置功能比较齐全,好多的家用路由器设置功能比较简单,往往没有DNS服务可供设置。有的路由需要在手机APP里面设置,如你就使用了一台小米路由器AX3600的路由器,在网页设置界面中没有自定义Hosts或DNS服务的功能,但在手机管理APP“小米WIFI”中有“自定义Hosts”的功能,在手机APP里按基本格式设置即可。
2、设置反向代理
对于公司的路由器有公网IP的,设置好端口映射和DNS服务后,通常内外网的访问都没有问题了。但如果是hosts的,因为自定义Hosts或DNS Server里的域名和网址不能加上端口号,所以只解决了域名和网址的转换,还没有解决端口的问题。NAS网站在内网的端口号是默认的80和443,在内网使用公网域名带端口号如“http://mydomain:8000”访问时,公司的H3C路由器在进行DNS解析时会同时执行端口映射功能就把8000映射到NAS的80端口实现访问,而如你司的路由器在进行DNS解析时不执行端口映射功能,就没有办法访问到80端口,导致访问失败。要解决这个问题,就需要在NAS里设置反向代理。
例如NAS反向代理设置:打开NAS的控制面板,在“登录门户”的“高级”页面里点击打开“反向代理服务器”,新增两项反向代理服务。
这样,在内网使用“http://mydomain:8000”或“https://mydomain:8001”访问的时候,路由器会通过自定义Hosts或DNS服务跳转到NAS,而NAS会将所有8000或8001的端口访问都代理到80和443端口,顺利实现网站的访问,实现了内外网都可以使用同样的“域名+端口号”访问到内网NAS上的网站了。
三、小结
1、部署方案选择
对于业务量不大的小公司来讲,把网站架设在内网NAS或自己本地服务器上不失为既能提升管理效率又能控制成本的一种有效手段。
2、无公网IP时
如果本地部署后网络环境是没有公网IP的,需要使用nat123端口映射软件或类似内网穿透工具的方式,将对应内网IP端口转换成自定义域名端口,解决让外网访问的问题。