【问题标题】:How to open Ports through C#?如何通过 C# 打开端口?
【发布时间】:2015-10-21 16:51:55
【问题描述】:

我是编程的初学者,所以我什至不知道我要问什么是可能的。我想通过 WAN 与服务器建立 TCP/IP 连接。

客户端和服务器程序都是我制作的,它们在局域网中运行良好。我现在正在尝试通过 WAN。我知道服务器 IP 地址和他正在侦听的端口,但作为客户端,我无法建立连接。我想这是因为端口实际上并没有打开/可用。

如何在服务器端实现这一点?有没有办法让我启动服务器(也许作为管理员)并让它自己打开端口?这是路由器问题还是防火墙问题?

如果我不够清楚,请随时提问。

干杯。

PS:让我这样说: 如果我在局域网中建立连接,它可以工作。我将其设置为本地 IP 地址(192.168 ....)并选择我想要的任何端口,它工作得很好。一旦我把我的公共 IP 提供给我的 ISP,它就没有了。我将防火墙路由器设置为接受所有内容,并在 Windows 防火墙中设置了新规则以打开端口 100。发生了什么变化?

【问题讨论】:

  • 听起来更像是网络问题而不是编程问题...您所说的 WAN 是指通过互联网,还是只是无线路由器?
  • 以目前的形式,这个问题并不适合 Stack Overflow。很可能在从您的客户端到您的服务器的路由上,有一些东西阻塞了特定的 TCP/IP 端口。我的猜测是服务器位于 NAT 路由器后面,您需要配置路由器以将特定端口转发到您的服务器,但您没有指定有关设置的任何详细信息,所以我完全错了。
  • 到目前为止我所做的是link提供的一个简单的TCP连接。我所做的只是请一位朋友从他家中的计算机上运行服务器程序。我设置了他的公共 IP 地址,但未能设置连接。
  • 回答我的问题,改变的是需要使我的计算机能够读取 ip 数据包的端口转发。你知道是否可以通过c#进行端口转发吗?

标签: c# port tcp-ip wan


【解决方案1】:

请检查以下列表,

  • 用于排除所需端口的服务器防火墙规则
  • 路由器防火墙排除所需端口
  • 检查所有已安装的安全软件是否会阻止您所需的端口
  • 最后也是至关重要的!打开路由器接口并配置您的 NAT 设置,以便将通过所需端口运行的数据包提供给您的本地服务器 IP
  • 如果一切正常并且您的 ISP 没有阻塞所需的端口,那么您就没有问题。
  • 您也可以访问 canyouseeme.org 以检查该服务器是否正常监听!

亲切的问候,
知识库

【讨论】:

  • 谢谢,它成功了。我必须进行端口转发,这样我才能收到返回给我的数据包。您知道是否可以通过 C# 进行端口转发?
  • 是的,如果你使用类 Open.NAT 是可能的 - 更多信息可以在这里找到github.com/lontivero/Open.NAT - 亲切的问候
  • 可爱。我会深入研究它。谢谢你的帮助!
猜你喜欢
  • 2013-03-16
  • 2018-07-26
  • 2017-03-27
  • 1970-01-01
  • 2010-12-23
  • 2020-08-31
  • 2016-05-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多