对于那些拥有高度限制输出的防火墙的人来说,他们只需要为每个应用程序发布所谓可靠的地址,所以我想知道是否有任何软件或命令行可以轻松监控并找出应用程序连接的 URL(HTTPS)?
现在,我想知道 WordPress 及其插件的所有地址,以及它们需要连接哪些地址来更新它们。
答案1
这里有几个命令行选项。
watch
与使用lsof
从这个答案到监控正在发生的传出网络请求,您可以使用lsof
和watch
。
完整引用答案:
您可以使用
lsof
和watch
来执行此操作,如下所示:$ watch -n1 lsof -i TCP:80,443
示例输出
dropbox 3280 saml 23u IPv4 56015285 0t0 TCP greeneggs.qmetricstech.local:56003->snt-re3-6c.sjc.dropbox.com:http (ESTABLISHED) thunderbi 3306 saml 60u IPv4 56093767 0t0 TCP greeneggs.qmetricstech.local:34788->ord08s09-in-f20.1e100.net:https (ESTABLISHED) mono 3322 saml 15u IPv4 56012349 0t0 TCP greeneggs.qmetricstech.local:54018->204-62-14-135.static.6sync.net:https (ESTABLISHED) chrome 11068 saml 175u IPv4 56021419 0t0 TCP greeneggs.qmetricstech.local:42182->stackoverflow.com:http (ESTABLISHED)
我刚刚尝试过,它非常有用。如果你使用,你可以将重复时间减少到 0.1 秒-n0
。
只是lsof
从使用 lsof 持续监控文件,您可以省去watch
并lsof
结合使用重复 ( -r
) 选项。以下内容每两秒重复一次
$ lsof -i TCP:80,443 -r 2
但输出并不那么漂亮,尽管过去的连接保留得更好:
=======
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
firefox 9542 user 27u IPv4 1068219 0t0 TCP user-300V3Z-300V4Z-300V5Z:37360->192.0.78.23:https (ESTABLISHED)
firefox 9542 user 48u IPv4 1053405 0t0 TCP user-300V3Z-300V4Z-300V5Z:45948->ec2-54-213-37-69.us-west-2.compute.amazonaws.com:https (ESTABLISHED)
=======
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
firefox 9542 user 27u IPv4 1068219 0t0 TCP user-300V3Z-300V4Z-300V5Z:37360->192.0.78.23:https (ESTABLISHED)
firefox 9542 user 48u IPv4 1053405 0t0 TCP user-300V3Z-300V4Z-300V5Z:45948->ec2-54-213-37-69.us-west-2.compute.amazonaws.com:https (ESTABLISHED)
firefox 9542 user 52u IPv4 1138942 0t0 TCP user-300V3Z-300V4Z-300V5Z:57602->kul08s01-in-f10.1e100.net:https (SYN_SENT)
firefox 9542 user 102u IPv4 1139934 0t0 TCP user-300V3Z-300V4Z-300V5Z:49102->kul09s13-in-f14.1e100.net:https (ESTABLISHED)
firefox 9542 user 110u IPv4 1138950 0t0 TCP user-300V3Z-300V4Z-300V5Z:49104->kul09s13-in-f14.1e100.net:https (SYN_SENT)
=======
...
=======
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
firefox 9542 user 27u IPv4 1068219 0t0 TCP user-300V3Z-300V4Z-300V5Z:37360->192.0.78.23:https (ESTABLISHED)
firefox 9542 user 48u IPv4 1053405 0t0 TCP user-300V3Z-300V4Z-300V5Z:45948->ec2-54-213-37-69.us-west-2.compute.amazonaws.com:https (ESTABLISHED)
firefox 9542 user 51u IPv4 1140129 0t0 TCP user-300V3Z-300V4Z-300V5Z:52284->kul09s13-in-f10.1e100.net:https (ESTABLISHED)
firefox 9542 user 108u IPv4 1137384 0t0 TCP user-300V3Z-300V4Z-300V5Z:55886->103.229.10.236:https (ESTABLISHED)
firefox 9542 user 122u IPv4 1137399 0t0 TCP user-300V3Z-300V4Z-300V5Z:55870->kul08s12-in-f1.1e100.net:https (ESTABLISHED)
firefox 9542 user 126u IPv4 1137402 0t0 TCP user-300V3Z-300V4Z-300V5Z:47370->stackoverflow.com:https (SYN_SENT)
笔记:每两秒间隔=======
。
也可以看看如何查找进程访问的 URL尽管标题很有希望,但遗憾的是这两个答案并没有似乎根据每个应用程序或每个进程提供过滤器。
其他有用的技巧lsof
如下所述,15 个 Linux lsof 命令示例(识别打开的文件),这将允许您过滤更多结果lsof
,以便您可以自定义上述命令以更符合您的口味。
答案2
您可能需要一种名为“代理”的工具,我在 snapcraft 中搜索“代理”时看到了“Zap”,这是 Ubuntu 存储库提供的一款好工具。这个“代理”可能非常技术性,但它正是您要问的技术,Ubuntu(或任何操作系统)没有特定的东西可以解决您的问题,但代理可以帮助您。
看:https://snapcraft.io/install/zaproxy/ubuntu
按照以下说明运行:https://www.zaproxy.org/docs/desktop/cmdline/例如对于 Ubuntu:java -jar zap.jar
。然后您可以配置系统代理(通常为export https_proxy='http://localhost:8080'
。
如果您在 PC 上运行此程序,而不是在与 Wordpress 相同的服务器上,那么您可能需要配置一个 Wordpress 插件,例如:https://wordpress.org/plugins/wp-proxy/
Zap 还需要进行专门配置以拦截 HTTP 流量,具体说明如下:https://www.zaproxy.org/docs/desktop/ui/dialogs/options/dynsslcert/
一旦运行,您将在 Zap 图形界面中看到所有 HTTPS 流量。
对于可以列入白名单的生产部署,这里有一个很好的答案:Squid3:仅允许某些用户访问某些网站
祝你好运!调查网络流量可能很有趣,即使一开始并不令人生畏