ubuntu 系统 ,docker建的服务 ,其他局网机器可以通过IP:端口的方式访问。不是docker的不行。

embedded/2025/1/18 20:56:14/

根据您的描述,docker 建的服务可以通过 IP:端口的方式被局网其他机器访问,而非 docker 的服务不行,以下是可能的原因及解决方法:


网络配置方面

• 检查非 docker 服务的网络监听配置:确保非 docker 服务是监听在 0.0.0.0 上,而不是仅监听在 127.0.0.1(localhost)上。如果服务只监听在 127.0.0.1 上,那么只有本机能够访问,局网其他机器无法访问。您可以通过查看服务的配置文件或启动参数来确认监听地址,例如对于一些 web 服务,可能在配置文件中有类似`listen 0.0.0.0:端口`的配置。

• 查看系统网络设置:在 Ubuntu 系统中,检查`/etc/network/interfaces`文件或使用`ip addr`命令查看网络接口配置,确保网络接口正常工作且没有错误的配置导致其他机器无法访问。


防火墙设置方面

检查 UFW 防火墙:Ubuntu 系统中默认使用 UFW(Uncomplicated Firewall)防火墙。运行`sudo ufw status`命令查看防火墙状态和规则,确保没有规则阻止了非 docker 服务的端口访问。如果发现有阻止的规则,可以使用`sudo ufw allow 端口号`命令来允许该端口的访问。

• 检查 iptables 规则:Docker 会修改 iptables 规则来实现端口映射等功能,但有时可能会对系统的网络访问产生影响。运行`sudo iptables -L`命令查看 iptables 规则,检查是否有规则阻止了非 docker 服务的访问。如果需要,可以尝试清除一些不必要的规则或调整规则顺序来解决问题,但操作 iptables 规则需要谨慎,以免影响系统网络功能。


服务启动方式方面

• 查看服务启动脚本或命令:检查非 docker 服务的启动脚本或命令,确保没有绑定到特定的网络接口或设置了访问限制。有些服务在启动时可能会根据参数或配置文件中的设置来决定监听的地址和端口,以及是否允许远程访问。

• 尝试手动启动服务并指定监听地址:您可以尝试手动停止服务,然后使用命令行手动启动服务,并指定监听在 0.0.0.0 上,看是否能够解决问题。例如,对于一些支持命令行启动的服务,可以使用类似`./服务启动命令 --listen 0.0.0.0:端口`的方式来启动服务。


系统安全策略方面

• 检查 AppArmor 或 SELinux 等安全策略:如果您的 Ubuntu 系统启用了 AppArmor 或 SELinux 等安全策略,可能会对服务的网络访问产生限制。您可以查看相关的安全策略配置文件,或者使用相应的命令(如`aa-status`查看 AppArmor 状态)来检查是否有策略阻止了非 docker 服务的访问。如果需要,可以尝试调整安全策略或为服务设置适当的权限。


http://www.ppmy.cn/embedded/155041.html

相关文章

解决postman打开一直转圈圈的问题

Postman 打开时一直转圈圈的问题可能是由多种原因引起的。以下是一些常见的解决方法,你可以逐一尝试: 1. 重启 Postman 有时,简单的重启可以解决许多问题。 关闭 Postman。重新打开 Postman。 2. 清除缓存 Postman 有时会因为缓存问题导…

2021年前端部署的灵魂拷问

注意,缓存生效期间,浏览器是【自言自语】,和服务器无关。 此时,设置强缓存后,Network 大致变成了这样: image.png From DiskCache:从硬盘中读取。 From MemoryCache:从内存中读取&am…

Redis Cluster 集群

1. Redis Cluster 简介 Redis Cluster 是 Redis 官方提供的 Redis 集群功能。 为什么要实现 Redis Cluster? Redis 是单线程的(从网络 I/O 处理到实际的读写命令处理),无论单核 CPU 下内存多大,如果需要大量计算能力…

25/1/17 嵌入式笔记 STM32F103

#include "stm32f10x.h" // Device header #include "Delay.h" #include "OLED.h" #include "Serial.h"uint8_t RxData; //定义用于接收串口数据的变量int main(void) {/*模块初始化*/OLED_Init(); //OLED初始化/…

ubuntu20.04 docker安装

Ubuntu | Docker DocsPost-installation steps | Docker Docs # 创建目录 sudo mkdir -p /etc/docker # 写入配置文件 sudo tee /etc/docker/daemon.json <<-EOF { "registry-mirrors": [ "https://docker-0.unsee.tech", &qu…

下载文件,浏览器阻止不安全下载

背景&#xff1a; 在项目开发中&#xff0c;遇到需要下载文件的情况&#xff0c;文件类型可能是图片、excell表、pdf、zip等文件类型&#xff0c;但浏览器会阻止不安全的下载链接。 效果展示&#xff1a; 下载文件的两种方式&#xff1a; 一、根据接口的相对url&#xff0c;拼…

某讯一面,感觉问Redis的难度不是很大

前不久&#xff0c;有位朋友去某讯面试&#xff0c;他说被问到了很多关于 Redis 的问题&#xff0c;比如为什么用 Redis 作为 MySQL 的缓存&#xff1f;Redis 中大量 key 集中过期怎么办&#xff1f;如何保证缓存和数据库数据的一致性&#xff1f;我将它们整理出来&#xff0c;…

HBase深度历险

作者&#xff1a;京东物流 于建飞 简介 HBase 的全称是 Hadoop Database&#xff0c;是一个分布式的&#xff0c;可扩展&#xff0c;面向列簇的数据库&#xff0c;是一个通过大量廉价的机器解决海量数据的高速存储和读取的分布式数据库解决方案。本文会像剥洋葱一样&#xff0c…