[lsof与netstat]-解决文件描述符+端口占用
2025/12/28大约 2 分钟
[lsof与netstat]-解决文件描述符+端口占用
2.端口扫描和日常开发的端口占用
1.端口被占用
go run main.go然后你断开了
然后重新go run main.go
server exit: listen tcp4 0.0.0.0:8087: bind: address already in use步骤1、定位PID
Linux或者mac【注意:这个端口如果也是你这个用户启动的,其实也可以不用sudo,只是用sudo能看全局】
sudo lsof -i :8087也可以使用netstat,查看8081端口被哪个进程调用
netstat -naptu | grep 8081注意,加上了u只是为了也侦测udp的。 查看进程名为ssh的连接
netstat -naptu | grep ssh如果是windows
netstat -ano | findstr :8087步骤2、杀掉那个PID
sudo kill -9 <PID>
taskkill /PID <PID> /F未经验证的服务器
⭐️tcp的直接回显
公网ip的电脑监听3389端口
nc -l -p 3389本地电脑去
echo "whoami" | nc 公网ip 3389马上,本地的断开,公网的ip监听也结束,并且回显
whoamiudp不知道为啥不得行-我也开发了阿里云的安全组
echo "whoami" | nc -u 公网ip 3389本地电脑去
echo "whoami" | nc -u 公网ip 3389但是没反应
netstat
- 提示:多man netstat
常用搭配
记忆方法,not use apt
netstat -napt最常用参数
- -a 显示所有选项【all】
- -t (tcp)仅显示tcp相关选项
- 显示TCP传输协议的连线状况
- -u (udp)仅显示udp相关选项
- 显示UDP传输协议的连线状况
- -n 拒绝显示别名,能显示数字的全部转化成数字。
- -n或--numeric 直接使用IP地址,而不通过域名服务器。
- 相关的-N或--netlink或--symbolic 显示网络硬件外围设备的符号连接名称。
- -p 显示建立相关链接的 程序名【比如ssh或者nginx啥的】【program】
- -r或--route 显示Routing Table