每次我打开电脑并尝试
$ lsof -i :80
我明白了
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME firefox
3082 totoXXX 41u IPv4 100396 0t0 TCP
totoXXX-PC-E15-Gen-2:39000->yyz12s07-in-f3.1e100.net:http
(ESTABLISHED) firefox 3082 totoXXX 93u IPv4 45722 0t0 TCP
totoXXX-PC-E15-Gen-2:49470->82.221.107.34.bc.googleusercontent.com:http
(ESTABLISHED) firefox 3082 totoXXX 113u IPv4 53661 0t0 TCP
totoXXX-PC-E15-Gen-2:49478->82.221.107.34.bc.googleusercontent.com:http
(ESTABLISHED) firefox 3082 totoXXX 125u IPv4 58753 0t0 TCP
totoXXX-PC-E15-Gen-2:47658->server-3-161-216-55.yul62.r.cloudfront.net:http
(ESTABLISHED) firefox 3082 totoXXX 129u IPv4 58755 0t0 TCP
totoXXX-PC-E15-Gen-2:43216->yyz12s07-in-f3.1e100.net:http
(ESTABLISHED) firefox 3082 totoXXX 187u IPv4 57077 0t0 TCP
totoXXX-PC-E15-Gen-2:37900->192.229.211.108:http (ESTABLISHED) firefox
3082 totoXXX 188u IPv4 57076 0t0 TCP
totoXXX-PC-E15-Gen-2:37892->192.229.211.108:http (ESTABLISHED) firefox
3082 totoXXX 190u IPv4 57079 0t0 TCP
totoXXX-PC-E15-Gen-2:37926->192.229.211.108:http (ESTABLISHED) firefox
3082 totoXXX 192u IPv4 57078 0t0 TCP
totoXXX-PC-E15-Gen-2:37910->192.229.211.108:http (ESTABLISHED) firefox
3082 totoXXX 194u IPv4 57080 0t0 TCP
totoXXX-PC-E15-Gen-2:37938->192.229.211.108:http (ESTABLISHED) firefox
3082 totoXXX 202u IPv4 66105 0t0 TCP
totoXXX-PC-E15-Gen-2:33126->a23-33-46-35.deploy.static.akamaitechnologies.com:http
(ESTABLISHED) firefox 3082 totoXXX 203u IPv4 66106 0t0 TCP
totoXXX-PC-E15-Gen-2:33134->a23-33-46-35.deploy.static.akamaitechnologies.com:http
(ESTABLISHED) firefox 3082 totoXXX 204u IPv4 66107 0t0 TCP
totoXXX-PC-E15-Gen-2:33146->a23-33-46-35.deploy.static.akamaitechnologies.com:http
(ESTABLISHED) firefox 3082 totoXXX 205u IPv4 66108 0t0 TCP
totoXXX-PC-E15-Gen-2:33156->a23-33-46-35.deploy.static.akamaitechnologies.com:http
(ESTABLISHED) firefox 3082 totoXXX 206u IPv4 66109 0t0 TCP
totoXXX-PC-E15-Gen-2:33170->a23-33-46-35.deploy.static.akamaitechnologies.com:http
(ESTABLISHED) firefox 3082 totoXXX 216u IPv4 80777 0t0 TCP
totoXXX-PC-E15-Gen-2:57830->a-0003.a-msedge.net:http (ESTABLISHED)
firefox 3082 totoXXX 217u IPv4 80778 0t0 TCP
totoXXX-PC-E15-Gen-2:57836->a-0003.a-msedge.net:http (ESTABLISHED)
firefox 3082 totoXXX 219u IPv4 57119 0t0 TCP
totoXXX-PC-E15-Gen-2:37952->192.229.211.108:http (ESTABLISHED) firefox
3082 totoXXX 253u IPv4 76362 0t0 TCP
totoXXX-PC-E15-Gen-2:43230->yyz12s07-in-f3.1e100.net:http
(ESTABLISHED) firefox 3082 totoXXX 288u IPv4 76361 0t0 TCP
totoXXX-PC-E15-Gen-2:43222->yyz12s07-in-f3.1e100.net:http
(ESTABLISHED) firefox 3082 totoXXX 294u IPv4 87975 0t0 TCP
totoXXX-PC-E15-Gen-2:38980->yyz12s07-in-f3.1e100.net:http
(ESTABLISHED) firefox 3082 totoXXX 315u IPv4 96441 0t0 TCP
totoXXX-PC-E15-Gen-2:43212->server-3-161-216-55.yul62.r.cloudfront.net:http
(ESTABLISHED) firefox 3082 totoXXX 319u IPv4 96442 0t0 TCP
totoXXX-PC-E15-Gen-2:43218->server-3-161-216-55.yul62.r.cloudfront.net:http
(ESTABLISHED) firefox 3082 totoXXX 364u IPv4 100389 0t0 TCP
totoXXX-PC-E15-Gen-2:43228->server-3-161-216-55.yul62.r.cloudfront.net:http
(ESTABLISHED) firefox 3082 totoXXX 365u IPv4 100390 0t0 TCP
totoXXX-PC-E15-Gen-2:43232->server-3-161-216-55.yul62.r.cloudfront.net:http
(ESTABLISHED) firefox 3082 totoXXX 374u IPv4 109303 0t0 TCP
totoXXX-PC-E15-Gen-2:46512->cloudproxy10022.sucuri.net:http
(ESTABLISHED) firefox 3082 totoXXX 386u IPv4 92828 0t0 TCP
totoXXX-PC-E15-Gen-2:44422->104.18.21.226:http (ESTABLISHED) firefox
3082 totoXXX 405u IPv4 111699 0t0 TCP
totoXXX-PC-E15-Gen-2:54728->192.229.211.108:http (ESTABLISHED) firefox
3082 totoXXX 406u IPv4 109305 0t0 TCP
totoXXX-PC-E15-Gen-2:53184->104.18.15.101:http (ESTABLISHED)
我不是 Linux 大师。我经常做
sudo lsof -t -i tcp:80 -s tcp:listen | sudo xargs kill
在我的本地应用程序堆栈 nginx 可以运行之前停止它。
但为什么我会得到这个?以及如何停止在我的所有 Linux 启动上出现此问题?
答案1
在现代系统中,如果您lsof
以普通用户身份运行,系统可能会限制您可以获得的信息,以便您只能获得有关您自己的流程的信息。当您运行时lsof -i :80
,该命令还会列出您的用户帐户上正在使用的进程本地端口80或连接到远程端口80。
第一类可能会停止nginx
启动;你的firefox
属于第二类。
而且由于在端口 80 中运行的任何 Web 服务器都不是作为常规用户帐户运行的(因为常规用户无法访问本地端口 <1024),因此简单的lsof
命令 withoutsudo
将无法看到真正的罪魁祸首。
因此,您lsof
生成的列表sudo
不仅会列出firefox
有关您的实际问题的“误报”,而且还无法识别真正的问题,因为它没有根权力,需要检查系统上的所有进程。
但当你跑步时
sudo lsof -t -i tcp:80 -s tcp:listen | sudo xargs kill
它将以 root 身份运行lsof
和kill
,因此该命令将找到正在侦听的任何内容本地 TCP 端口 80并杀死它。
要查明是什么占用了本地端口 80,只需运行命令的第一部分(不带开关)-t
:
sudo lsof -i tcp:80 -s tcp:listen
答案2
IP 连接由 5 个值定义:
- 协议,在本例中为 TCP
- 源IP,在你的情况下是属于的IP
totoXXX-PC-E15-Gen-2
- 源端口,即输出中 30000 到 64000 之间的数字
- 目标地址,例如 IP
82.221.107.34.bc.googleusercontent.com
- 目标端口,位于
http
您的输出中
这就是你的lsof
报告。高端口号由您系统上的 Firefox 使用,端口 80 (HTTP) 由目标系统上的 Web 服务器使用。
HTTP 端口 80 是您进行连接的位置。这是服务器监听的内容。除非您控制服务器,否则您无法更改它。
你会得到这个,因为你浏览网页。这是来自浏览器的正常互联网流量。
要阻止 Firefox 连接到网络服务器上的端口 80,需要采取严厉措施。iptables
阻止流量的规则、在 Firefox 上安装插件、使用代理都可能有效,但会削弱您的网络浏览体验。
还不清楚为什么您应该停止连接到这些服务器上的端口 80。