程序使用端口 80,但它不应该

Program uses port 80, but it shouldn't

我正在创建简单的应用程序,它应该与托管服务进行通信。应用程序非常简单,您可以在任何 WCF 服务教程中找到此类应用程序,并提供一个服务客户端来连接服务。我正在使用端点

"http://localhost:6480/DentalDesktop/ServerAgentService"

用于服务,因此,据我所知,应用程序应该只使用 6480 端口(在所有规则等中都是开放的)。 但是一旦我尝试启动应用程序,它就会抛出异常,该端口 80 已被另一个应用程序使用。一些调查显示,这是使用端口 80 的 Skype。

但是,我完全不明白为什么我的应用程序使用端口 80。唯一的客户端服务对我们使用另一个端口。这是由 WCF 应用程序的某些默认连接引起的还是什么?

端口 80 是 HTTP 端口,由浏览器用于非安全流量。

能否提供有关您正在创建的应用程序类型的更多详细信息。是网站、WPF 应用程序、服务等吗

以下是我如何使用 iptables 在 VM 上进行端口转发。您首先必须启用端口转发,然后为 PREROUTING 链设置规则:

sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000

如果您想重定向本地主机流量,请改用此方法:

sudo iptables -t nat -A OUTPUT -d localhost -p tcp --dport 80 -j REDIRECT --to-port 3000 

这些示例将流量从端口 80 路由到端口 3000。

嗯,我能说的是...不要使用 http 或 tcp 从您自己的机器连接到您的服务器。 net.pipe 工作完美,没有任何端口。