4

我有一个在 Raspberry Pi 上运行的自托管 Nancy 应用程序,但我无法将它绑定到端口 80!

它适用于端口 81、8090,我什至尝试了其他“保留”端口,例如 443。除了 80 之外,它们都可以工作。

我正在使用 sudo 启动应用程序,因此它不应该是权限,并且 81 也可以。

sudo mono Lambda.Console.exe

明显的罪魁祸首是其他东西正在使用端口 80,但我不知道它是什么。我已经尝试过通常的方法;

netstat -ln - nothing is listening on port 80

telnet port 80 - connection is refused, suggesting nothing is listening

有人有其他建议吗?进程仍然可以使用该端口吗?我被困在这一点上。

干杯

戴夫

4

2 回答 2

2

这是 Mono HttpListener 中的错误,我在这里创建了拉取请求:https ://github.com/mono/mono/pull/891 不幸的是我没有找到解决方法我将尝试在 Nancy 中找到强大的解决方法,因为版本发布更频繁。

于 2014-02-08T13:14:39.803 回答
1

我还找到了一个解决方法,该问题涉及将端口 80 映射到您的 Nacy 应用程序实际绑定的端口。

sudo /sbin/iptables -t nat -A PREROUTING -i eth+ -p tcp --dport 80 -j REDIRECT --to-port 8080

您可以使用相同的命令撤消此操作,但使用 -D 而不是 -A 如果要检查它是否存在,请使用 -C

理想情况下,最好使用来自@david-karlas 的 Nancy 补丁,或者如果它带有单声道修复,但如果您必须使用旧的单声道版本和旧的 Nancy 版本,那么这也可以。

于 2014-02-08T15:41:03.870 回答