Linux的网络可以ping通,但是linux启动的应用如tomcat / nginx等都无法访问?
问题分析:
- 这是由于Linux的安全问题默认开启了防火墙,并且禁用(不开放)所有端口。
解决思路:
- 关闭防火墙(生产不建议,不安全)
- 只开放需要使用的端口(推荐,安全)
Linux端口开放
默认Linux中的防火墙会关闭端口不允许访问,但是可以ping的通Linux的地址,所以想要访问需要配置端口开放或者关闭防火墙。
CentOS 6 处理方法
//临时关闭
service iptables stop
//禁止开机启动
chkconfig iptables off
CentOS 7 处理方法
CentOS 7版本以后防火墙默认使用firewalld
,所以CentOS 7 防火墙命令和CentOS 6 存在差异。
//临时关闭
systemctl stop firewalld
//禁止开机启动
systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
如果安装了iptables-service选择方案
//安装ip服务
yum install -y iptables-services
//关闭防火墙
service iptables stop
Redirecting to /bin/systemctl stop iptables.service
//检查防火墙状态
service iptables status
Redirecting to /bin/systemctl status iptables.service
iptables.service - IPv4 firewall with iptables
Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled; vendor preset: disabled)
Active: inactive (dead)
CentOS 7 防火墙及端口命令
防火墙相关命令
1、查看防火墙状态 : systemctl status firewalld.service
注:active是绿的running表示防火墙开启
2、关闭防火墙 :systemctl stop firewalld.service
3、开机禁用防火墙自启命令 :systemctl disable firewalld.service
4、启动防火墙 :systemctl start firewalld.service
5、防火墙随系统开启启动 : systemctl enable firewalld.service
6、重启防火墙 : firewall-cmd --reload
端口开放命令
1、查询已经开放的端口 :firewall-cmd --list-port
2、查询某个端口是否开放 :firewall-cmd --query-port=80/tcp
3、开启端口 :firewall-cmd --zone=public --add-port=80/tcp --permanent
注:可以是一个端口范围,如1000-2000/tcp
4、移除端口 :firewall-cmd --zone=public --remove-port=80/tcp --permanent
5、命令含义:
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--remove-port=80/tcp #移除端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
JDK安装
- 使用java -version检查是否有默认安装的JDK,如果有需要卸载
- 将linux的JDK安装包tar.gz上传到服务器
- tar -zxvf jdk-11.0.7_linux-x64_bin.tar.gz解压
- 配置JDK环境变量
- vi /etc/profile打开环境配置文件
#java environment
export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
- source /etc/profile让配置文件生效
- java -version如果显示jdk版本信息就是安装成功
Tomcat安装
**注意:**对于Linux需要关注防火墙是否开启,如果开启那么所有端口默认都是禁用的,就访问不到tomcat了。对于不同版本的Linux防火墙关闭或者端口开放的命令可以百度或者google可以找到答案。
- 上传tomcat压缩包并解压即可,解压命令:tar -zxvf tomcat.tar.gz
* 启动:./apache-tomcat-8.5.50/bin/startup.sh
* 暂停:./apache-tomcat-8.5.50/bin/shutdown.sh
Nginx源码安装
- 上传Nginx源码包并解压
- 安装Nginx依赖
- yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
- 进入nginx目录执行./configure命令
- 执行make命令
- 执行make install命令,执行完毕后在/usr/local/下会有一个nginx目录
- 启动: cd nginx/sbin ./nginx
- 重启:./nginx -s stop
- 重新加载nginx.conf配置文件:./nginx -s reload