菜鸟科技网

如何开启服务器端口,服务器端口如何正确开启?

开启服务器端口是网络管理中的基础操作,无论是搭建网站、部署应用还是进行远程管理,都离不开正确的端口配置,端口可以看作是服务器与外部通信的“门”,不同的服务对应不同的端口号,只有开启指定端口,才能允许相应的数据流量通过,下面将从准备工作、不同操作系统下的操作步骤、安全配置及常见问题解决等方面,详细说明如何开启服务器端口。

如何开启服务器端口,服务器端口如何正确开启?-图1
(图片来源网络,侵删)

开启端口前的准备工作

在操作之前,需要明确几个关键信息,以确保操作准确且安全:

  1. 确定端口号和协议:明确需要开启的端口号(如HTTP服务的80端口、HTTPS的443端口、SSH的22端口等)以及使用的协议(TCP或UDP),TCP是面向连接的协议,适用于需要可靠传输的服务(如网页浏览、文件传输);UDP是无连接的协议,适用于实时性要求高但可容忍少量丢包的服务(如视频流、DNS查询)。
  2. 确认服务器操作系统:不同操作系统(如Linux、Windows)的防火墙配置方式差异较大,需根据系统类型选择对应方法。
  3. 评估安全风险:直接开放所有端口会极大增加服务器被攻击的风险,因此应遵循“最小权限原则”,仅开放业务必需的端口,并尽量限制访问来源IP。

Linux系统下开启端口

Linux系统常用的防火墙工具包括iptablesfirewalld,不同发行版默认工具可能不同(如CentOS 7+使用firewalld,Ubuntu使用ufwiptables)。

使用firewalld(CentOS 7+/RHEL 7+)

(1)检查firewalld状态

systemctl status firewalld

若未运行,可使用systemctl start firewalld启动,并设置systemctl enable firewalld开机自启。

如何开启服务器端口,服务器端口如何正确开启?-图2
(图片来源网络,侵删)

(2)开放端口

  • 开放单个TCP端口(如80端口):
    firewall-cmd --permanent --add-port=80/tcp
  • 开放多个端口或UDP端口:
    firewall-cmd --permanent --add-port=8080-8090/tcp
    firewall-cmd --permanent --add-port=53/udp

    参数说明:--permanent表示永久生效(不添加此参数为临时生效,重启后失效);--add-port指定端口和协议。

(3)重新加载防火墙配置

firewall-cmd --reload

(4)验证端口是否开放

如何开启服务器端口,服务器端口如何正确开启?-图3
(图片来源网络,侵删)
firewall-cmd --list-ports

或使用ss -tulnp | grep 80检查端口监听状态。

使用iptables(适用于大多数Linux发行版)

(1)检查iptables规则

iptables -L -n

(2)添加端口规则

  • 开放80端口(TCP):
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  • 开放53端口(UDP):
    iptables -A INPUT -p udp --dport 53 -j ACCEPT

    参数说明:-A INPUT表示添加到入站规则链;-p tcp/udp指定协议;--dport指定目标端口;-j ACCEPT表示允许通过。

(3)保存规则
不同发行版保存命令不同:

  • CentOS/RHEL:service iptables save
  • Ubuntu/Debian:iptables-save > /etc/iptables/rules.v4

(4)重启iptables服务

systemctl restart iptables

使用ufw(Ubuntu/Debian默认防火墙)

(1)启用ufw

ufw enable

(2)开放端口

  • 开放80端口:
    ufw allow 80/tcp
  • 开放端口范围并指定IP:
    ufw allow from 192.168.1.100 to any port 22 proto tcp

(3)验证规则

ufw status

Windows系统下开启端口

Windows系统主要通过“高级安全Windows防火墙”进行端口管理。

通过图形界面操作

(1)打开防火墙设置:控制面板 → 系统和安全 → Windows Defender防火墙 → 高级设置。 (2)创建入站规则:在左侧选择“入站规则”,点击右侧“新建规则”。 (3)选择规则类型:勾选“端口”,点击“下一步”。 (4)设置协议和端口:选择“TCP”或“UDP”,输入特定本地端口(如80),点击“下一步”。 (5)允许连接:勾选“允许连接”,点击“下一步”;根据网络类型(域、专用、公用)选择适用范围,点击“下一步”。 (6)命名规则:为规则命名(如“Allow HTTP”),点击“完成”。

通过PowerShell命令操作

(1)开放端口(以80端口为例):

New-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow

(2)验证规则

Get-NetFirewallRule -DisplayName "Allow HTTP"

(3)删除规则(如需关闭端口):

Remove-NetFirewallRule -DisplayName "Allow HTTP"

安全配置建议

  1. 限制访问IP:在防火墙规则中指定允许访问的IP地址,避免公网直接开放端口,Linux下firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept";Windows防火墙规则中可在“作用域”中设置远程IP。
  2. 定期检查端口状态:使用netstat -tulnp(Linux)或netstat -anob(Windows)查看端口开放情况,及时关闭未使用的端口。
  3. 使用非默认端口:将常用服务(如SSH、RDP)的默认端口修改为其他高端口,降低自动化攻击风险。
  4. 结合安全组:若服务器部署在云平台(如AWS、阿里云),需同时配置安全组规则,确保云防火墙与本地防火墙规则一致。

常见问题解决

  1. 端口开放后仍无法访问

    • 检查服务是否正常运行(如Linux下systemctl status nginx,Windows下服务管理器中查看对应服务状态)。
    • 确认防火墙规则是否生效(如iptables -L -nufw status查看规则是否添加成功)。
    • 检查云服务器安全组是否开放对应端口(云服务器需同时配置本地防火墙和安全组)。
    • 确认网络连通性,使用telnet IP 端口nc -zv IP 端口测试端口是否可达。
  2. 如何关闭已开放的端口

    • Linux(firewalld)firewall-cmd --permanent --remove-port=80/tcp,然后firewall-cmd --reload
    • Linux(iptables)iptables -D INPUT -p tcp --dport 80 -j ACCEPT,保存规则并重启服务。
    • Windows:通过“高级安全Windows防火墙”找到对应规则删除,或使用PowerShell命令Remove-NetFirewallRule -DisplayName "规则名"

相关问答FAQs

Q1: 开启端口后,如何限制只有特定IP可以访问?
A1: 以Linux firewalld为例,可使用--add-rich-rule参数添加IP限制,firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="80" accept",该命令仅允许IP 192.168.1.100访问80端口;Windows防火墙规则中,在“新建规则”的“作用域”步骤,勾选“这些IP地址”并添加允许的IP即可。

Q2: 服务器如何查看当前已开放的端口列表?
A2: Linux系统下,可通过以下命令查看:

  • 使用firewall-cmd --list-ports(firewalld)或iptables -L -n --line-numbers | grep ACCEPT(iptables)查看防火墙开放的端口;
  • 使用ss -tulnpnetstat -tulnp查看所有监听端口及对应服务进程。
    Windows系统下,可通过“高级安全Windows防火墙”查看入站规则列表,或使用PowerShell命令Get-NetFirewallRule | Where-Object {$_.Action -eq "Allow"} | Select-Object DisplayName, Direction, LocalPort
分享:
扫描分享到社交APP
上一篇
下一篇