基于域名的7层转发的实现(NAT+反向代理)
在实际办公网中,因为出口IP只有一个,要实现对外提供服务的话就必须得做端口映射,如果有多个服务要对外开放的话,这只能通过映射不同端口来区分,这在实际使用过程中非常的痛苦(记忆困难、一一对应关系也没有规律、访问的时候还得加端口),这个痛苦的问题用表格的形式来形象的描述如下:
Public IP |
Public Port Number |
Internal IP |
Internal Port Number |
Note |
1.1.1.1 |
80 |
192.168.1.10 |
80 |
service A |
1.1.1.1 |
81 |
192.168.1.11 |
80 |
service B |
1.1.1.1 |
8080 |
192.168.1.25 |
80 |
service C |
1.1.1.1 |
443 |
192.168.1.26 |
443 |
service D |
1.1.1.1 |
444 |
192.168.1.35 |
443 |
service E |
在需要对外开放的服务很多的情况下,NAT的方式虽然难用、难记,但至少还是能够满足需求的(可用端口要小于65535个),但如果A、B、C服务都想(或者必须)使用默认的80、443端口的话,在只有一个公网IP的情况下是没法满足的,如果能有一种如下的实现方式,那就完美了:
Domain Name |
Public IP |
Public Port Number |
Internal IP |
Internal Port Number |
Note |
1.1.1.1 |
80 |
192.168.1.10 |
80 |
service A |
|
1.1.1.1 |
80 |
192.168.1.11 |
80 |
service B |
|
1.1.1.1 |
80 |
192.168.1.25 |
80 |
service C |
|
1.1.1.1 |
|