H3C路由器设置NAT回环、端口回流

起因

  • 当用本地服务器作为frp的服务端时,需要在路由器上设置端口映射,将公网ip和本地ip映射起来,用于作为frps的公网,这一步很简单一般都会有可视化界面来实现,但实际测试时发现问题:
    • 当非局域网内通过frp访问时,正常。
    • 当本地服务器所在同一局域网内访问时,不通。
  • 一开始还以为是frp有什么问题,后来多方查证,才明白是路由相关的问题,而且这也不能算是问题,是路由器的正常现象,但是也可以通过设置来解决此问题。

准备

  • 路由器:H3C MSR830-10BEI

  • 串口连接线,用于连接电脑和路由器的console口,一端是网线头,一端是9针头的(类似显示器线接头,台式机后边可能会有此接口,笔记本没有则还需要一个转usb的转换头)

  • 电脑,安装SecureCRT软件,用于串口连接

开始

  • 连接线9针头一端接电脑上,网线头一端接路由器console端口上(路由器上有标识)
  • 电脑上打开SecureCRT,同时需要到【计算机】选择【属性】--【设备管理器】--【端口】查看当前连接的端口是哪个,然后点“快速连接”来配置连接参数,按照下图设置:

  • 连接成功会显示<H3C>字样。

相关命令

  • 首先要弄明白自己路由的外网口(wan口)和内网口(lan口),可以登录路由后台,在【系统工具】 -- 【配置管理】可以看到所有的配置行,其中interface开头的就是网口相关,但是有很多个,并不容易区分,我的还是相对比较简单区分,内网口带关键字vlan,所以一下就分辨出来了interface Vlan-interface1 ,外网口则不好找,一开始以为是interface GigabitEthernet0/0 ,但后来发现并不是,由于我们一开始做了nat映射,所以在配置文件中找nat server protocol 关键字,看它是在哪个interface下,最终发现是interface Dialer0 .
  • 进入系统配置,命令:sys,会提示按Ctrl + Z退出,此命令等同于system-view,也可能提示无法登录等,可以输入命令super,然后输入密码,我的是admin,再次sys就可以登录了此时提示符会由<H3C>变成[H3C]
  • 配置ACL 2000,允许对内部网络中192.168.1.0/24网段的报文进行地址转换:
    • 命令:acl basic 2000,进入acl 2000配置,网上也有很多说是acl number 2000,可能不同机器不一样,都试下。
    • 命令:rule permit source 192.168.1.0 0.0.0.255,根据实际的192.168.x.x的网段来
    • 命令:quit,退出
  • 在外网口配置Easy IP方式的出方向动态地址转换,使得内网主机访问内网服务器的报文可以使用外网口的IP地址进行源地址转换:
    • 命令:interface Dialer0,进入外网口配置
    • 命令:nat outbound 2000,设置outbound
    • 命令:quit,退出
  • 在内网口上开启NAT hairpin功能:
    • 命令:interface Vlan-interface1,进入内网口配置
    • 命令:nat hairpin enable,开启hairpin
    • 命令:quit,退出
  • 以上配置完成后,正常来说是可以访问了,不需要重启,但是我的路由并不能,网上查找后又加入了一条命令:security-zone intra-zone default permit
  • 如果想删除某个上述命令,则需要用命令:undo xxxx,例如进入内网口配置后命令undo nat hairpin enable来取消开启

结尾

  • 后续完善的还有很多,但和路由设置没太多关系了,例如自动解析域名到公网IP,以免断网后公网IP变更导致frp失败等
  • 本身对路由配置并不了解,记录下来,可能后续还会用到,以免忘了
  • 最后是换了个刷了OpenWrt的路由器,不需要自己配置回环,而且自带自动解析域名等各种功能,比自己折腾这些好多了,哈哈!

参考

posted @ 2019-11-15 17:18  漫游云巅  阅读(8198)  评论(0编辑  收藏  举报