观前提示,本文为一篇水文,旨在记录某次问题排查过程并理清排查思路
0x01 排查顺序
物理连接,防火墙,端口复用
0x02 应用场景
操作系统:Windows10
网络环境:局域网或拥有公网ip的公网环境
0x03 问题表现
电脑上开发的socke server或net server程序无法对外提供服务
0x04 具体过程
物理连接
首先保证网线的物理连接正常,网络连接状态灯正常;
首先设置静态ip,看能否ping通,顺手开启电脑的ICMP功能
防火墙
个人觉得windows的防火墙,emmm,总觉得没有linux堵塞直观
方案一、关闭防火墙
进入控制面板,找到此位置
左边就可以开启和关闭防火墙了
方案二、允许的应用
点击允许应用和功能通过Windows Defender防火墙,点击允许其他应用,添加想要通过的应用即可
方案三、入站规则
点击高级设置,添加入站规则,端口啊、应用啊动能在这里添加
端口复用
请确保程序端口能够正常监听!
从开发者角度,应当在绑定端口时判断是否绑定成功,及时给出错误信息,防止意外错误。
开始此步时,请知晓对应的端口号,下文中的尖括号代表需要用的别处数据,如<端口号>,其余均为命令组成部分。
请在开始此步骤时关闭你的应用程序
查看哪个进程在使用端口
netstat -nao | findstr <端口号>
上述命令会返回进程pid
查看对应进程
tasklist | findstr <进程号>
结束进程
可以手动关闭相关进程,也可使用taskkill命令
需使用管理员权限运行cmd
taskkill /pid <进程号> /F
ps.
由于之前接触的网络开发不多,没考虑到端口复用的情况,实际上通过端口复用技术能够多个不同进程监听同一个端口,以满足某些需求,一些后门也用到了这项技术。
可恶啊,为啥我记得我网安咋没学这个小知识