前言

在openwrt安装 中,说明了openwrt的安装及访问。但是,这对于本次的内网搭建仅仅是准备好了一个工具而已。具体的搭建还是有一系列的工作要做的。

目标

这次的内网搭建是我在家里搭建的一个内网环境,具体的需求有以下几点:

  • 不影响家庭网络使用
  • 可以对外以固定IP发布服务
  • 可以管理端口映射
  • 内网可以使用互联网

接线

其实这个目标也很简单。数一下我手上现在有的东西:

  • 四口软路由一个:已安装openwrt
  • 树莓派一个:忘了之前的状态了,用的时候要重新刷一下
  • 汉土IP盒子:可以提供一个固定IP的网络出口
  • 工作站一个:配置不高,本来打算升级来着,但是考虑想要长期使用固定IP提供一些服务,还是先买一个功率小一些的小主机做临时的生产环境。

基于此,预期的网络结构如下图所示:

这个图里是我现在的网线的连接的情况。其中:

  • 电信宽带:这是我家用的宽带,是公网的总的出入口
  • 汉土IP盒子:这个盒子只有两个网线口,WAN口接宽带,LAN口接它提供固定IP的网络,就接到了我软路由的LAN3上
  • 软路由:四口软路由。这里我图中标记的是四个LAN,这是它在盒子上标记的,后面配置网络还会有LAN和WAN的概念,不要混淆了。毕竟上图是接线图
  • 我的PC:毕竟是调试网络,先把我的电脑接进去好调试网络,网络好了,树莓派、工作站,直接接进去就好了。
  • 树莓派、工作站:调试网络暂时不接入,而且,设备有些多,网口不够用。

软路由的网口就是下图的样子:

配置

其实,openwrt的默认配置中,按照我上面的接线截图,我的PC就是可以直接访问互联网的。网段是192.168.1.0/24 。网关地址是192.168.1.1,访问进去进入进入Network-Interfance,如下图所示:

LAN1配置修改

这里我们首先要改一下LAN的配置,这个LAN对应的就是我们LAN1那根网线,修改后的配置如下图所示:

这里我们只对IPv4 address进行了修改,将192.168.1.1修改成了192.168.2.1。因为1.1的网段很多内网都在用。而我不希望以后笔记本里配置的什么IP配置总是需要改来改去的,就干脆设置一个特殊点的。别的并没有什么用。要注意,默认DHCP Server的打开的,从100开始,限制150个分配。这个很有用。如果要自己设置默认固定IP就设置100以内的就好,也可以根据自己的需要修改范围。
需要注意的是,save过后配置并没有直接生效,而是需要在外面再点击提交才可以。而且,提交过后网关地址就变成了192.168.2.1,原地址刷新是出不来的,不要傻等哈。

LAN2的配置

在上面的截图中,我们可以看到有两个WAN的配置,分别是WAN和WAN6。打开里面的配置,可以发现他们都是配置的eth1这个device。这个序号是从0开始的。也就是说,他们配置的都是LAN2。其实一个是IPv4的配置一个是IPv6的配置。

LAN3的配置

汉土IP盒子的LAN口的线接的这里,但是其实这里是没有被配置的,我们需要创建它的配置。

对的,就是像上图这么简单。注意Device的选择。另外就是Firewal Settings中,要选择WAN那个域,如下图这样。

然后就完成了。记得提交配置生效。按理说,这个时候,我们的所有配置就已经完成了。但是,这里还存在两个我们需要弄清楚的问题:

  • 公网IP真的通了吗?
  • 我怎么把我内网的东西映射出去?

因为我们的公网IP能ping通其实对于我们是没有什么实际意义的,我们要的是通过它访问我们自己的内容。这里我们逐一得去搞定他们。

配置汉土IP盒子

其实,默认这个盒子是不需要配置的。但是,它提供给我的固定IP我ping不通。经过和技术人员的沟通,我可以通过把IP盒子的LAN口直接插在我的PC上,就可以让我们自己的电脑来做固定IP背后的机器了。IP盒子默认会通过DHCP给我的电脑分配一个IP。我们也可以通过访问网关来访问盒子。我的问题就出在盒子的配置上。我上次用的时候配置的静态的内网IP,而我现在网段变了,改成自动获取IP就完事大吉。

端口映射

端口映射的位置在Network->Firewall->Port Forwards中。这里我们添加一条端口映射如下图所示。

这是一条我们测试使用的规则,

  • 协议选择了TCP和UDP
  • Source zone选择的是wan域。
  • External port是从外部访问的端口。默认80端口是被封了的,很久之前我测试8080也是被封了的,不知道现在怎么样了。
  • Destination zone是目标域,我们选择lan,我们的及其都将在这个域里面。
  • Internal IP address:这里选择的是我的PC的地址。我的PC现在的地址是DHCP分配的,因为是测试,也就不计较这些了。
  • Internal port:访问的我的PC的端口号。

保存,提交。然后测试。注意,访问的时候要拿另一台设备访问。我本机访问是不通的,最好还是不在lan域里的机器。

接入更多的设备

其实,这时在刚才接我的PC的网口上接上一个交换机,就可以增加局域网的设备了。

我的方案

我手上没有交换机。早年间出于兴趣,买了一个蒲公英路由器。于是,我就有了一个不一样的解决方案。把刚才我的PC接入的口接到蒲公英路由器的WAN口上。路由器上网配置为2.0/24段的静态IP即可正常运行。问题是,路由器会分配自己的网段,也就是我们现在下层会再换一个网段,蒲公英路由器默认的是192.168.31.0/24.我们就用这个网段嘛。网关是192.168.31.1。然后呢,软路由的网关是192.168.2.1。理论上来说,31.0/24这个段是访问不到2.0/24这个段的,但是可能是因为2.1是31.1的网关,所以我们是能成功访问的。所以,关于网络的配置也可以完全在这个局域网中进行,可行。

但是,现在存在一个问题。如果我要进行端口映射,我需要在两个网关中进行配置,这是一件很麻烦的事情。怎么弄呢?我们可以在软路由中配置DMZ,然后我们就只需要在蒲公英路由器中设置端口映射了。但是吧,在openwrt中找不到DMZ的配置。需要我们通过ssh远程访问openwrt主机进行访问。端口依然是22,用户名root,密码就是你设置的登录管理界面的密码。
在vim /etc/config/firewall,在文件末尾添加如下内容:

config redirect                             
        option src              wan         
        option proto            all         
        option dest_ip          192.168.2.10
        option target           DNAT 

讲dest_ip改成你的实际IP就好了,DNAT就是我们要的DMZ类型的端口映射。完成后执行如下指令:

/etc/init.d/firewall restart

即重启防火墙,让配置生效,就可以了。
其实这时我们去管理界面依然可以看到一条新增的端口映射规则。只是这个规则我们用图形界面配置不了罢了。

更多推荐

基于openwrt的内网搭建