微信公众后台开发要求
微信公众后台开发要求开发者有外网可访问的 Web 服务,且运行在标准端口(http 80、https 443)。
本地开发方案
采用 ssh 端口远程转发,将远程服务器上 80 端口的流量通过已建立的 ssh 连接转发到本地机器的任意端口。
因此要求远程服务器上 80 端口不能跑其它服务,有 root 帐号,有独立的外网 IP。
可以考虑花几十块买一个 VPS,开发过程中用一下。
远程服务器配置
假定服务器的操作系统为 CentOS
。
开启 ssh 远程转发
修改 /etc/ssh/sshd_config
,添加以下配置
GatewayPorts yes
重启 sshd 服务
/etc/init.d/sshd restart
参考
man 1 ssh
By default, TCP listening sockets on the server will be bound to the loopback interface only. This may be overridden by specifying a bind_address. An empty bind_address, or the address ‘*’, indicates that the remote socket should listen on all interfaces. Specifying a remote bind_address will only succeed if the server's GatewayPorts option is enabled (see sshd_config(5)).
对外开放 80 端口
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT /etc/init.d/iptables save
本地机器配置
建立 SSH 隧道
假设远程服务器外网 IP 为 x.x.x.x
、ssh 端口为 27906
,本地机器的 Web 服务监听在 8001
端口
ssh -C -f -N -g -v -R :80:127.0.0.1:8001 root@x.x.x.x -p 27906
命令选项请参考 man 1 ssh
。
启动本地 Web 服务
在 8001
端口上运行 web 服务。
测试访问
curl http://x.x.x.x/
应该会响应本地机器上 http://localhost:8001 的内容了。