linux偶尔无法连接任何端口。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux偶尔无法连接任何端口。相关的知识,希望对你有一定的参考价值。

从同一个局域网的两台不通主机去访问外网的一台服务器,一台完全正常,另一台偶尔会出现无法访问该外网服务器任何端口,可以正常访问其它任何服务器,一段时间后自动恢复正常。
求解,可能是因为这台外网服务器安装了什么软件? 而拒绝某个主机连接它的任何端口
局域网俩主机系统也都是linux,或许是本地主机有什么问题?

不知道了你的是什么软件,进行什么样的访问。端口是不是随机的。
从你的描述上看,网络层出现的问题比较大。过段时间又可以,有可能是由于沿途的设备(路由器和防火墙或主机)在设置的时间内周期性的删除了链接。没删除前是不合法的链接(tcp的机制)。
建议从网络抓包看看。两边都同时抓包。
参考技术A 看看你的SElinux服务关没有:
你可以在网上百度如何关闭SELinux 有很多这样的资料;SE Linux是Linux系统的一个自我保护机制;有些有通信他会认为是不安全的就把所有的访问端口给禁止一段时间;过了就好了追问

SELinux status: disabled
一直是关闭的。只是某个主机访问服务器偶尔会被拒绝,后面又自动好了。
当它被拒绝的时候,其它任何主机是可以正常访问服务器的。

追答

喔 这种问题一般可以抓包分析一下,不过要分析报文需要熟悉网络各种通信协议
平时的经验是先重启系统试试 不行在重做系统

追问

嗯,谢谢。下次出现问题,先重启本地的主机,再重启外网服务器。

本回答被提问者采纳
参考技术B 中间做了防火墙策略?追问

防火墙关闭时,一样会出现该问题。
何况两个局域网主机使用的是同一个外网IP地址。

追答

我的意思是想说这两台服务器中间有防火墙服务器?做了安全设置?

配置为侦听端口 80 的 Tomcat 连接器无法启动

【中文标题】配置为侦听端口 80 的 Tomcat 连接器无法启动【英文标题】:The Tomcat connector configured to listen on port 80 failed to start 【发布时间】:2017-11-21 22:31:04 【问题描述】:

我运行 webapp https://github.com/donhuvy/mycustomer 我面临错误

说明:

。 该端口可能已在使用中,或者连接器可能配置错误。

行动:

验证连接器的配置,识别并停止任何进程 正在侦听端口 80,或将此应用程序配置为侦听 在另一个端口上。

这是我的日志https://gist.github.com/donhuvy/93210850f955f9ddbc00ab735a0ade18#file-terminal-log-L191

我已经通过命令检查了 80 端口

sudo lsof -i TCP:80 | grep LISTEN

但结果什么都不是。如何解决? (我使用 macOS 10.12.5) 更新:

运行 Sencha 客户端(在目录client 内)

sencha web -port 8082 start

我将 Spring Boot 端口更改为 8082:

APPLICATION FAILED TO START

Description:

The Tomcat connector configured to listen on port 8082 failed to start. The port may already be in use or the connector may be misconfigured.

Action:

Verify the connector's configuration, identify and stop any process that's listening on port 8082, or configure this application to listen on another port.

【问题讨论】:

80 端口上是否已经有东西在运行?防火墙是否会阻止您使用该端口? 我的/etc/hosts127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost 正如我所说,我使用命令检查端口 80,结果什么都没有。 先把端口改成smth。否则检查 - 如果有效,80 已被使用,尝试查找谁在使用它。如果不起作用 - 检查其他配置,它不是端口 我尝试将 Spring Boot 端口更改为 8082,并运行 Sencha 客户端,但出现同样的错误。 【参考方案1】:

如果您使用配置的端口 80 启动 SpringBoot 应用程序,可能会出现 2 个问题:

    需要以 root 权限执行命令。只需在启动命令前添加“sudo”即可。这对我有帮助。

    端口正在被另一个应用程序使用。要检查它,您可以使用以下命令: "netstat -l";

【讨论】:

【参考方案2】:

linux上1024以下的端口只有root才能打开,所以默认限制80端口

如果你想在 80 端口上发布你的应用,你需要将请求从 80 端口重定向到你将运行你的 springapp 的端口(例如 8080)端口

您可以使用默认允许在端口 80 上工作的 apache2 服务器,并且可以将您的请求转发到 tomcat

来源:Spring Boot running app on port 80

【讨论】:

这由“java.net.SocketException: Permission denied”指示。如果另一个程序已绑定到端口 80(其他答案建议),您将收到另一条错误消息,例如“端口已在使用中”。顺便说一句:1024 以下的端口在 macOS 上的工作方式相同(如问题中所述)。 非常感谢。我在 Manjaro 遇到了这个问题。【参考方案3】:

80 端口已被另一个应用程序使用。更改tomcat的post no。而且你不能直接在80 post上运行tomcat你需要安装authbind,作为参考你可以点击下面的链接:-

以下作品:

apt-get install authbind

首先,在 /etc/default/tomcat7 文件中设置 AUTHBIND=yes

sudo touch /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
sudo chown tomcat7 /etc/authbind/byport/80

参考:http://georgik.sinusgear.com/2012/03/10/tomcat-7-listen-on-port-80-linux-debian/comment-page-1/

http://2ality.com/2010/07/running-tomcat-on-port-80-in-user.html

【讨论】:

什么是tomcat的post no?

以上是关于linux偶尔无法连接任何端口。的主要内容,如果未能解决你的问题,请参考以下文章

ADB 以前是无线连接,现在无法连接,出现双端口错误(无法连接 *.*.*.*:5555:5555)

Linux部署Tomcat踩的坑以及解决方案8080无法访问日志显示XX端口被占用修改默认端口无法提供安全连接

Linux部署Tomcat踩的坑以及解决方案8080无法访问日志显示XX端口被占用修改默认端口无法提供安全连接

windows server 2008 r2 +VM8安装的linux 系统 映射端口22 为啥无法连接虚拟机?

Mysql 数据库偶尔连接不上 怎么回事?

xshell无法连接Linux虚拟机