无法在远程服务器上调试节点应用程序
Posted
技术标签:
【中文标题】无法在远程服务器上调试节点应用程序【英文标题】:Can't debug node application on remote server 【发布时间】:2019-08-06 07:50:18 【问题描述】:我正在远程服务器 (my-domain.com) 上运行 express 应用程序:
node --inspect=0.0.0.0:9229 ./server.js
在intellij idea
我已经设置debug configuration (Attach Node.js/chrome)
:
host: my-domain.com
port: 9229
当我点击debug
按钮时,我得到这个错误:
来自远程主机的无效响应。请检查选项中的 调试配置
我可以使用此设置在 localhost 上调试相同的应用程序:
host: localhost
port: 9229
为什么我无法附加到远程节点应用程序并对其进行调试? intellij idea
可以给我更多关于错误的信息吗?
【问题讨论】:
idea.log 中是否有任何消息(“帮助 | 显示登录...”)?您是否使用任何防病毒软件或防火墙/代理? 【参考方案1】:我找到了解决我和许多其他问题的好方法,它已经存在了很长时间,我不使用它! :)
对于我的特殊问题,可以使用ssh tunnels
ssh -L 9221:localhost:9229 user@my-domain.com
现在我可以将节点调试器附加到 localhost:9221。它只是将所有流量从远程端口 9229 转发到我的本地 9221。
另一个是远程端口转发:
刚刚在/etc/ssh/sshd_config
中添加了这一行:
GatewayPorts yes
这里是
ssh -R 9001:localhost:9000 user@my-domain.com
现在远程机器上端口 9000 上的所有流量都发送到我的本地节点 express 应用程序。我可以调试,为所欲为
这是我从中得到想法的文章:https://blog.trackets.com/2014/05/17/ssh-tunnel-local-and-remote-port-forwarding-explained-with-examples.html
【讨论】:
以上是关于无法在远程服务器上调试节点应用程序的主要内容,如果未能解决你的问题,请参考以下文章