linux服務(wù)器中開放端口實(shí)現(xiàn)過(guò)程
一、前言
當(dāng)我們?cè)?Linux 上運(yùn)行服務(wù)時(shí),例如網(wǎng)站、數(shù)據(jù)庫(kù)等,我們通常需要將服務(wù)所監(jiān)聽的端口開放,以便外部網(wǎng)絡(luò)可以通過(guò)該端口訪問(wèn)該服務(wù)。本篇博客將介紹如何在 Linux 上對(duì)外開放端口號(hào)。
什么是端口號(hào)?
在計(jì)算機(jī)網(wǎng)絡(luò)中,端口是一種虛擬的通信機(jī)制,用于區(qū)分不同的網(wǎng)絡(luò)應(yīng)用程序和服務(wù)。每個(gè)網(wǎng)絡(luò)應(yīng)用程序都可以通過(guò)一個(gè)端口號(hào)來(lái)識(shí)別,從而在不同的網(wǎng)絡(luò)連接中與其他應(yīng)用程序進(jìn)行區(qū)分。
在 TCP/IP 協(xié)議中,每個(gè)端口都被分配一個(gè)數(shù)字。例如,Web 服務(wù)器默認(rèn)使用 80 端口,SMTP 服務(wù)器默認(rèn)使用 25 端口,F(xiàn)TP 服務(wù)器默認(rèn)使用 21 端口等。
有些人安裝的linux的系統(tǒng)默認(rèn)防火墻不是iptables,而是firewall,那就得使用以下方式關(guān)閉防火墻了。
二、查看狀態(tài)
>>>查看防火墻當(dāng)前狀態(tài)##查看防火墻狀態(tài),是否是running
firewall-cmd --state >>>查看防火墻當(dāng)前已經(jīng)開放的端口 firewall-cmd --zone=public --list-ports >>>關(guān)閉防火墻 systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall開機(jī)啟動(dòng) firewall-cmd --reload # 配置立即生效 --關(guān)閉后執(zhí)行狀態(tài)命令,查看是否關(guān)閉成功,如果看到inactive(dead)就意味著防火墻關(guān)閉了。
端口的查詢/開放# 查詢端口是否開放
1、開啟防火墻
systemctl start firewalld


2、開放指定端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent

