访问不到云服务器中的项目
项目未部署成功
防火墙端口没开放
三种解决方案:关闭防火墙,防火墙开放访问的指定端口,配置iptables
安全组端口没添加
1. 确定本地是否可以访问
curl http://127.0.0.1:3000output:
hello<网页的内容>说明是正常的
2. 检查是否开启3000端口
netstat -an | grep 3000output
tcp 0 0 0.0.0.0:8890 0.0.0.0:* LISTEN3. 检查防火墙是否关闭
ubuntu:
sudo ufw statusoutput:
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/tcpufw也可以检查 /etc/services文件,明白服务的名字及对应的端口和协议
ufw allow smtpufw同时支持出入口过滤。用户可以使用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/tcp4. 检查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 25. 查看阿里云的安全网组的设置,将需要开放的端口加到安全组
最后更新于
这有帮助吗?