CentOS:1、修改iptables
vi /etc/sysconfig/iptables
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -s 192.168.1.2 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p icmp -j ACCEPT
-A INPUT -i eth0 -j DROP
COMMIT
例如要打開mysql的3306端口,即添加如下一行,參數-s表示只允許某個ip通過這個端口,不設置表示允許所有:
-A INPUT -i eth0 -s 192.168.1.2 -p tcp -m tcp --dport 3306 -j ACCEPT
2、重新啟動iptables服務
service iptables restart
3、檢查已開放端口和允許訪問的ip
iptables -nvL
Ubuntu:1.如果沒有啟用ufw,啟用它
sudo ufw default deny #除非指明打開的端口,否則所有端口都默認關閉
sudo ufw enable
2.打開端口
sudo ufw allow 22
3.關閉端口
sudo ufw delete allow 22
4.只打開使用tcp協議的22端口:
sudo ufw allow 22/tcp
5.打開來自192.168.0.1的tcp請求的80端口:
sudo ufw allow proto tcp from 192.168.0.1 to any port 22
6.查看端口開放狀態
sudo ufw status
7.關閉防火牆
sudu ufw disable
查看本機端口占用情況:
netstat -ano #所有端口
netstat -nupl #UDP端口
netstat -ntpl #TCP端口
netstat -ntpl|grep 80 #檢查80端口的占用情況
netstat -tanp #顯示端口狀態
如果端口被占用終止該進程:
ps -ef|grep 進程名 #查看進程
kill 進程號 #終止進程