没有公网IP如何实现内网穿透?

由于公网IP资源越来越紧张,现在很多运营商给拨号上网的用户只分配内网IP地址,如下图所示:

没有公网IP如何实现内网穿透?

这样的运营商内网IP是外网不可达的(即使用动态域名也不起作用)。而企业由于业务需要,比如虚拟局域网组网,办公OA系统,ERP系统等,都需要有公网IP才可以实现。公网IP的解决,目前主要有三种方案:

<李>

申请固定IP专线。稳定且速度有保障,缺点是费用高。

<李>

云方案。把业务主机都搬到云上,直接通过云主机来访问。费用比较低,缺点是云主机不能本地维护,且搬迁工作量都不小。

<李>

云主机+内网穿透方案。通过云主机做跳板来实现内网穿透,既可以复用现有的业务系统,又解决了公网IP的问题。第三种方案的成本是最低的,但是配置比较复杂。本文将对第三种方案做详细介绍。

在没有公网IP如何实现×××组网?一文中,我们介绍了虚拟局域网组网部分。我们要介绍的方案,分为两个步骤:1)。本地局域网和云主机之间搭建虚拟局域网。2)。在云主机上配置内网穿透的防火墙规则。具体步骤如下:

1。搭建虚拟局域网

首先要在云主机上安装虚拟局域网软件,配置ca证书等,网络上已经有很多介绍,我就不再赘述了。下图是最终的服务器端配置文件。

没有公网IP如何实现内网穿透?

然后是客户端配置。在WSG的客户端中,配置上云主机的IP和端口,用户名密码等信息。即可成功组网。如图:

没有公网IP如何实现内网穿透?

没有公网IP如何实现内网穿透?

2。内网穿透的防火墙规则

组建虚拟局域网后,本地局域网就和云主机处于同一个局域网内。我们再通过iptables配置一些防火墙规则,就可以把外网访问重定向到局域网内部,原理和端口映射是一样的。命令如下:

没有公网IP如何实现内网穿透?

每一条内网穿透(端口映射)都由两条iptables命令组成:

<李>

DNAT: iptables - t nat - PREROUTING - p tcp——dport xx - j DNAT to-dest . x.x.x。李x

<李>

SNAT: iptables - t nat - POSTROUTING) - d . x.x.x。x - p tcp——dport xx - j SNAT源y.y.y.y

其中,x.x.x.x是局域网内网主机的IP地址,y.y.y。y是云主机的内网网段的IP。


经过上述配置后,直接访问云主机的对应端口就可以穿透到内网。该方案是由iptables做数据包转发,不需要保持连接做反向代理,稳定性和速度都比玻璃钢之类的反向代理要好的多。要实现开机自动添加规则的话,只需要把这两条iptables命令添加到/etc/rc。当地的文件中。


没有公网IP如何实现内网穿透?