[.Net Core]记录一次通过publish文件在服务器部署项目时访问不了的问题

madoka.gif

过程

生成publish文件后,复制到服务器上。然后dotnet xxx.dll,提示Now listening on: https://localhost:5000(注:这里有问题)。然而通过公网ip却访问不了,即便在防火墙开启了对应端口也是一样的。
于是考虑服务器系统(ubuntu)上是否有防火墙,预装的ubuntu可能存在两种“防火墙”分别是ufwiptables
通过sudo ufw status指令查看,ufw处于非激活状态。于是考虑iptables,但iptables在没动过配置的情况下是accept所有的。

通过 iptables -L发现,所有Chain都是空的,且都是(policy ACCEPT),即默认接受。

在一番无效操作后,通过售后了解到是监听端口写成localhost了,只能本机访问...

要点

监听该监听的

通过什么方式访问,监听什么地址。例如要通过公网ip访问时,就应该监听公网ip,或者0.0.0.0(所有网络)

例如,在调试时:host在https://0.0.0.0:[端口号]时,localhost和本机ip(本机ip指某一网卡的ip,下略)都可以访问;host在https://[本机ip]:[端口号]时,仅本机ip可以访问,localhost不可访问。
使用netstat -anpt | gerp [端口号]确定监听是本机ip的端口(0.0.0.0或本机IP)

端口可被扫描到的先决条件

存在进程监听端口,且没有防火墙阻拦。
可通过站长工具对端口扫描 https://tool.chinaz.com/port/
或使用命令行 telnet [ip] [port]

过程中经常在改了一部分配置之后,去用端口扫描工具测试。但实际上由于没有进程监听该端口(我没启动dotnet进程),无论如何也得不到“开启”的结果。

你可能感兴趣的:([.Net Core]记录一次通过publish文件在服务器部署项目时访问不了的问题)