这是需求,像帖子里说的那样:“手机app管理功能实在有限,希望能从外网web登陆后进行直接管理”。怕有人不明白这个意思,这里在贴一个正常路由器厂家提供的教程

因为华为荣耀路由器的 Web 管理页面目前没办法在公网访问,只能在内网访问。所以如果实在要从公网访问的话,就需要在内网有“人”把公网请求转发一下变成内网请求,这就是所谓的“反向代理”。

这个方案中的一个重要环节就是这个中间人,如果家里有 htpc、nas、树莓派、群晖,或者一台一直开机的电脑,那这件事就好办了。如果家里没有这些硬件设施,可以购买一台二手的玩客云,成本不到 50 元,参考低成本在家部署一个Server

以我的使用场景举例,荣耀路由器的 IP 为 192.168.3.1,假设另一台内网主机电脑(下面缩写为主机)的 IP 为 192.168.3.2。配置反向代理的步骤如下:

  1. 安装 Nginx。

Nginx 是用处非常广泛且非常流行的一个服务器软件,而且非常擅长于做反向代理。根据自己的主机的操作系统,安装自己操作系统版本的 Nginx 即可。Nginx 可以在这里下载 Nginx,安装好 Nginx 后,启动 Nginx。

这一步做完后,在局域网中其他设备的浏览器中输入主机的 IP 地址 192.168.3.2,可以看到 Nginx 的默认页面。

  1. 配置路由器。

默认情况下,从公网是无法访问到家里局域网中的一台主机的。公网的请求可以通过路由器的公网 IP 到达路由器,如果需要转发到内网,可以通过端口转发把具体的请求转发给主机上的 Nginx。

在内网打开路由器的管理地址192.168.3.1,输入管理密码,进入到路由器管理页面点击“更多功能-安全设置-NAT服务-端口映射”,端口映射功能可以把路由器的某个端口映射到局域网中一台主机的某个端口上。Nginx 默认的端口是 80,我们这里可以设置把路由器的某个非常用端口比如 369 映射到主机 192.168.3.2 的 80 端口,这样当访问路由器公网 IP 的 369 端口时,就等于访问局域网中主机的 80 端口,即 Nginx 服务监听的端口。

上面不一定非用 369 端口,可以自己随便定一个端口,比如自己的幸运数字,但是切记不能用 80、8080 这种常用端口,因为运营商会封掉个人宽带的常用端口,这样当在公网访问这些常用端口时就访问不到了。当然内网 Nginx 的 80 端口可以认为是固定的。

在一步做完后,在任意一个已接入互联网的设备的浏览器里输入“你的路由器的公网 IP:你定的端口”后,都能看到 Nginx 的默认页面。

  1. 配置反向代理

接下来就是最关键的一步,配置反向代理。在上一步中我们已经可以在公网访问到内网的 Nginx,而这一步就是把访问 Nginx 的请求转发给路由器,对于路由器来说,这个请求是从内网中安装 Nginx 的主机访问过来的,所以可以访问路由器的管理页面。

修改 Nginx 的配置文件nginx.conf,这个文件的具体位置你可以上网查一下,如果你的 Nginx 是安装在 Linux 操作系统上,这个配置文件默认位于/etc/nginx/nginx.conf。下面贴出了这个文件中需要修改的部分,其中省略号代表不需要修改的无关紧要的部分。

...
http {
	...
	server {
		...
		location / {
			proxy_pass		http://192.168.3.1/;
			proxy_redirect	off;
		}
		...
	}
	...
} 

在做完这一步后,在任意一个已接入互联网的设备的浏览器里输入“你的路由器的公网 IP:你定的端口”后,就可以打开你的路由器的管理页面了。

对于专业用户来说,这几个步骤都非常简单;对于非专业用户来说,可能即使看了本教程也不知道该怎么做,那么欢迎你在文末评论。