Linux 端口及防火墙常用命令
Linux 端口及防火墙操作
查看端口操作
一. netstat命令
- -t (tcp) 仅显示tcp相关选项
- -u (udp)仅显示udp相关选项
- -n 拒绝显示别名,能显示数字的全部转化为数字
- -l 仅列出在Listen(监听)的服务状态
- -p 显示建立相关链接的程序名
1. netstat -anp | grep <端口号>
例如查看 8080 端口:
[root@vm-test ~]# netstat -anp |grep 8080
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 37573/nginx: master
unix 2 [ ACC ] STREAM LISTENING 41803 5447/dbus-daemon @/tmp/dbus-fkHBmL2aV7
unix 2 [ ACC ] STREAM LISTENING 33380 4601/master private/tlsmgr
unix 3 [ ] STREAM CONNECTED 44271 5802/gsd-screensave
unix 3 [ ] STREAM CONNECTED 44277 5802/gsd-screensave
2. netstat -tunlp
查看所有已经使用的端口情况“State”状态为“LISTEN”
[root@vm-test ~]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 37573/nginx: master
tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN 4988/X
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 4849/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 4336/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 4329/cupsd
二. lsof命令
lsof -i:8080 查看8080端口占用
lsof abc.txt 显示开启文件abc.txt的进程
lsof -c abc 显示abc进程现在打开的文件
lsof -c -p 1234 列出进程号为1234的进程所打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /usr/local/ 显示目录下被进程开启的文件
lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长
lsof -d 4 显示使用fd为4的进程
lsof -i -U 显示所有打开的端口和UNIX domain文件
1. lsof -i : <端口号>
[root@vm-test ~]# lsof -i:8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 37573 root 6u IPv4 2282898 0t0 TCP *:http (LISTEN)
nginx 37574 nobody 6u IPv4 2282898 0t0 TCP *:http (LISTEN)
防火墙操作
1. 查看防火墙状态
命令 | 说明 |
---|---|
systemctl status firewalld | 查看防火墙状态 |
systemctl start firewalld | 开启防火墙 |
systemctl stop firewalld | 关闭防火墙 |
service firewalld start | 开启防火墙 |
若遇到无法开启
先用:systemctl unmask firewalld.service
然后:systemctl start firewalld.service
2. 查询指定端口是否已开
yes表示开启,no表示未开启
[root@vm-test ~]# firewall-cmd --query-port=8080/tcp
no
3. 开放指定端口
添加指定需要开放的端口
[root@vm-test ~]# firewall-cmd --add-port=8080/tcp --permanent
重载入添加的端口
[root@vm-test ~]# firewall-cmd --reload
查询指定端口是否开启成功
[root@vm-test ~]# firewall-cmd --query-port=8080/tcp
4. 移除指定端口
移除指定端口
[root@vm-test ~]# firewall-cmd --permanent --remove-port=8080/tcp