第一步,当然是正确的安装ros,然后配置上网成功,这个网上教程很多我们这里就不做介绍了

第二步,我们就来教大家如何配置端口映射
    进入winbox,点击IP→ Firewall→Nat打开防火墙设置界面。点击左上角红色的“+”号,添加一条dstnat规则,其中dst.address填写你要映射的外网IP,本例为218.87.96.xxx(此处请填入您的外网IP),然后选择protocol协议为6,即TCP协议,设置Dst. port(目标端口)为80。


    单击“Action”选项卡,在Action框中,选择“dst-nat”,在“To.Address”框中填写内网提供服务的IP地址,本例为192.168.1.3,在“To.Port”填写内网提供服务的IP端口,这样基本映射就完成了

此时可以在外网中输入你的外网IP,即可看到内网192.168.1.3WEB服务器上的网站了。


 

第三步,解决IP显示和回流问题
     经过第二步的基本端口映射设置后,外部可以访问内网了,但存在一些不完善的地方,例如所有的外网访客的地址都是路由器的内网网关,本例为 192.168.1.1。这样就无法统计访客的来源,还有许多的不便,例如WEB中的论坛就无法屏蔽一些会员的IP了,因为大家都是 192.168.1.1。

     原因是这样造成的:为了使整个内网的所有机子共享上网,在设置ROS时,我们都要设置一条srcnat规则,Action设置为“Amasquerade”,Amasquerade是snat的一个特例,主要用在无固定ip网关的情况下,比如adsl拨号等,masquerade 比nat效率低的原因是nat直接指出需要伪装的源地址,而masquerade需要伪装的源地址必须到默网关中寻找,masquerade永远以默认网关地址为ip伪装的源地址,所以首先效率慢了点,其次只能用在外网ip只有一个的情况,如果有多个wan接口就不能用masquerade,而只能用 nat,因为nat可以手工指定多个需要伪装的源ip地址,而masquerade却只能找到一个地址,就是默认网关的地址。

    由于NAT方设置较Amasquerade复杂,加上现在大量的ROS教程都是以Amasquerade方式共享上网,所以目前在用的ROS大多数采用 Amasquerade设置共享。通过上面分析,我们可以看出为什么在端口映射后,外网访问的IP都成了内网网关,解决的方法有两种,一是改用nat方式,这种方式有局限性,只能用于固定IP的外网,若是ADSL则不能用;另一个方法是通过调整masquerade的设置来完成显示外网IP,具体操作如下,进入winbox,点击IP→ Firewall→Nat打开防火墙设置界面,双击原来建立的srcnat规则Amasquerade(用于共享上网),在“General”选项卡的 “Out. Interface”选中“LAN”即内网网卡,单击将前面的小框,在框中出现“!”,单击“OK”完成此设置。


 

    这样设置完成后,我们可以发现外网访客可以正常访问,而且IP显示也是正确的,但同时导致别一个问题,就是内网用户不能用外部ip访问映射的内部服务器,要按下面方法解决:再增加一条对内网的规则,Action设置为“Amasquerade”,在“General”选项卡中,设置Chain为 “srcnat”,Src. Address为“192.168.0.0/21”由于本例中的内网有192.168.0、192.168.1、192.168.7等几个C类网段,所以在此将子网设置为21,也就是255.255.248.0,设置好后如图5所示。一般的情况,只有一个网段时,例如192.168.1,可以设置子网掩码为24,即255.255.255.0,此处可以填写:192.168.1.0/24,可以根据自己内网情况作相对应的修改。

 

    此到,内外网都能正常访问了且外网访客IP是正确的,此时内网用外网IP访问WEB时,显示的IP是内网网关地址,用这种方法可以实现内外网用户都用网关外部ip访问映射的内部服务,并解决了外部用户显示的ip不正确问题,当然这种方法内网用户显示的ip还是不正确的,要解决内网显示ip问题, 可以在routeros中设dns服务器,用域名来访问,内网访问内网ip,外网访问外网ip就能完美解决。我想我们主要是要知道外网的IP,内网的IP 并不重要。所以至此设置就可以算是完毕了。
 下面说一回流的问题,其实所回流,就是将内网源地址为网段的所有机器对所有目标地址的需求全都进行源地址转换为外网IP,然后转发出去。所有从外网回来的数据通过外网IP再回传到内网的机器,这样就保证了内网上网正常,但这样的效率下降到原来的50%,显然是不合算的。对于Amasquerade 来共享上网时,外网访问的IP显示还是内网网关,所以回流是不可取的。虽不可取,我们也把方法写出来,供大家参考,添加一条srcnat规则, src.address写上内网的网络地址,请注意,不是主机地址,指提是网段,若内网IP是192.168.0.X网段并且子网掩码是 255.255.255.0,那么就填写192.168.0.0/24,dst.address填写的是内网提供服务的主机IP protocol协议和port 端口请参看本文前面的内容,action选项卡还是选择
src-nat to.address则填写映射的外网IP,port 端口。