Java 使用spring boot、tcpdump和docker捕获所有主机网络
我有一个spring启动应用程序。根据请求,它执行tcpdump,如下所示Java 使用spring boot、tcpdump和docker捕获所有主机网络,java,spring,spring-boot,docker,tcpdump,Java,Spring,Spring Boot,Docker,Tcpdump,我有一个spring启动应用程序。根据请求,它执行tcpdump,如下所示 String cmd=“tcpdump-n host”+this.host; processprocess=Runtime.getRuntime().exec(cmd); InputStream=process.getInputStream(); ... 我想将此应用程序dockerize以在linux以外的其他操作系统上工作,因此我准备了Dockerfile: FROM openjdk:15-alpine RUN
String cmd=“tcpdump-n host”+this.host;
processprocess=Runtime.getRuntime().exec(cmd);
InputStream=process.getInputStream();
...
我想将此应用程序dockerize以在linux以外的其他操作系统上工作,因此我准备了Dockerfile:
FROM openjdk:15-alpine
RUN apk --no-cache add tcpdump
COPY target/app.jar /usr/src/app.jar
CMD java ... (runs spring app)
和docker作曲
版本:“3.5”
服务:
服务名称:
网络模式:主机
容器名称:服务名称
建造:
上下文:。
环境:
-TZ=欧洲/华沙
-spring.profiles.active=development
-spring.liquibase.context=development
我希望network\u模式:host
让docker使用主机网络,这样它就可以被扫描,并且可以根据spring应用程序的请求接收数据,但测试表明情况并非如此。为什么以及如何解决这个问题
我在信中读到:
因为Docker Desktop中实现网络的方式
在Windows中,您无法在主机上看到docker0接口。这
接口实际上在虚拟机中
这是否意味着我无法从windows上的docker连接到主机Machinine?我怎样才能避免这种情况?您是否尝试了解析为主机IP的主机.docker.internal?像snipet中显示的
tcpdump-n host.docker.internal
host是指我们执行tcpdump的主机/网站,例如YouTube.comSo,而您的问题提到获取主机网络的详细信息。您能否提供更多关于您在这里通过tcpdump
试图实现的目标的详细信息?您是否正在尝试检查是否有对YouTube.com或类似主机名的查询?目标是让应用程序在用户计算机上运行,以扫描特定网站并保存它。