我已经部署了一个节点应用程序,它可以监听AWS中的免费使用层ubuntu机器上的端口5000。
我遵循了来自:How to start node.js on port 80 on a linux server?和Best practices when running Node.js with port 80 (Ubuntu / Linode)的建议
这两个问题的答案表明港口转发和我已经做了同样的。但是我的服务器仍然没有响应端口80上的请求。有什么方法可以检查端口转发是否成功?
侦听HTTP请求的权限设置已通过AWS控制台设置。而且,到目前为止,机器上还没有什么能听到80端口的声音。netstat -l | grep :80空空如也。
如果以以下方式访问服务器,则服务器运行良好:http://<elastic-ip>:5000。
发布于 2014-07-13 06:37:43
您将不会看到端口80在监听,因为没有使用该套接字的守护进程;内核正在执行数据包重定向。
要检查您设置的端口转发规则中穿越了多少个数据包,请使用PREROUTING检查nat表上的sudo iptables -t nat -L PREROUTING -n -v链。它将显示输出如下:
Chain PREROUTING (policy ACCEPT 15 packets, 1226 bytes)
pkts bytes target prot opt in out source destination
3 180 REDIRECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 3000如果要从本地主机进行测试,还必须在OUTPUT上重定向,因为环回接口不使用PREROUTING。用这种方法
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-port 3000当然,检查端口80是否打开以允许外部通信。
https://stackoverflow.com/questions/24719467
复制相似问题