端口转发:是指传统的目标地址映射,实现外网访问内网资源
流量转发命令语法为:
firewalld-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>
环境准备:
(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 端口上
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
systemctl status firewalld
systemctl enable firewalld
systemctl restart firewalld
systemctl status firewalld
firewall-cmd --state
firewall-cmd --list-all
firewall-cmd --add-masquerade --zone=public --permanent
firewall-cmd --reload
注意:
在 server-1 192.168.20.3 操作
将本地的 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 远程 端口 转发
将本地 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 服务 端口 转发
将本地 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 服务 端口 转发
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
firewall-cmd --list-all
firewall-cmd --remove-masquerade --zone=public --permanent
firewall-cmd --reload
firewall-cmd --list-all
至此,本文结束!你学会了没?
我们下期见,拜拜!