我在开发 Telegram bot 时,是先在本地写好代码,上传到服务器再测试的。因为 telegram 的 setWebhook 指定的网址是线上的。这一点,与微信公众号开发时的接入服务器配置是一样的。
当然,这样谈不上什么开发效率。
网上有些端口映射的工具,比如 ngrok,但 SSH 本身就带了这样一个工具。
假设我 telegram webhook 地址是 https://www.111com.net /telegram,服务器运行在 3344 端口,本地的开发环境运行在 localhost:3344 地址上,则运行如下命令:
ssh -R 3344:localhost:3344 [email protected]
就可以完成远程端口转发到本地。这样,telegram 往 https://www.zfanw.com/telegram 地址 POST 的数据都会被转发到我本地上的 localhost:3344。
等等,要怎么断掉转发?首先,SSH 连接并不稳定,很容易就断掉。如果万幸不掉,则输入
exit
回车即可退出。
当然,我们也可以按 CTRL - C 强制退出。