linux服務(wù)器中開放端口實(shí)現(xiàn)過(guò)程
一、前言
當(dāng)我們?cè)?Linux 上運(yùn)行服務(wù)時(shí),例如網(wǎng)站、數(shù)據(jù)庫(kù)等,我們通常需要將服務(wù)所監(jiān)聽(tīng)的端口開放,以便外部網(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)聽(tīng)的端口 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)文章
Linux使用yum安裝lamp以及部署wordpress實(shí)踐
文章指導(dǎo)如何通過(guò)yum安裝LAMP環(huán)境并部署WordPress,需關(guān)閉防火墻和SELinux,配置阿里云yum源,安裝Apache、MySQL和PHP,設(shè)置時(shí)區(qū)為上海,初始化數(shù)據(jù)庫(kù),調(diào)整權(quán)限,部署站點(diǎn)后訪問(wèn)驗(yàn)證2025-08-08
apache偽靜態(tài)與iis偽靜態(tài)規(guī)則與配置區(qū)別介紹
本文章來(lái)總結(jié)一下關(guān)于apache偽靜態(tài)與iis偽靜態(tài)區(qū)別介紹,主要講到了一些規(guī)則的問(wèn)題與配置區(qū)別,以后大家就可以直接在iis偽靜態(tài)轉(zhuǎn)換apache,反之也很簡(jiǎn)單哦,需要了解的碰可以參考下2012-12-12
Linux中查看指定文件夾內(nèi)各個(gè)子文件夾內(nèi)的文件數(shù)量
今天小編就為大家分享一篇關(guān)于Linux中查看指定文件夾內(nèi)各個(gè)子文件夾內(nèi)的文件數(shù)量,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01
windows安裝openssh并通過(guò)生成SSH密鑰登錄Linux服務(wù)器
本文為大家詳細(xì)講解了在windows系統(tǒng)下安裝openssh并通過(guò)生成SSH密鑰登錄Linux服務(wù)器2018-10-10
Linux 塊設(shè)備驅(qū)動(dòng)代碼編寫
這篇文章主要介紹了Linux 塊設(shè)備驅(qū)動(dòng)代碼編寫,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
一道題理解Linux中sort命令的多個(gè)參數(shù)
今天小編就為大家分享一篇關(guān)于一道題理解Linux中sort命令的多個(gè)參數(shù),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03
Linux實(shí)現(xiàn)日志高效搜索與實(shí)時(shí)監(jiān)控的終極指南
在開發(fā)和運(yùn)維的世界里,日志(Log)是系統(tǒng)運(yùn)行的黑匣子,它記錄了程序的每一次心跳、每一次異常、每一次請(qǐng)求,如何快速定位問(wèn)題、精準(zhǔn)提取關(guān)鍵信息,成為每個(gè)工程師必須掌握的核心技能,本文將帶你深入 Linux 日志排查的實(shí)戰(zhàn)世界,從基礎(chǔ)命令到高級(jí)技巧,需要的朋友可以參考下2025-10-10

