怎样通过命令行的方式开启端口?
美国、香港服务器
怎样通过命令行的方式开启端口?
09-04 来源:
通过命令行开启端口的方法因操作系统操作系统(Windows 或 Linux)和防火墙工具的不同而有所区别。以下是针对不同系统的具体命令行操作步骤:
一、Windows 系统(使用 netsh 命令)
Windows 系统通过 netsh 命令配置防火墙规则,从而开启特定端口。
1. 以管理员身份打开命令提示符
按下 Win + R,输入 cmd,然后按下 Ctrl + Shift + Enter 以管理员权限运行命令提示符。
2. 开启 TCP 端口(如 80 端口)
cmd
# 允许入站 TCP 80 端口
netsh advfirewall firewall add rule name="Allow TCP 80" dir=in action=allow protocol=TCP localport=80
# 允许出站 TCP 80 端口(如需)
netsh advfirewall firewall add rule name="Allow Outbound TCP 80" dir=out action=allow protocol=TCP localport=80
3. 开启 UDP 端口(如 53 端口)
cmd
# 允许入站 UDP 53 端口
netsh advfirewall firewall add rule name="Allow UDP 53" dir=in action=allow protocol=UDP localport=53
# 允许出站 UDP 53 端口(如需)
netsh advfirewall firewall add rule name="Allow Outbound UDP 53" dir=out action=allow protocol=UDP localport=53
4. 验证端口规则是否添加成功
cmd
# 查看所有入站规则
netsh advfirewall firewall show rule name=all dir=in
# 筛选特定端口的规则(如 80 端口)
netsh advfirewall firewall show rule name=all dir=in | findstr "80"
5. (可选)删除端口规则
如果需要关闭已开启的端口,可删除规则:
cmd
# 删除入站 TCP 80 端口规则
netsh advfirewall firewall delete rule name="Allow TCP 80" dir=in
二、Linux 系统
Linux 系统常用的防火墙工具为 firewalld(CentOS 7+、Fedora)和 ufw(Ubuntu、Debian),以下分别介绍:
场景 1:使用 firewalld(CentOS 7/8、RHEL 7/8)
查看防火墙状态
bash
sudo systemctl status firewalld
若显示 inactive,需先启动防火墙:
bash
sudo systemctl start firewalld
sudo systemctl enable firewalld # 设置开机自启
临时开启端口(重启后失效)
bash
# 开启 TCP 80 端口
sudo firewall-cmd --zone=public --add-port=80/tcp
# 开启 UDP 53 端口
sudo firewall-cmd --zone=public --add-port=53/udp
# 开启端口范围(如 3000-3010 端口,TCP 协议)
sudo firewall-cmd --zone=public --add-port=3000-3010/tcp
永久开启端口(重启后生效)
需添加 --permanent 参数,并重新加载规则:
bash
# 永久开启 TCP 22 端口(SSH)
sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
# 重新加载规则使配置生效
sudo firewall-cmd --reload
验证端口是否开启
bash
# 查看所有开放的端口
sudo firewall-cmd --zone=public --list-ports
# 查看永久开放的端口
sudo firewall-cmd --zone=public --list-ports --permanent
(可选)关闭端口
bash
# 临时关闭 TCP 80 端口
sudo firewall-cmd --zone=public --remove-port=80/tcp
# 永久关闭 TCP 80 端口
sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent
sudo firewall-cmd --reload # 重新加载规则
场景 2:使用 ufw(Ubuntu、Debian)
查看防火墙状态
bash
sudo ufw status
若显示 inactive,需先启用防火墙:
bash
sudo ufw enable
开启端口
bash
# 开启 TCP 80 端口
sudo ufw allow 80/tcp
# 开启 UDP 53 端口
sudo ufw allow 53/udp
# 开启端口范围(如 3000-3010 端口,TCP 协议)
sudo ufw allow 3000:3010/tcp
# 仅允许特定 IP 访问端口(如允许 192.168.1.100 访问 22 端口)
sudo ufw allow from 192.168.1.100 to any port 22/tcp
验证端口是否开启
bash
sudo ufw status numbered # 查看所有规则(带编号)
(可选)关闭端口
bash
# 方法 1:通过端口号删除(需指定协议)
sudo ufw delete allow 80/tcp
# 方法 2:通过规则编号删除(先通过 status numbered 查看编号)
sudo ufw delete 1 # 删除编号为 1 的规则
三、通用注意事项
端口与服务的对应:开启端口后,需确保有服务在监听该端口(如 netstat -tuln 查看 Linux 端口监听状态,netstat -ano 查看 Windows 端口监听状态),否则端口虽 “开放” 但无法使用。
权限要求:所有防火墙配置命令均需管理员权限(Windows 用管理员命令提示符,Linux 加 sudo)。
多层防火墙:若服务器同时有系统防火墙和硬件防火墙(如路由器、云安全组),需确保所有层级都开放了目标端口,否则可能被拦截。
通过上述命令,可快速在命令行中完成端口的开启、关闭和验证,适合自动化脚本或远程服务器操作。
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快