Openwrt 端口映射的常见问题 |
您所在的位置:网站首页 › openwrt内网端口转发 › Openwrt 端口映射的常见问题 |
在使用Openwrt路由器的时候,有时候我并不把它当作一个路由器来上网用,而是把装有Openwrt系统的路由器当成一个低功耗的Linux的嵌入式系统使用。Openwrt的官网给了很多很多软件的预编译包,其数量之多几乎可以与Ubuntu的官方源媲美,比如我们可以在Openwrt上搭建apache的网页服务,代理,NAS服务器等很多功能,要比开启一台Linux笔记本电脑省电的多。 如果要把Openwrt当成服务器来使用,一个很重要的节点是端口映射,必须把我的公网IP的端口映射到Openwrt路由器上去,我的路由器才能收到公网发来的请求,并将结果返回到公网。 然而Openwrt相比Ubuntu有很坑的地方,让我折腾了一晚上才弄明白 1、Openwrt默认拒绝公网发来的未建立连接的请求,所以端口映射的再多也没有用 2、Openwrt里的服务监听端口必须是路由器的WAN口地址,才能被端口映射后访问
首先来解释一下第一点 在Openwrt默认配置下luci的界面上,找到“网络”-“防火墙”可以看到来自WAN口的请求是被REJECT的,如下图
如果你的防火墙的配置如上,那么恭喜你做再多的端口映射都没有用 所以我们可以通过luci界面修改或者修改配置文件的方式支持WAN口的请求接入
或修改/etc/config/firewall
注意,这两种方式修改完毕后都需要重启路由器才能生效 下面开始配置端口转发,我们可以先把路由器后台luci界面的端口80给映射出去,然后就可以在外网进路由器后台控制了。
如果你没有添加别的防火墙机制,现在应该已经可以在外网访问路由器的管理界面了 而且现在可以像普通路由器一样对内网的其他电脑进行端口映射,此时router->client的映射没有什么问题,但是能不能对路由器自己进行映射呢,也就是router->router的映射。 那么我们来试试其他的服务,这里以HTTP代理服务Privoxy为例,让Privoxy监听在192.168.1.1也就是路由器的内网地址 首先编辑Privoxy的配置文件如下 ### AUTO-GENERATED CONFIGURATION ### USED BY PRIVOXY ### DO NOT EDIT ### SEE /etc/config/privoxy INSTEAD confdir /etc/privoxy logdir /var/log logfile privoxy.log filterfile default.filter actionsfile match-all.action actionsfile default.action listen-address 192.168.1.1:9999 toggle 1 enable-remote-toggle 1 enable-remote-http-toggle 0 enable-edit-actions 1 enforce-blocks 0 buffer-limit 4096 forwarded-connect-retries 0 accept-intercepted-requests 0 allow-cgi-request-crunching 0 split-large-forms 0 keep-alive-timeout 300 socket-timeout 300 #permit-access 192.168.1.0/16 不做IP连入的限制 forward-socks5 / 192.168.1.1:1080 . debug 512 debug 4096 debug 8192然后配置端口转发,注意我转发的内部地址是192.168.1.1,路由器的公网地址是10.42.1.52
1、在Openwrt配置端口转发时配置目标内网地址为路由器地址时(假设192.168.1.1)监听在192.168.1.1的程序并不会受到端口转发的数据 所以路由器上的程序必须监听在0.0.0.0或者路由器的公网地址。 2、如果程序监听在路由器公网地址,那么内网用户就会不能访问,但是公网用户可以,如果想要内网公网用户可以同时访问,可以监听在0.0.0.0也就是所有网卡的所有网段上,或者针对内网和公网用户使用两个进程。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |