✏️
blog
  • README
  • 2023 11
    • expect使用
  • 2023 10
    • 通过Appium给iOS应用自动化执行脚本
  • 2023 06
    • 三种ThreadLocal详解
    • 常见限流算法总结
    • 分布式ID生成算法
  • 2023 05
    • 线上机器CLOSE_WAIT连接数异常排查
    • 多数据源引发transactional事务回滚失效
  • 2023 04
    • MySQL中BufferPool
  • 2022 12
    • Linux IO
    • Netty总结
  • 2022 04
    • Thrift
  • 2022 03
    • JVM命令总结
    • 频繁FullGC定位思路
    • Redis总结
    • Spring常见问题总结
    • Kafka总结
  • 2022 02
    • Dubbo柔性服务天池大赛总结
  • 2021 12
    • 泛型中的extends和super
    • 手写一个Spring Boot Starter
  • 2021 11
    • 常用消息队列总结
  • 2021 10
    • swagger2快速使用
    • SpringBoot接口cors跨域访问
  • 2021 08
    • 常用shell命令总结
  • 2021 05
    • 线程cpu飙升排查
    • zookeeper install
  • 2021 04
    • Java虚拟机
    • [Spring Boot](2021-04/2021-04-04-Spring Boot.md)
    • [Spring MVC](2021-04/2021-04-04-Spring MVC.md)
    • 分布式ID
    • 消息队列
    • [Spring AOP](2021-04/2021-04-05-Spring AOP.md)
    • 布隆过滤器
    • Scala内核Spark阻塞排查
  • 2020 12
    • 使用Python优雅实现tail命令
  • 2020 11
    • Spark基础架构
    • 一文搞定Git
    • Spark线上问题引发的思考
  • 2020 04
    • 使用GitBook
  • 2019 05
    • SELinux、Netfilter、iptables、firewall和ufw五者关系
    • 安装npm和nodejs
    • 访问不到云服务器中的项目
  • 2019 04
    • 二叉树中节点与度数
    • 实现会话跟踪的技术有哪些
    • 计算机操作系统-死锁
    • Semaphore Count Down Latch Cyclic Barrier
    • Java内存模型
    • 双重检查锁定
    • synchronized实现底层
    • Lock接口
    • HTTP与HTTPS的区别
    • Java中线程池
    • Java中的阻塞队列
    • 排序算法
  • 2019 03
    • MySQL中索引
    • MySQL存储引擎
    • MySQL锁机制
    • n的阶乘结果后面0的个数
由 GitBook 提供支持
在本页
  • 1. 确定本地是否可以访问
  • 2. 检查是否开启3000端口
  • 3. 检查防火墙是否关闭
  • 防火墙相关的操作(ubuntu)
  • 实例
  • 4. 检查iptables规则
  • 关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放。
  • 下面我只打开3000端口,看我是如何操作的,就是下面2个语句
  • 删除iptables规则
  • 5. 查看阿里云的安全网组的设置,将需要开放的端口加到安全组

这有帮助吗?

  1. 2019 05

访问不到云服务器中的项目

  • 项目未部署成功

  • 防火墙端口没开放

    三种解决方案:关闭防火墙,防火墙开放访问的指定端口,配置iptables

  • 安全组端口没添加

1. 确定本地是否可以访问

curl http://127.0.0.1:3000

output:

hello<网页的内容>

说明是正常的

2. 检查是否开启3000端口

netstat -an | grep 3000

output

tcp        0      0 0.0.0.0:8890            0.0.0.0:*               LISTEN

3. 检查防火墙是否关闭

ubuntu:

sudo ufw status

output:

Status: inactive //关闭
Status: active//开启

centos:

$firewall-cmd --state

not running

防火墙相关的操作(ubuntu)

关闭防火墙

sudo ufw disable

开启防火墙

sudo ufw enable

打开3000端口

sudo ufw allow 3000

防火墙重启

sudo ufw reload

启动ufw防火墙

ufw enable

启动默认防御(阻止外部联接,放行对外联接)

ufw default deny

允许其它主机访问本机53端口,协议包含tcp和udp

ufw allow 53

允许其它主机使用tcp协议访问本机25端口

ufw allow 25/tcp

ufw也可以检查 /etc/services文件,明白服务的名字及对应的端口和协议

ufw allow smtp

ufw同时支持出入口过滤。用户可以使用in或out来指定向内还是向外。如果未指定,默认是inufw allow in http # 许可访问本机http端口

禁止访问外部smtp端口,不告知“被防火墙阻止”

ufw reject out smtp

禁止本机192.168.1.1对外访问,告知“被防火墙阻止”

ufw deny out to 192.168.1.1

要删除规则,只要在命令中加入delete就行了

ufw delete deny 80/tcp

实例

设置允许访问 SSH

sudo ufw allow 22/tcp

设置允许访问 http

sudo ufw allow 80/tcp

设置允许访问 https

sudo ufw allow 443/tcp

设置允许访问 pptp

sudo ufw allow 1723/tcp

4. 检查iptables规则

查看所有规则

iptables -L

清楚所有规则

iptables -F

如果开启的防火墙,那就把添加的端口加到iptables规则里面

关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放。

下面是命令实现:

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

再用命令

iptables -L -n

查看 是否设置好, 好看到全部 DROP 了

这样的设置好了,我们只是临时的, 重启服务器还是会恢复原来没有设置的状态 还要使用 service iptables save 进行保存

service iptables save 看到信息 firewall rules 防火墙的规则 其实就是保存在 /etc/sysconfig/iptables

可以打开文件查看 vi /etc/sysconfig/iptables

下面我只打开3000端口,看我是如何操作的,就是下面2个语句

iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 3000 -j ACCEPT

再查看下 iptables -L -n 是否添加上去, 看到添加了

Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp -- 0.0.0.0/0            0.0.0.0/0           tcp dpt:22
Chain FORWARD (policy DROP)
target     prot opt source               destination
Chain OUTPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp -- 0.0.0.0/0            0.0.0.0/0           tcp spt:22

现在Linux服务器只打开了22端口,用putty.exe测试一下是否可以链接上去。 可以链接上去了,说明没有问题。

最后别忘记了保存 对防火墙的设置 通过命令:service iptables save 进行保存

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

针对这2条命令进行一些讲解吧

-A 参数就看成是添加一条 INPUT 的规则

-p 指定是什么协议 我们常用的tcp 协议,当然也有udp 例如53端口的DNS

到时我们要配置DNS用到53端口,大家就会发现使用udp协议的,而 --dport 就是目标端口,当数据从外部进入服务器为目标端口,反之,数据从服务器出去,则为数据源端口 使用 --sport,-j 就是指定是 ACCEPT 接收 或者 DROP 不接收

删除iptables规则

iptables -L INPUT --line-numbers  列出INPUT 链所有的规则  
num  target    prot opt source              destination          
1    REJECT    tcp  --  anywhere            anywhere            tcp dpt:microsoft-ds reject-with icmp-port-unreachable   
2    REJECT    tcp  --  anywhere            anywhere            tcp dpt:135 reject-with icmp-port-unreachable   

...  
...  
    删除指定的第2行规则:  
iptables -D INPUT 2

5. 查看阿里云的安全网组的设置,将需要开放的端口加到安全组

上一页安装npm和nodejs下一页2019 04

最后更新于5年前

这有帮助吗?

阿里云安全组规则.json