問題
如果你的服務器/設備在內網里面,并且希望從外部能直接訪問到,那么你就需要涉及到端口轉發,也就是將路由器的一個外部端口轉發到內部一臺終端的某個端口上。
此時我們可能會需要搭建一個服務器到內網里面,并直接通過域名或者ip地址直接訪問(默認80端口),但有些路由器可能占用了80端口導致你無法配置80端口的轉發,小米路由器就是如此,因為路由器的管理后臺占用了這個端口。接下來我們看如何將小米路由器的80端口轉發到內網里面。
解決
開啟SSH
路由管理界面并沒有直接提供端口的配置,所以我們需要使用SSH登錄我們的后臺,手動修改配置文件以達到我們的目的。然而開啟SSH需要開發版才行(穩定版應該是不行,可以嘗試一下)。
-
升級到開發版
打開MiWiFi官網下載頁面,選擇ROM
MiWiFi
選擇你的路由器(R1D)版本,下載開發版(當然只有部分路由器有開發版)
開發版
登錄路由器->常用設置->系統狀態,手動升級->選擇剛下載的ROM包->開始升級
升級
然后等待升級完成就可以了 -
打開SSH功能
SSH默認是關閉的,需要燒錄對應的文件才能打開。
打開MiWiFi開放平臺頁面,往下拉,選擇開啟SSH工具
開啟SSH工具
此時會顯示你左右綁定的路由器(如果還沒綁定就先綁定一下吧,小米路由上登錄小米帳號就可以),選擇你要開啟的那個路由器下載 (記住那個root密碼)
工具包
燒錄(具體方法頁面上也有介紹)
(1) 將下載的工具包bin文件復制到U盤(FAT/FAT32格式)的根目錄下,保證文件名為miwifi_ssh.bin
(2) 斷開小米路由器的電源,將U盤插入USB接口
(3) 按住reset按鈕之后重新接入電源,指示燈變為黃色閃爍狀態即可松開reset鍵
(4) 等待3-5秒后安裝完成之后,小米路由器會自動重啟,之后您就可以盡情折騰啦 -
登錄SSH
選擇一個你熟悉的SSH工具(我這里用SecureCRT)登錄
host:192.168.31.1
port:22
user:root
password:剛剛下載工具包頁面顯示的那個密碼
登錄SSH
SSH
登錄之后可以使用 passwd 命令來修改默認的 root 密碼
修改管理頁面端口
這里需要的就是講管理后臺的端口修改到一個沒有使用的端口就可以了
可以先用 netstat -tunlp 命令查看端口占用情況
# netstat -tunlp | grep 80
sysapihttpd.co
可以看到80端口被 sysapihttpd 占用了
-
修改sysapihttpd文件
# vim /etc/sysapihttpd/sysapihttpd.conf
端口
我這里把80改成了81,修改成其他值也都可以,只要不要和其他沖突了就好,修改后記得重啟路由器否則不生效(端口占用還是蠻多的)
vim 不會的話先去學一下基本的 vim 用法,這東西不會不行 - 修改防火墻
這里主要是修改端口轉發 (如果有firewall_default也要一起修改了)
# vim /etc/config/firewall
端口轉發
改成你剛剛修改的端口號就可以了 (81)
端口轉發
登錄路由器->高級設置->端口轉發->添加規則
注意,這里需要加上你修改的端口 (192.168.31.1:81),否則就訪問不到了,因為你已經配置成別的了
配置
此時你就可以發現不會提示端口沖突并且成功添加了端口轉發規則了,現在開始你愉快的玩耍吧!
插件開發 -> 小米路由器插件開發文檔
注:切記記好你新配置的路由器管理后臺的端口,不然你以后都不知道從哪登錄路由器了 ^.^