Centos Linux 系统上修改 服务端口号总结

今天在配置 httpd 服务的时候遇到了不小的挫折,记录一下,以供读者参考。
事情背景: 在天翼云服务器上安装 http 服务后,可以正常启动服务,但是使用外网 ip:80 的形式无法访问,在本地 使用 curl localhost:80 可以正常返回,在使用外网 ip:3306 连接 mysql 的时候可以正常使用 。由此可以排除外网连通性问题,预判是端口 号配置的问题。 使用 nmap -Pn ip 查出 80 端口显示的是 filter 状态,3306 端口 是 open 状态,由此可以 确定 是 端口配置的问题了。 仔细检查配置后,发现配置并没有问题。最后去问天翼云客服,得到答复说, 80, 8080, 443 这些端口在云服务上默认是关闭的,开通这些端口需要备案后才能使用。不想备案的话,就选择绑定其它的端口号。这个就是事情背景,如果你是使用云服务商的服务器,这个地方就需要注意了。

在修改端口号的过程中,也遇到了几个问题,在这里总结一下。
以 http 服务为 例,修改端口,通常都需要分两种情况:
第一种,防火墙 跟 selinux 服务 是关闭的。 这种情况比较简单,不需要配置 防火墙 跟 selinux , 只需要修改 httpd 配置文件中的 Listen 80 与 httpd.socket 配置文件里面 的 ListenStream=80 这两个位置的端口 号即可。
修改 httpd配置文件的方法,rpm -qc httpd 可以查出 配置文件的位置: /etc/httpd/conf/httpd.conf ,然后编辑 文件,将 Listen 80 改成 目标端口号,假设是 30080, 那么就改成 Listen 30080 ,保存退出即可。
修改 httpd.socket 监听端口 的方法, 使用 命令 :

systemctl status httpd.socket  

在这里插入图片描述

在结果里面可以看到 有一个 类似 /usr/lib/systemd/system/httpd.socket 的文件
使用编辑器将文件里面的 ListenStream=80 改成 目标端口号,假设是 30080,改成 ListenStream=30080 即可,保存退出就好了。
如果 不用配防火墙 跟 selinux 的话, 到这里端口号就配置好了。

第二种,如果需要配置防火墙selinux , 先完成下面的步骤 再 按上面的说明配置端口号 :

###  semanage port -l 命令先列出 所有的 服务类型及端口号,然后使用 grep 筛选关键词,例如 http
semanage port -l | grep http 
### 然后 使用 semanage port -a 添加, 可以 使用 semanage port --help 查询 使用说明
semanage port -a -t http_port_t -p tcp 30080
### 添加好之后,再确认一下是否添加成功
semanage port -l | grep 30080
###防火墙放行
firewall-cmd --permanent --add-port=30080/tcp
###防火墙重载
firewall-cmd --reload

防火墙跟 selinux 配置好之后 再按照上面 第一种的步骤配置 端口号

例如,需要查看 目前正在监听的 tcp 端口,可以使用命令

ss -lt  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值