Centos7下启用端口

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)

from:https://blog.youkuaiyun.com/zp1996323/article/details/52336851

今天写了一下node的小demo,于是想放到阿里云服务器上,但是访问时却发生了错误。考虑了下,觉得问题在于端口号上,我写的nodedemo是监听的3000端口,然而linux下有防火墙默认只有80端口开放,于是尝试了下将服务器的3000端口打开,期间还是遇坑不少,下面就梳理下整个过程:

关闭防火墙

网上的大部分资料都是用iptables防火墙的,但是阿里云的centos 7默认防火墙是firewall。最为简单的方法其实就是关闭我们的防火墙:

  • 查看下防火墙的状态:
systemctl status firewalld
  • 1

这里写图片描述

  • 关闭防火墙:
systemctl stop firewalld
  • 1

这样就解决了,在访问下ip地址:端口号就可以看到所写的应用啦! 
但是这样的问题是很不安全,其实可以将firewall服务禁用,应用iptables服务(网上大部分启用端口的资料都是基于iptables服务)。

安装iptables

由于没有防火墙会造成不安全,所以给服务器安装一应用更广的防火墙iptables,首先要禁用firewall,通过yum安装iptables

systemctil disable firewalld
yum install -y iptables-services
  • 1
  • 2

启动iptables

systemctl start iptables
  • 1

启动后可以通过systemctl status iptables查看状态。

更改iptables规则

  • iptables文件备份下:
cp -a /etc/sysconfig/iptables /etc/sysconfig/iptables.bak
  • 1
  • 设置 INPUT 方向所有的请求都拒绝
iptables -P INPUT DROP
  • 1
  • 放开所需端口
iptables -I INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -I INPUT -p tcp --dport 3000 -m state --state NEW -j ACCEPT
  • 1
  • 2
  • 保存规则
iptables-save > /etc/sysconfig/iptables
  • 1
  • 设置为开机启动并且重启
systemctl enable iptables.service
systemctl reboot
  • 1
  • 2

这样就将所需的端口3000启用,进入到目录下运行node app.js,就可以来看nodedemo啦! 
安利下一个小的脚手架: 
https://github.com/zp1996/lsgo-cli

### 如何在 CentOS 7 中使用 iptables 开放指定端口CentOS 7 上,默认情况下可能安装并启用了 `firewalld` 而不是传统的 `iptables`。如果需要使用 `iptables` 来开放特定端口,则需先确认其已启用并运行。 #### 确认 iptables 是否启动 可以通过以下命令检查 `iptables` 的状态: ```bash sudo systemctl status iptables ``` 如果没有启动,可以使用以下命令来启动和设置开机自启: ```bash sudo systemctl start iptables sudo systemctl enable iptables ``` #### 添加规则以开放特定端口 要通过 `iptables` 打开端口,可按照如下方式操作: 1. **打开 TCP 端口** 如果需要开放某个具体的 TCP 端口(例如 80),则执行以下命令[^1]: ```bash sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT ``` 2. **打开 UDP 端口** 若要开放一个 UDP 端口(例如 53),则应使用此命令: ```bash sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT ``` 3. **保存更改** 修改后的规则不会自动保存,在重启后会丢失。因此需要手动保存当前的 `iptables` 规则集: ```bash sudo service iptables save ``` 4. **验证规则是否生效** 可以查看现有的 `iptables` 规则列表以确保新添加的规则存在: ```bash sudo iptables -L -n ``` #### 停用 firewalld (如有必要) 由于默认情况下 CentOS 7 启动了 `firewalld` 并禁用了 `iptables`,所以为了防止冲突,建议停用 `firewalld` 或者仅选择其中一个工具进行管理。停止并禁用 `firewalld` 的方法如下: ```bash sudo systemctl stop firewalld sudo systemctl disable firewalld ``` 完成上述步骤之后即可成功利用 `iptables` 实现对所需端口的开放。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值