如何通过C#打开端口?

How to open Ports through C#?

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

客户端和服务器程序都是我做的,它们在局域网中工作得很好。我现在正在尝试通过 WAN。我知道服务器 IP 地址和他正在监听的端口,但作为客户端我无法建立连接。我想这是因为端口实际上不是 open/available.

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

如果我说的不够清楚,欢迎追问。

干杯。

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

请检查以下列表,

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

亲切的问候,
KB