我有一个在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
有没有人有其他建议?进程是否仍在使用该端口?我陷入了困境。
干杯
戴夫
答案 0 :(得分:2)
这是Mono HttpListener中的错误我在这里创建了拉取请求:https://github.com/mono/mono/pull/891 不幸的是我没有找到解决方法我会尝试在Nancy中找到强大的解决方法,因为版本发布更频繁。
答案 1 :(得分: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版本的旧单声道版本,那么这也适用。