背景
公司的服务器在内网,公网IP有限,前期原因是私有云,没有路由级NAT转发支持。
思路
通过已映射IP的服务器节点,配置转发规则,转发内网其他服务器的端口。
基本准备
- 确认内核 IP 地址转发已开启
cat /proc/sys/net/ipv4/ip_forward
返回1已开启,如果返回0则需要手工开启。
以root权限开发echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf sysctl -p #使之立即生效
- 防火墙允许 IP 地址转发
firewall-cmd --add-masquerade --permanent #开启 IP 地址转发 firewall-cmd --reload #重载防火墙规则,使之立即生效
配置转发
例如:需要将192.168.2.26这台服务器的端口3306映射到外网,在有映射外网IP的服务器上执行下面的命令。
firewall-cmd --add-forward-port=port=13306:proto=tcp:toaddr=192.168.2.26:toport=3306 --permanent firewall-cmd --reload #重载防火墙规则,使之立即生效
常见问题
- 防火墙关闭了端口的访问
firewall-cmd --zone=public --add-port=13306/tcp --permanent