为了安全的原因,很多人都把服务器默认的远程连接端口(windows是3389,linux是22)改成了其他数字,但是一旦忘记了这个新设置的端口号,怎么办呢?我今天在维护一台服务器时,就遇到了这个情况,当时更改端口号时没有及时记录下来,现在要连接才发现这个低级失误。
遇到这个情况,我想大家首先想到的就是扫描端口了。但是网上的在线工具,都是要我们输入端口号来检测是否开启,这肯定不能满足要求,因为1-65535这么多数字我们不可能每个都手动输入去检测。
好在,我后来找到了这个小工具:ScanPort,它能自动扫描某一服务器的所有开放端口。
端口扫描器 ScanPort
端口扫描工具ScanPort是一个小巧的网络端口扫描工具,并且是绿色版不用安装即可使用。使用也很简单,输入起始IP和结束IP(对于一台服务器来说,起始IP和结束IP是相同的),端口号(多个端口号用逗号隔开,也可以指定一个范围如从1到100,就写:1-100),然后点击“扫描”即可。
扫描速度很快,扫描结果显示所有开启的端口号。由于开启的端口号并不多,一般也就十几二十个,所以很容易就找到自己设置的远程端口号了。
最后附上此工具的下载:
链接: https://pan.baidu.com/s/1c3uwj88 密码: tkmt
相关知识:端口数能否超过65535
碰到某人的服务器~3389端口变成了78650。
通常服务器的端口都是1-65535他来个顶你肺啊78650。。。你说怪不怪。。。
这种问题我还真是头一次听说,经查阅相关资料得知:
看看专家告诉你答案:
哈哈 tcp port 大小为 16 bit 是否能超过 65535 可想而知啦!!
不过 Windows 会有一个问题 telnet www.sina.com.cn 65616 大家可以测试一下 !
这实际上是访问 www.sina.com.cn 的 80 端口,为什么呢?如果想不出来就回学校重新学去!
注:65616 - 65536 = 80
以下是引用片段:
main()
{
unsigned short int tcp_port=65616;
printf("%u",tcp_port);
}
有些软件,比方说 Windows 的 telnet,可能用了 32 bit 的数据类型记录 port,这样 port 表面上看到是可以超过 65535。
但是 tcp header 明确定义了 tcpport 为 16 bit,那即便某些应用程序使用了 32 bit 的数据类型,最终结果也是被强制转换。
简单的来说,就是:
1、在应用程序里边可以使用4字节或更多字节来储存端口号。
2、当调用了系统的tcp/ip通讯之后,系统底层强制将大于65536的端口转换回正常范围。
3、并且在转换过程中,不会返回任何错误信息,一切都悄然进行了,所以应用层的程序不会有任何特别反应,这一切都在系统底层悄然完成了。
4、转换的方式为:端口号 - 65536 = ?,问号处既是转换结果。
5、如果转换后的端口还超过65535呢?那就继续转换,直到小于等于65535为止,所以 telnet www.baidu.com 131152 也是可以完美执行的,(65536 + 65536 + 80 = 131152)。
☉关闭137/138/139端口的方法:禁用TCP/IP上的NetBIOS (2017-5-31 17:54:22)
☉135端口漏洞介绍及关闭135端口教程 (2017-5-31 13:58:22)
☉windows关闭445端口最简单的方法:修改注册表 (2017-5-27 12:51:32)
☉win7在防火墙入站规则关闭445端口的教程【也适用其他端口如3389】 (2017-5-26 16:40:36)
☉win2003从组策略关闭端口(445/135/137/138/139/3389等)教程 (2017-5-25 13:55:12)
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。