一、需求 将linux服务器 A(192.168.1.1)的tcp 8888端口转发给服务器 B(192.168.1.2)的tcp 22端口,即可实现通过192.168.1.1:8888 访问到192.168.1.2:22的服务,也可将192.168.1.1:8888 接收到的流量转给192.168.1.2:22
二、本机与服务器A网络互通,服务器A与服务器B网络互通。
二、在服务器A上做以下配置
- 开启防火墙并允许开机启动
systemctl enable firewalld --now
- 开启防火墙伪装
firewall-cmd --add-masquerade --permanent && firewall-cmd --reload
- 开启IP转发功能
临时修改(立即生效):
echo 1 >/proc/sys/net/ipv4/ip_forward
永久修改:(执行sysctl -p后生效)
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
- 配置转发规则
firewall-cmd --zone=public --add-forward-port=port=8888:proto=tcp:toport=22:toaddr=192.168.1.2 --permanent
- 防火墙重新加载配置
firewall-cmd --reload
- 查看配置的规则:
firewall-cmd --list-all
三、在服务器B上做以下配置
检查22端口是否放通(sshd服务正常启动)
firewall-cmd --list-all
四、转发测试
本机ssh服务器A的8888,可以正常登录服务器B。
ssh -p8888 root@192.168.1.1