档案说明:本文源自 Nomika Epilekta 的旧档案,经整理保留,供历史与资讯阅读。
今天,和几年前一样,许多用户以及信息技术领域的专业人员,在试图向外部世界,也就是互联网,打开一扇“门”时,都会遇到较大的问题。
一个人想要在电脑上开放端口,原因因目标而异。例如,他可能希望建立 web server,让网页不仅能在本地显示,也能在全球网络中访问;也可能要建立 internet server,用特定规则把互联网提供给指定电脑;还可能建立 game server,让其他人无需 Hamachi 等额外程序,就能加入本地运行的游戏。
在进入具体操作之前,我们需要先理解几个基本概念。家庭或工作场所常见的是一个本地网络:电脑会从路由器取得一个 IP 地址,前提是路由器的 DHCP,也就是 dynamic host configuration protocol,为它分配地址。这样,本地网络内的多台电脑和设备才能彼此通信。
路由器本身也有一个内部 IP,例如 192.168.0.1。通过访问这个地址,用户可以进入路由器的设置面板。与此同时,网络服务商还会分配一个外部 IP,设备正是通过它“走出”本地网络、访问互联网。如果没有向服务商申请固定 IP,外部 IP 通常会根据服务商规则每两三天改变一次。
粗略来说,我们会面对三个 IP:电脑的 IP、路由器的内部 IP,以及外部 IP。我们要做的是指示路由器打开想使用的端口。常见问题通常包括:没有以正确方式在路由器中开放端口;没有设定静态 IP;某个第三方程序阻挡了端口;或者只在路由器上开放了端口,却没有在 Windows 或其他操作系统的防火墙中放行。
实践上,可以先使用端口映射程序查看哪些端口被占用、关闭或开放。也可以不依赖额外程序,在 Windows 中使用 netstat 命令;如果输入 netstat -ano,还能查看 UDP,也就是 User Datagram Protocol 的相关信息。
假设我们要开放 9000 端口,或同时开放多个端口、一个端口范围,就需要根据路由器型号进入其设置。打开浏览器,如 Internet Explorer 或 Chrome,输入路由器 IP,例如 192.168.2.1,系统会要求输入用户名和密码。旧文中提供了 HOL 支持页面和 portforward.com 等资料,供当时用户查找特定路由器的端口开放说明。
进入路由器后,可以在设置中创建一个 virtual server,让指定端口或端口范围能够通过。我们在示例中登记 9000 端口。不过,在这个系统里,即使理论上已经开放了端口,实际上仍可能什么也没打开,因为还需要处理两个防火墙。
第一步是检查 Windows 防火墙,按入站和出站规则放行相关端口。随后还要检查安全软件的防火墙,例如文中提到的 NOD32,因为它也可能阻挡端口通信。
至此,端口通常已经可以使用。如果程序仍无法运行,或端口没有响应,就要继续排查其他可能影响正常工作的程序,或检查路由器 firmware 是否存在问题。后者在未手动修改的情况下较少见,但在故障排查中仍不能完全排除。
文末还提到 portforward.com 可作为查询路由器端口开放方法的参考站点,其中包含许多路由器型号和相关程序的解决方案。署名:John Pap。
Comments
Share your thoughts about this article.
No comments yet. Be the first to comment.
Submit a comment