为什么我在Linux部署的Springboot服务,部署成功之后,使用netstat -ntlp | grep java 命令查看对应服务监听的端口,只看到有tcp6的监听,没有tcp的监听?

这篇具有很好参考价值的文章主要介绍了为什么我在Linux部署的Springboot服务,部署成功之后,使用netstat -ntlp | grep java 命令查看对应服务监听的端口,只看到有tcp6的监听,没有tcp的监听?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为什么我在Linux部署的Springboot服务,部署成功之后,使用netstat -ntlp | grep java 命令查看对应服务监听的端口,只看到有tcp6的监听,没有tcp的监听?

这种情况可能是由于 Spring Boot 默认配置使用了 IPv6 地址而没有使用 IPv4 地址。在较新的 Linux 发行版上,IPv6 通常是默认开启的。实际上,如果你的服务正在监听 IPv6 的通配地址 ::,那么它将同时监听 IPv4(0.0.0.0)和 IPv6(::)的所有地址。换句话说,仅看到 tcp6 监听并不意味着服务无法处理 IPv4 连接。

在 Spring Boot 中,默认情况下,server.address 属性没有配置。这意味着应用程序将绑定到所有可用的网络接口(IP 地址)。换句话说,当没有显式配置 server.address 时,服务器将监听所有 IPv4(0.0.0.0)和 IPv6(::)地址。如果您需要将应用程序绑定到特定的 IP 地址,您需要显式设置 server.address 属性。

要解决这个问题,你可以尝试以下方法:

  1. 在你的 application.propertiesapplication.yml 文件中设置 server.address 属性,以便显式使用 IPv4 地址。例如:

    server.address=0.0.0.0
    

    这将会使服务器监听所有 IPv4 和 IPv6 地址。

  2. 如果你仍然希望只绑定到 IPv4 地址,你可以通过设置 Java 系统属性来禁用 IPv6。可以通过添加以下选项到你的 Java 启动命令行中来完成:

    -Djava.net.preferIPv4Stack=true
    

    这将告诉 Java 虚拟机在创建新的套接字时优先使用 IPv4。

  3. 确保在操作系统中启用了 IPv4。这取决于你的 Linux 发行版及其配置,通常,IPv4 是默认启用的。

请注意,最好还是支持 IPv6,因为它是迈向现代网络的未来。使用第一个方法(设置 server.address)会确保你的应用同时支持 IPv4 和 IPv6。

Linux机器的Ipv6模块被禁用。

如果你也遇到这种情况,意味着,你使用Springboot默认的方式启动服务之后,可能存在通过ipv4不能访问的情况。

如果网络中路由器禁止了ipv6的转发,那么机器监听tcp6也会导致服务不能正常访问

这时,要么对网络路由器进行配置。要么将机器本身的ipv6全部禁用。
方法:
sysctl net.ipv6.conf.all.disable_ipv6=1 命令是一个系统控制(sysctl)命令,用于在 Linux 系统中完全禁用 IPv6。这个命令会配置内核参数,以在所有网络接口上禁止 IPv6。当设置为 1 时,IPv6 将被禁用;当设置为 0 时,IPv6 将被启用。

要使用此命令禁用 IPv6,请在终端中运行以下命令:

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1

请注意,此命令会立即禁用 IPv6,但在系统重启后更改不会保留。

要永久禁用 IPv6,您需要编辑 /etc/sysctl.conf 文件。将以下行添加到文件末尾:

net.ipv6.conf.all.disable_ipv6=1

保存文件并退出。接下来,要加载更改,请运行以下命令:

sudo sysctl -p

现在,IPv6 已禁用且在系统重启后仍然有效。如果以后需要重新启用 IPv6,只需将值更改为 0 ,然后重新加载配置即可。

请注意,在禁用 IPv6 之前,请确保确认有关禁用 IPv6 的安全性和稳定性的潜在影响。IPv6 是为了满足互联网持续增长的需求而开发的,一些应用程序和服务可能已经开始依赖这一较新的网络协议。在这种情况下,禁用 IPv6 可能会导致连接问题或性能下降。在实施此更改之前,请确保了解所有的潜在影响。文章来源地址https://www.toymoban.com/news/detail-738747.html

