linux端口怎么永久关闭

抱歉,Linux防火墙和端口管理方法太全面了。
就像教科书一样……不过没关系。
我将解释如何使用它以确保它实用。

上周一位客户问我,他正在使用 CentOS 8 ,想要关闭 8 08 0 端口。
我让他按照你的步骤操作。
首先检查它是否使用firewalld或iptables。
CentOS 7 + 基本上使用firewalld。

Firewalld 比 iptables 更容易使用。
如果您使用的是 CentOS 7 或更高版本,只需使用以下命令: 巴什 firewall-cmd --zone=public --remove-port=8 08 0/tcp --permanent
所以你需要重新加载: 巴什 firewall-cmd --reload
最后检查: 巴什 firewall-cmd --list-ports
如果没有看到8 08 0/tcp,则说明关闭成功。

如果客户使用的是CentOS 6 等旧版本,则只能使用iptables。
命令有点长: 巴什 iptables -A INPUT -p tcp --dport 8 08 0 -j DROP
然后保存规则,不然重启就白费了: 巴什 iptables save
iptables服务对于初学者来说是一件很容易学习的事情。
如果规则错误,可能会导致整个服务器无法访问,所以要特别小心。

还有一种情况,比如你发现8 08 0端口被一个奇怪的脚本占用,一直运行,停不下来。
这时候首先需要找到进程ID: 巴什 netstat -tlnp | netstat -tlnp | grep 8 08 0
或使用 ss 命令: 巴什 SS-tlnp| grep 8 08 0
看到PID后,直接停止: 巴什 杀死-9 PID
但是!此方法只是一个临时解决方案。
如果该进程下次启动,该端口将再次被占用。
所以我们需要从根源上修复它,无论是启动脚本还是systemd服务。
如果是脚本,则在/etc/rc.local或/etc/init.d/中找到并删除或注释掉它。
如果它是 systemd 服务,请使用: 巴什 systemctl禁用服务名
最常见的情况,比如禁用SSH 2 2 端口,肯定不行,远程访问也就被淘汰了。
此时需要检查端口被哪个服务占用: 巴什 systemctl list-units --type=service | systemctl list-units --type=service | grep 2 2
如果是sshd服务,先停止: 巴什 systemctl 停止 sshd
然后禁用: 巴什 systemctl禁用sshd
最后检查: 巴什 systemctl is-enabled sshd
如果显示为disabled,则表示真正关闭了。

我遇到的坑是,我曾经帮朋友禁用了HTTP 8 0端口,结果忘记了备份规则,禁用后就无法登录了。
我不得不重新安装系统...所以你提到的备份规则特别重要,尤其是在使用firewalld时。
如果出错了,重新添加规则就很费力了。

最后,说实话,像Ubuntu这样的发行版使用ufw防火墙,命令也不同,所以你说的“不同Linux发行版命令略有不同”这一点需要强调。
上次我帮朋友在Ubuntu上禁用端口时,我只是使用ufw来完成,这与firewalld完全不同。

但是,在向客户解释这一点时,您必须首先确认他们使用的是哪个发行版以及他们使用的是哪个防火墙工具,然后逐步进行。
如果您以前从未尝试过某个命令,请先在虚拟机中尝试,而不是在来宾计算机上键入它。

怎么关闭linux的端口?

说实话,当谈到Linux中的防火墙时,我仍然在摸着石头过河。
我提到的每一步都要经过坑才能知道门在哪里。
以我上次对客户端服务器进行安全加固为例,它只是投下了一颗炸弹。

先说说端口状态的确认级别。
我有一个客户端,其服务器突然无法连接到数据库,当日志点击时我很困惑。
最后,人们发现,遗忘是使用先前证据的临时停靠点。
这时候ss命令就比netstat要好很多了,特别是在大型服务器上。
ss-tulnp 运行速度比 netstat 快两倍多。
记得有一次,ss模块的运维系统使用错误。
结果,整个网络被嵌入。
经过两个小时的排查,发现-t参数使用得太过猛了。
所以我说,在你确认端口之前,首先要确保你正确使用了命令参数。

就 iptables 而言,我几乎关闭了所有生产机器。
它是一个辅助服务器,我已经调换了REFER链规则。
结果我连内网其他设备都画不出来。
这时候REJECT和DROP的区别就出来了——REJECT会发送拒绝消息,客户端会收到错误消息;我直接摔倒了,客户端就会傻傻的认为网络好。
建议初学者从第一次扔开始,改正错误还是可以看到效果的。

保存配置这一步也有陷阱。
当我完成CentOS6 上的说明后,我以为重新启动就可以了,但是我第一次检查iptables系统时,它又回到了原来的状态。
输入信息后发现需要使用iptables来保存。
后来切换到CentOS7 +后,使用iptables-save > /etc/sysconfig/iptables就搞定了。
必须牢记这种区别,因为不同版本的系统运行方式不同。

说到这两点,我们强烈建议优先停止合规。
我帮朋友做了安全测试,屏蔽了SSH端口。
因此,当他的生计被剥夺时,他立即被杀。
后来改用systemctl停止sshd,问题就解决了,不影响其他服务。
当然,对于你提到的Nginx和MySQL之类的,在停止服务之前你应该考虑备份和业务影响。

终于有关于云服务器的消息了。
我对此印象特别深刻。
我在阿里云配置了安全组后,但是本地iptables发生了变化,安全组没有同步到云端。
所以我还是可以打开外门的。
然后我就担心得他满头大汗,最后发现他在云端添加了安全组规则来安慰。
教训是,本地防火墙和云安全组必须同时更改,否则会出现各种愚蠢的问题。

所以在搭建Linux防火墙的时候不要只看说明书,一定要结合实际场景。
检查测试环境,生产环境使用firewalld/ufw,检查云服务器上的安全组。
这些都是要详细记住的。
说实话,每次遇到防火墙问题,我都会先回想自己遇到的坑,然后慢慢排查。

php没有启动9000端口怎么解决

PHP 端口 (IX) 未开放?看这里。

1 .首先查看端口是谁的 Windows
Windows:输入CMD netstat -ano 找到9 000端口的PID
Linux/macOS:lsof-i:9 000 或 netstat-tulnp|grep9 000
一旦找到PID,使用驱动程序或kill-9 PID将其杀死
2 PHP宗教不正常吗?
PHP-FPM:sudo systemctl 重新启动 php-fpm
安装在服务器上:php -S1 2 7 .0.0.1 :9 000
3 .检查进程状态
Linux/macOS: ps aux|grep php-fpm
Windows:在任务管理器中查找 php-cgi.exe
异常请重新启动
4 .尝试换个端口
PHP-FPM:更改 /etc/php/7 .4 /fpm/pool.d/www.conf 中的监听
内置服务器:php -S1 2 7 .0.0.1 :9 001
具体细节我记不太清了,但大概是的。
让我们先这样做。