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