在使用 Linux 中发布项目,常常需要开放某个端口以供请求。
这里以最常见的 tomcat 的 8080 端口为例子:
1. 开放端口
1.1 开放Linux的8080端口
vi /etc/sysconfig/iptables
进入编辑页面,在指定位置新增以下配置
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
这句要放在 -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 后面
1.2 修改完保存退出,重启防火墙服务
service iptables restart
1.3 查看端口开放信息
service iptables status
一般服务器能看到开放信息就算成功开放了。
2. 常见问题
2.1 iptables的配置文件/etc/sysconfig/iptables不存在
首先要看一下iptables是否安装了,使用service iptables status或yum info iptables看一下当前状态
[root@ecs-e25c-0001 ~]# service iptables status
Redirecting to /bin/systemctl status iptables.service
Unit iptables.service could not be found.
而在/etc/sysconfig/目录下也没有iptables文件。
解决办法:
不管防火墙关没关,都是用systemctl stop firewalld 关闭防火墙。
然后使用yum install iptables-services 安装或者更新服务
然后使用systemctl enable iptables 启动iptables
最后使用systemctl start iptables 打开iptables
2.1 linux查看端口被哪个进程占用
lsof -i:端口号
例如:
[root@ecs-e25c-0001 apache-tomcat-98080]# lsof -i:8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 17967 root 49u IPv6 272093 0t0 TCP *:webcache (LISTEN)