3、重啟防火墻
firewall-cmd --reload
4、查看端口號(hào)命令
查看當(dāng)前所有tcp端口·
netstat -ntlp
查看1935端口使用情況·
netstat -ntulp |grep 1935
firewall-cmd --query-port=8080/tcp # 新建永久規(guī)則,開放8080端口(TCP協(xié)議) firewall-cmd --permanent --add-port=8080/tcp # 移除上述規(guī)則 firewall-cmd --permanent --remove-port=8080/tcp >>>開啟某個(gè)端口 firewall-cmd --zone=public --add-port=80/tcp --permanent #開啟80端口 firewall-cmd --reload # 配置立即生效 >>>關(guān)閉某個(gè)端口 firewall-cmd --zone=public --remove-port=80/tcp --permanent #關(guān)閉80端口 firewall-cmd --reload # 配置立即生效 IP(IP段)的開放# 新建永久規(guī)則,開放192.168.1.1單個(gè)源IP的訪問(wèn) firewall-cmd --permanent --add-source=192.168.1.1 # 新建永久規(guī)則,開放192.168.1.0/24整個(gè)源IP段的訪問(wèn) firewall-cmd --permanent --add-source=192.168.1.0/24 # 移除上述規(guī)則 firewall-cmd --permanent --remove-source=192.168.1.1 >>>開放端口給指定IP段。如開放給局域網(wǎng)192.168.1.1-192.168.1.255 firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="6666" accept" firewall-cmd --reload >>>批量添加區(qū)間端口 firewall-cmd --zone=public --add-port=4400-4600/udp --permanent firewall-cmd --zone=public --add-port=4400-4600/tcp --permanent firewall-cmd --reload # 配置立即生效 >>>查看監(jiān)聽的端口 netstat -lnpt 系統(tǒng)服務(wù)的開放# 開放http服務(wù) firewall-cmd --permanent --add-service=http # 移除上述規(guī)則 firewall-cmd --permanent --remove-service=http 自定義復(fù)雜規(guī)則(注意是否與已有規(guī)則沖突)# 允許指定IP訪問(wèn)本機(jī)8080端口 firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="8080" accept' # 允許指定IP段訪問(wèn)本機(jī)8080-8090端口 firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="8080-8090" accept' # 禁止指定IP訪問(wèn)本機(jī)8080端口 firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="8080" reject'
命令含義:
--zone #作用域 --add-port=80/tcp #添加端口,格式為:端口/通訊協(xié)議 --permanent #永久生效,沒(méi)有此參數(shù)重啟后失效
任何修改操作,配置完成后,需要重新裝載firewall??芍匦聠?dòng)firewalld服務(wù)。>>>重啟防火墻
firewall-cmd --reload service firewalld restart
其他常用命令:
firewall-cmd --reload ##重新載入配置,比如添加規(guī)則之后,需要執(zhí)行此命令 firewall-cmd --get-zones ##列出支持的zone firewall-cmd --get-services ##列出支持的服務(wù),在列表中的服務(wù)是放行的 firewall-cmd --query-service ftp ##查看ftp服務(wù)是否支持,返回yes或者no firewall-cmd --add-service=ftp ##臨時(shí)開放ftp服務(wù) firewall-cmd --add-service=ftp --permanent ##永久開放ftp服務(wù) firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服務(wù) firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口 iptables -L -n ##查看規(guī)則,這個(gè)命令是和iptables的相同的 man firewall-cmd ##查看幫助
firewall規(guī)則擴(kuò)展學(xué)習(xí)
查看已開放的端口
firewall-cmd --list-ports
開放端口(開放后需要要重啟防火墻才生效)
firewall-cmd --zone=public --add-port=3338/tcp --permanent
關(guān)閉端口(關(guān)閉后需要要重啟防火墻才生效)
firewall-cmd --zone=public --remove-port=3338/tcp --permanent
重啟防火墻
firewall-cmd --reload
開機(jī)啟動(dòng)防火墻
systemctl enable firewalld
開啟防火墻
systemctl start firewalld
禁止防火墻開機(jī)啟動(dòng)
systemctl disable firewalld
停止防火墻
systemctl stop firewalld
更多命令,使用 firewall-cmd --help 查看幫助文件
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Centos 7下利用crontab定時(shí)執(zhí)行任務(wù)詳解
這篇文章主要給大家介紹了關(guān)于Centos 7下利用crontab定時(shí)執(zhí)行任務(wù)的相關(guān)資料,文中對(duì)crontab進(jìn)行了詳細(xì)的介紹,并給出了一些實(shí)例代碼供大家參考學(xué)習(xí),需要的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。2017-06-06
LVS+Keepalived構(gòu)建高可用負(fù)載均衡配置方法(配置篇)
這篇文章主要介紹了LVS+Keepalived構(gòu)建高可用負(fù)載均衡配置方法,需要的朋友可以參考下2013-06-06
關(guān)于DSI接口的video?mode和command?mode特點(diǎn)及區(qū)別說(shuō)明
DSI接口支持video和command兩種視頻傳輸模式,video模式通過(guò)同步包(burst/non-burst)按幀結(jié)構(gòu)發(fā)送數(shù)據(jù),數(shù)據(jù)類型根據(jù)像素格式不同而變化;command模式則采用DCS命令碼(如0x39)打包傳輸,無(wú)需同步包,兩者在數(shù)據(jù)結(jié)構(gòu)和同步機(jī)制上有顯著差異2025-09-09
系統(tǒng)講解Apache Kafka消息管理與異常處理的最佳實(shí)踐
Apache Kafka 作為分布式流處理平臺(tái)的核心組件,廣泛應(yīng)用于實(shí)時(shí)數(shù)據(jù)管道、日志聚合和事件驅(qū)動(dòng)架構(gòu),下面我們就來(lái)系統(tǒng)講解 Kafka 消息管理與異常處理的最佳實(shí)踐吧2025-04-04
在Linux 服務(wù)器下修改防火墻允許該端口遠(yuǎn)程訪問(wèn)的方法
今天小編就為大家分享一篇在Linux 服務(wù)器下修改防火墻允許該端口遠(yuǎn)程訪問(wèn)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
詳解如何在Linux中重置MySQL或者M(jìn)ariaDB的root密碼
本篇文章主要介紹了如何在 Linux 中重置 MySQL 或者 MariaDB 的 root 密碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03
Linux實(shí)現(xiàn)驅(qū)動(dòng)模塊傳參過(guò)程解析
這篇文章主要介紹了Linux實(shí)現(xiàn)驅(qū)動(dòng)模塊傳參過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
如何解決Linux環(huán)境變量每次要source /etc/profile問(wèn)題
這篇文章主要介紹了如何解決Linux環(huán)境變量每次要source /etc/profile問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04

