微信開發的本地調試只支持80號端口,實驗了很多辦法,總結一下:
辦法一:
公司使用的是聯通ADSL, 在路由器上做完端口映射后發現電信/聯通封了80端口,所以這個辦法走不通了。
辦法二:
搜可以下,可以用ngrok,飛快的下載,設置好了。把ngrok的URL填入微信設置時,微信提示這種網址存在安全風險,已經不支持了。
辦法三:
這個方式要求你有一台外網linux服務器。微信要求這台機器的域名是已經通過ICP備案的,你可以用你開發域名的一個子域名指向這個服務器。比如http://wechatdev.yourdomain.com
(1)首先:把該linux服務器占用80號端口的服務關閉;
(2)打開服務器的遠程轉發功能,執行以下命令:
sudo nano /etc/ssh/sshd_config
在/etc/ssh/sshd_config文件末尾加入一句:
GatewayPorts yes
然后重啟SSH:sudo service ssh restart
嘗試了阿里雲和Azure 的Linux虛擬機,有以下要注意的:
阿里雲
打開防火牆,允許訪問80端口
Azure:
打開防火牆,允許訪問80端口
Azure比阿里雲特別的地方是,root用戶默認是沒打開的。所有我們需要打開root 用戶
- 用SSH登錄,你創建虛擬機的時候應該有一個用戶。
- 執行以下命令:
sudo nano /etc/ssh/sshd_config
修改
PermitRootLogin without-password
為:
#PermitRootLogin without-password (注釋掉)
PermitRootLogin yes
- 然后重啟SSH:
sudo service ssh restart
- 然后切換到root 用戶
sudo su
- 檢查root 用戶是否鎖定(LOCK表示鎖了)
[root@Linux ~]# grep root /etc/shadow
root:*LOCK*:14600::::::
- 給root 一個密碼,這樣就啟用root了
[root@Linux ~]# passwd
最后一步,設置端口轉發,在本機上運行(假設你使用MAC):
ssh -R 80:localhost:9001 root@wechatdev.yourdomain.com (這句話的意思是,把發到wechatdev.yourdomain.com:80的流量都轉發到本地的9001端口。