https://www.configserverfirewall.com/ufw-ubuntu-firewall/ubuntu-firewall-open-port/
https://www.digitalocean.com/community/tutorials/opening-a-port-on-linux
不指定协议的话,默认会同时开放TCP和UDP
通过端口数字来开放
ufw allow 53
ufw allow 22/tcp
删除某个规则
ufw delete allow 22/tcp
通过服务的名字来开放防火墙的某个端口
ufw allow ssh
ssh默认使用端口22/TCP,ufw会检查/etc/services内的相应文件内的端口
开放端口给指定的IP地址
ufw allow from to port proto
ufw allow from 192.168.1.60 to any port 90
允许来自IP地址192.168.1.60对本机端口90的访问
ufw allow from 192.168.1.60 to any port 22 proto tcp
开放TCP端口22给IP地址192.168.1.60
ufw allow from 192.168.1.60 to 192.168.1.200 port 22 proto tcp
开放TCP端口22给IP地址192.168.1.60,并且只允许通过本机IP地址192.168.1.200来访问,对本机配置了多个IP地址有用的
开放某个端口给指定网段
ufw allow from 192.168.1.0/24 to any port 22 proto tcp
开放端口22/TCP给网段192.168.1.0/24,网络掩码是255.255.255.0
一次开放多个端口
ufw allow from any to any proto tcp port 21,22
ufw allow from any to any proto tcp port 8080:8090
ufw allow from 192.168.1.10 to any port 21 proto tcp
关闭端口开放
https://www.configserverfirewall.com/ufw-ubuntu-firewall/ufw-block-ports/
ufw deny port/protocol
ufw deny 53
ufw deny 21/tcp
ufw deny from 192.168.1.60 to any port 22 proto tcp
阻止来自IP地址192.168.1.60对ssh端口22的connect
列出当前开放正在监听的端口
netstat -lntu
all listening sockets (-l)
the port number (-n)
TCP ports (-t)
UDP ports (-u)
或者ss -lntu指令
确保4000端口没有被使用,或者ss指令的
netstat -na | grep :4000
Ubuntu系统
使用ufw软件开放端口,上面已经很详细了
firewalld相关的像Centos系统
firewall-cmd --add-port=4000/tcp
其他Linux发行版
iptables -A INPUT -p tcp --dport 4000 -j ACCEPT
测验是否已经开放端口
ls | nc -l -p 4000
或者用 telnet localhost 4000
或者用 nmap localhost -p 4000
端口规则永久生效
ufw 默认就是永久生效的
立即和永久生效
sudo firewall-cmd --permanent --add-port=4000/tcp
sudo firewall-cmd --reload
firewalld配置指令 https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos