问题
如果你的服务器/设备在内网里面,并且希望从外部能直接访问到,那么你就需要涉及到端口转发,也就是将路由器的一个外部端口转发到内部一台终端的某个端口上。
此时我们可能会需要搭建一个服务器到内网里面,并直接通过域名或者ip地址直接访问(默认80端口),但有些路由器可能占用了80端口导致你无法配置80端口的转发,小米路由器就是如此,因为路由器的管理后台占用了这个端口。接下来我们看如何将小米路由器的80端口转发到内网里面。
解决
开启SSH
路由管理界面并没有直接提供端口的配置,所以我们需要使用SSH登录我们的后台,手动修改配置文件以达到我们的目的。然而开启SSH需要开发版才行(稳定版应该是不行,可以尝试一下)。
-
升级到开发版
MiWiFi
打开MiWiFi官网下载页面,选择ROM
选择你的路由器(R1D)版本,下载开发版(当然只有部分路由器有开发版)
开发版
登录路由器->常用设置->系统状态,手动升级->选择刚下载的ROM包->开始升级
升级
然后等待升级完成就可以了 -
打开SSH功能
开启SSH工具
SSH默认是关闭的,需要烧录对应的文件才能打开。
打开MiWiFi开放平台页面,往下拉,选择开启SSH工具
此时会显示你左右绑定的路由器(如果还没绑定就先绑定一下吧,小米路由上登录小米帐号就可以),选择你要开启的那个路由器下载 (记住那个root密码)
工具包
烧录(具体方法页面上也有介绍)
(1) 将下载的工具包bin文件复制到U盘(FAT/FAT32格式)的根目录下,保证文件名为miwifi_ssh.bin
(2) 断开小米路由器的电源,将U盘插入USB接口
(3) 按住reset按钮之后重新接入电源,指示灯变为黄色闪烁状态即可松开reset键
(4) 等待3-5秒后安装完成之后,小米路由器会自动重启,之后您就可以尽情折腾啦 -
登录SSH
登录SSH
选择一个你熟悉的SSH工具(我这里用SecureCRT)登录
host:192.168.31.1
port:22
user:root
password:刚刚下载工具包页面显示的那个密码
SSH
登录之后可以使用 passwd 命令来修改默认的 root 密码
修改管理页面端口
这里需要的就是讲管理后台的端口修改到一个没有使用的端口就可以了
可以先用 netstat -tunlp 命令查看端口占用情况
# netstat -tunlp | grep 80
可以看到80端口被 sysapihttpd 占用了
-
修改sysapihttpd文件
# vim /etc/sysapihttpd/sysapihttpd.conf
端口
我这里把80改成了81,修改成其他值也都可以,只要不要和其他冲突了就好,修改后记得重启路由器否则不生效(端口占用还是蛮多的)
vim 不会的话先去学一下基本的 vim 用法,这东西不会不行 - 修改防火墙
这里主要是修改端口转发 (如果有firewall_default也要一起修改了)
# vim /etc/config/firewall
端口转发
改成你刚刚修改的端口号就可以了 (81)
端口转发
登录路由器->高级设置->端口转发->添加规则
注意,这里需要加上你修改的端口 (192.168.31.1:81),否则就访问不到了,因为你已经配置成别的了
此时你就可以发现不会提示端口冲突并且成功添加了端口转发规则了,现在开始你愉快的玩耍吧!
插件开发 -> 小米路由器插件开发文档
注:切记记好你新配置的路由器管理后台的端口,不然你以后都不知道从哪登录路由器了 ^.^
网友评论