我想编写一个使用非标准 TCP 端口与互联网上的服务器通信的软件。我没想到家用无线路由器能做到这一点,但我觉得它会阻止我的传出请求,或者至少阻止我应该收到的任何响应。
它会这样做吗?我希望它会阻止传入的连接请求,但它会阻止传出的连接吗?回复从网络内部发起的连接?
查看路由器上的配置选项(WGR614V9) 我可以看到端口转发和端口触发选项,但我可以看到一种简单的说法 - 请允许通过端口 xxxx 进行双向通信,我可以这样做吗?
我在网上查看了其他各种路由器的手册,但没有在任何地方看到任何明确的配置条目,这通常是不可能的吗?
忘记补充了——当我将笔记本电脑插入宽带调制解调器(绕过无线路由器)时,请求和响应都顺利通过,所以我很确定“问题”出在路由器上
答案1
SOHO 路由器通常没有这样的选项;我宁愿建议您检查您的计算机上是否有任何防火墙处于活动状态。
更新正如您所说,您正在编写自己的应用程序,我建议您:
telnet
尝试使用(如)连接到该端口telnet remote.addr 123
,并检查连接是否会被拒绝,然后- 提出这个问题堆栈溢出,提供有关应用程序内部的更多技术细节。
答案2
根据我的经验,大多数路由器确实需要您打开非标准端口(入站和出站)。根据您的型号,您似乎正在使用 Netgear 路由器。我广泛使用 Netgear,而且——再次——您需要打开端口。我发现 Netgear 的手册在这个问题上有点薄弱……您可以使用端口触发(效率较低)、端口转发或静态路由。通常,除非您专门打开端口,否则防火墙会阻止端口活动。但是,端口控制通常很简单。我希望这能有所帮助。