Linux 服务器 Firewalld 防火墙配置端口转发
Posted 闭关苦炼内功
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 服务器 Firewalld 防火墙配置端口转发相关的知识,希望对你有一定的参考价值。
Linux 服务器 Firewalld 防火墙配置端口转发
端口转发:是指传统的目标地址映射,实现外网访问内网资源
流量转发命令语法为:
firewalld-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>
环境准备:
- server1 192.168.20.3
- server2 192.168.20.4
- server3 192.168.20.5
1. 端口转发需求实战
-
(1)需求一:将 server1 192.168.20.3:6666 端口 转发 至 server2 192.168.20.4:22 端口
-
(2)需求二:将 server1 192.168.20.3:9999 端口 转发 至 server3 192.168.20.5:80 端口
-
(3)需求三:将 server1 192.168.20.3:8888 端口 转发 至 server1 192.168.20.3:80 端口
注意:(本地端口转发/映射)
原来,浏览器访问 http://192.168.20.5/ ,http 协议默认是 80 端口
现在,做端口转发,把 80 端口映射到 8888 端口
浏览器访问 http://192.168.20.5:8888/ 即可实现访问 80 端口同样的功能
无需放行 80、8888 端口,相当于把访问 80 端口的流量转发到 8888 端口上
1.0 系统配置文件开启 ipv4 端口转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
1.1 开启防火墙
1.1.1 初始化防火墙
systemctl status firewalld
systemctl enable firewalld
systemctl restart firewalld
systemctl status firewalld
1.1.2 查看防火墙配置端口转发之前的状态
firewall-cmd --state
firewall-cmd --list-all
1.2 开启 IP 伪装
firewall-cmd --add-masquerade --zone=public --permanent
firewall-cmd --reload
1.3 添加端口转发
注意:
在 server-1 192.168.20.3 操作
1.3.1 需求一(内网服务器之间端口转发)
将本地的 192.168.20.3:6666 端口 转发 至 192.168.20.4:22 端口
- 具体操作
firewall-cmd --list-all
firewall-cmd --add-forward-port=port=6666:proto=tcp:toport=22:toaddr=192.168.20.4 --zone=public --permanent
firewall-cmd --reload
firewall-cmd --list-all
- 端口测试
原来,是用 ssh 连接 server-2 192.168.20.4 的 22 端口
ssh root@192.168.20.4
现在,通过 ssh 远程 server-1 192.168.20.3 的 6666 端口,连接 server-2 192.168.20.4
ssh -p 6666 root@192.168.20.3
所以,通过 Firewalld 防火墙可以实现内网服务器 ssh 远程 端口 转发
1.3.2 需求二(内网服务器之间端口转发)
将本地 192.168.20.3:9999 端口 转发 至 192.168.20.5:80 端口
- 具体操作
firewall-cmd --list-all
firewall-cmd --add-forward-port=port=9999:proto=tcp:toport=80:toaddr=192.168.20.5 --zone=public --permanent
firewall-cmd --reload
firewall-cmd --list-all
- 端口测试
原来,浏览器访问 server-3 192.168.20.5 的 80 端口
http://192.168.20.5/
配置端口转发后,浏览器访问 server-1 192.168.20.3 的 9999 端口
http://192.168.20.3:9999/
所以,通过 Firewalld 防火墙可以实现内网服务器 web 服务 端口 转发
1.3.3 需求三(本地服务器内部端口转发)
将本地 192.168.20.3:8888 端口 转发 至 server-1 192.168.20.3:80 端口
- 具体操作
firewall-cmd --list-all
firewall-cmd --add-forward-port=port=8888:proto=tcp:toport=80:toaddr=192.168.20.3 --zone=public --permanent
firewall-cmd --reload
firewall-cmd --list-all
由于是服务器内部,所以又可以简写一下
firewall-cmd --list-all
firewall-cmd --add-forward-port=port=8888:proto=tcp:toport=80 --zone=public --permanent
firewall-cmd --reload
firewall-cmd --list-all
- 端口测试
原来,浏览器访问 server-3 192.168.20.3 的 80 端口
http://192.168.20.3/
配置端口转发后,浏览器访问 server-1 192.168.20.3 的 8888 端口
http://192.168.20.3:8888/
所以,通过 Firewalld 防火墙可以实现本地服务器 web 服务 端口 转发
1.4 删除端口转发
firewall-cmd --list-all
firewall-cmd --remove-forward-port=port=6666:proto=tcp:toport=22:toaddr=192.168.20.4 --zone=public --permanent
firewall-cmd --reload
firewall-cmd --list-all
firewall-cmd --list-all
firewall-cmd --remove-forward-port=port=9999:proto=tcp:toport=80:toaddr=192.168.20.5 --zone=public --permanent
firewall-cmd --reload
firewall-cmd --list-all
firewall-cmd --list-all
firewall-cmd --remove-forward-port=port=8888:proto=tcp:toport=80:toaddr=192.168.20.3 --zone=public --permanent
firewall-cmd --reload
firewall-cmd --list-all
1.5 删除 IP 伪装
firewall-cmd --list-all
firewall-cmd --remove-masquerade --zone=public --permanent
firewall-cmd --reload
firewall-cmd --list-all
至此,本文结束!你学会了没?
我们下期见,拜拜!
以上是关于Linux 服务器 Firewalld 防火墙配置端口转发的主要内容,如果未能解决你的问题,请参考以下文章