到了这里,关于为什么我在Linux部署的Springboot服务,部署成功之后,使用netstat -ntlp | grep java 命令查看对应服务监听的端口,只看到有tcp6的监听,没有tcp的监听?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 有了Spring为什么还需要SpringBoot呢

    目录 一、Spring缺点分析 二、什么是Spring Boot 三、Spring Boot的核心功能 3.1 起步依赖 3.2 自动装配 1. 配置文件和依赖太多了!!! spring是一个非常优秀的轻量级框架,以IOC(控制反转)和AOP(面向切面)为思想内核,极大简化了JAVA企业级项目的开发。虽然Spring的组件代码是轻

    2024年02月08日
    浏览(47)
  • springboot~InvocationHandler中为什么不能使用@Autowired

    @Autowired 是 Spring Framework 中用于自动注入依赖的注解,通常情况下可以正常工作,但有一些情况下可能无法获取到 bean 对象: Bean未定义或未扫描到 :如果要注入的 bean 没有在 Spring 上下文中定义或者没有被正确扫描到, @Autowired 将无法找到要注入的 bean。确保你的 bean 配置正

    2024年02月10日
    浏览(55)
  • APP上线为什么要提前部署安全产品呢?

    一般平台刚上线或者日活跃量比较高的时候,很容易成为攻击者的目标,服务器如果遭遇黑客攻击,资源耗尽会导致平台无法访问,业务也无法正常开展,服务器一旦触发黑洞机制,就会被拉进黑洞很长一段时间,什么也操作不了。用户也会随之批量的流失,更有可能被入侵

    2024年02月12日
    浏览(50)
  • SpringBoot有的时候引入依赖为什么不用加版本号

    有的小伙伴做项目时候,引入新的包时候,会有疑问,为什么有些依赖需要加版本号,有些依赖不需要加版本号?不加版本号的依赖,版本号都写在哪里了呢? 内置的依赖可以不加版本号 这是因为SpringBoot内置了很多依赖,引入这些内置的依赖时不需要加版本号,相反,如果

    2024年01月19日
    浏览(62)
  • 1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?

    大家好,我是晓星航。今天为大家带来的是 JavaEE 进阶导读 相关的讲解!😀 学习框架相当于从“小作坊”到“工厂”的升级,小作坊什么都要自己做,工厂是组件式装配,特点就是高效。 框架更加易用、简单且高效。 框架主要体现在思维方式和编程思想上,与代码语言无关

    2024年04月15日
    浏览(47)
  • SpringBoot复习:(34)@EnableWebMvc注解为什么让@WebMvcAutoconfiguration失效?

    它导入了DelegatingWebMvcConfiguration 它会把容器中的类型为WebMvcConfigurer的bean注入到类型为WebMvcConfigurerComposite的成员变量configurers中。 可以看到它继承了WebMvcConfigurerSupport类 而WebMvcConfigureAutoConfiguration类定义如下 可以看到一个@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)注解。 所

    2024年02月13日
    浏览(44)
  • SpringBoot 日志文件:日志的作用?为什么要写日志?

    日志、日志,日志就是记录发生了什么。为啥要记录发生了什么呢?想象⼀下,如果程序报错了,不让你打开控制台看⽇志,那么你能找到报错的原因吗?因此我们需要记录程序的行为,通过这些行为能让我们更好的发现和定位错误所在位置。 除了发现和定位问题之外,还可

    2024年02月11日
    浏览(42)
  • 《让云落地 云计算服务模式》第一章 [为什么是云计算,为什么是现在] 学习

    “时间会带来标准和最佳实践” 1.云计算的由来 云计算是从中央主机时代,向个人计算机时代诞生带来的分布式主从架构时代,以及企业能够通过覆盖全球的计算机网络联系世界的互联网时代的自然发展。 每一次新的技术革命都会伴随着阻力。早期的试用者和风险承受者会

    2024年04月28日
    浏览(41)
  • 深度剖析SpringBoot自动配置原理,为什么SpringBoot能为我们做那么多东西

    本文基于 spring-boot-2.2.6.RELEASE 版本的源码进行说明,不同版本的源码可能会有一些区别。 要清楚SpringBoot自动配置原理,就要明白 @SpringBootApplication 注解的组成,此注解主要是这三个注解组成: @SpringBootConfiguration , @EnableAutoConfiguration , @ComponentScan 。 下面是源码: @SpringBo

    2024年02月13日
    浏览(41)
  • 【Linux(0)】为什么要学习Linux,为什么互联网公司在招聘时,会提出要有Linux经验,及其使用;一些Linux常见指令

    💓作者简介: 加油,旭杏,目前大二,正在学习 C++ , 数据结构 等👀 💓作者主页:加油,旭杏的主页👀 ⏩本文收录在:再识C进阶的专栏👀 🚚代码仓库:旭日东升 1👀 🌹欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖        在学习完C语言后,紧接着,我们要来 学习Li

    2024年02月05日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包