0 背景

业务应用系统的web容器无法更改IP地址,例如临时SSH端口,但是不想修改SSH配置;例如某些服务web服务需要通过公共IP进行统一访问;例如外网访问内网资源等;例如快速调整web容器的端口而不需要更改服务的任何配置等。

流量转发命令语法为:

firewalld-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>

1.开启防火墙

  • 初始化防火墙

systemctl status firewalld

systemctl enable firewalld

systemctl restart firewalld

systemctl status firewalld

  • 查看防火墙配置端口转发之前的状态

firewall-cmd --state

firewall-cmd --list-all

  • ipv4 端口转发

配置系统配置文件开启 ipv4 端口转发

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

sysctl -p

  • 开启 IP 伪装

firewall-cmd --add-masquerade --zone=public --permanent

firewall-cmd --reload

2.内网服务器端口转发

将 server1 10.10.7.1:111 端口 转发 至 server2 10.10.7.2:222端口

操作命令如下:

# firewall-cmd --list-all

# firewall-cmd -add-forward-port=port=111:proto=tcp:toport=222:toaddr=10.10.7.2 --zone=public --permanent

# firewall-cmd --reload

# firewall-cmd --list-all

3. 本地服务器内部端口转发

将server-1 10.10.7.1:8443端口 转发 至 server-1 10.10.7.1:443

操作命令如下:

# firewall-cmd --list-all

# firewall-cmd --add-forward-port=port=8443:proto=tcp:toport=443 --zone=public --permanent

# firewall-cmd --reload

# firewall-cmd --list-all

执行成功前,原来的浏览器地址是:https://10.10.7.1

执行成功后,新的浏览器地址是:https://10.10.7.1/accounts/login/ 和https://10.10.7.1:8433/accounts/login/

有些情况是需要加上URL后缀地址,才能访问,直接访问IP:PORT会显示禁止访问或者403等。

特殊情况说明

通过以上方法firewall-cmd配置本地端口转发,例如将server-1 10.10.7.1:8443 端口转发至 server-1 10.10.7.1:443 ,在其他机器使用浏览器或者使用curl或者wget是正常的。但是在本地服务器使用curl或者wget就是提示failed: Connection refused.

为了解决这个问题,因为firewall-cmd-not-allowing-loopback-redirect,故需要执行这个命令:

# firewall-cmd --permanent --direct --add-rule ipv4 nat OUTPUT 0 -p tcp -o lo --dport 8443 -j REDIRECT --to-ports 443

# firewall-cmd --reload

# firewall-cmd --list-all

这时候,我们看到规则没有很大变化,但是我们在本地机器执行curl或者wget已经正常显示了。

参考文章:1445918 – firewalld does not allow port forwarding on localhost

4. 删除端口转发

# firewall-cmd --list-all

移除 将本地端口8443 转发 本地端口80

# firewall-cmd --remove-forward-port=port=8443:proto=tcp:toport=443--zone=public --permanent

移除 将本地端口1111 转发10.10.7.2 的222端口

# firewall-cmd -remove-forward-port=port=111:proto=tcp:toport=222:toaddr=10.10.7.2 --zone=public --permanent

# firewall-cmd --reload

# firewall-cmd --list-all

5. 删除 IP 伪装

firewall-cmd --list-all

firewall-cmd --remove-masquerade --zone=public --permanent

firewall-cmd --reload

firewall-cmd --list-all

Linux 服务器 Firewalld 防火墙配置端口转发相关推荐

  1. Linux系列——VMware虚拟机配置端口转发(端口映射),实现远程访问

    前言 先赞后看,此生必赚! 本文所写的远程为各个电脑在同一个网段内: 本文主要详细介绍如何远程访问虚拟机里面的项目! 机器:虚拟机(装在电脑1里).电脑1(宿主机).电脑2.电脑3.电脑4.电脑n.. ...

  2. linux服务器开放防火墙和端口,以及查询状态

    1. 安装防火墙 安装 iptables-services : 2. 防火墙基本操作 查看版本: firewall-cmd --version 显示状态: firewall-cmd --state 查 ...

  3. linux服务器查看防火墙配置,linux服务器CentOS7/6查看防火墙状态及开启关闭命令...

    CentOS7 的防火墙配置跟以前版本有很大区别,CentOS7这个版本的防火墙默认使用的是firewall,与之前的版本使用iptables不一样 1.关闭防火墙: systemctl stop f ...

  4. firewalld防火墙配置、测试服务、高级配置与IP伪装、端口转发

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Firewalld防火墙 防火墙基础 一.防火墙配置 二.使用防火墙安装http服务测试分别测试内网.外网.dmz 三.firewal ...

  5. firewalld防火墙配置IP伪装和端口转发

    IP地址伪装和端口转发都属于NAT(网络地址转换). 地址伪装和端口转发的区别如下: IP地址伪装: 1.通过地址伪装,NAT设备将经过设备的包转发到指定的接收方,同时将通过的数据包 2.源地址更改为 ...

  6. centos 7的firewalld防火墙配置IP伪装和端口转发(内附配置案例)

    IP地址伪装和端口转发都属于NAT(网络地址转换). 地址伪装和端口转发的区别如下: IP地址伪装: 通过地址伪装,NAT设备将经过设备的包转发到指定的接收方,同时将通过的数据包 源地址更改为其NAT ...

  7. firewalld防火墙配置ip地址伪装和端口转发

    IP地址伪装 通过地址伪装,NAT设备将经过设备的包转发到指定接收方,同时将通过的数据包的原地址更改为NAT的接口地址转发到不同步目的地.当是返回数据包是,会将目的地之修改为原始主机地址并路由. 端口 ...

  8. linux ftp服务器防火墙设置,【许望】linux(RHEL) 下 FTP(vsftpd) 服务器的防火墙配置...

    linux(RHEL) 下 FTP(vsftpd) 服务器的防火墙配置 FTP服务器在与客户端通讯的过程中会用到两个端口,一个是控制端口,通常是21/tcp,一个是数据端口,运行在主动模式下的FTP服 ...

  9. Windows配置端口转发绕过samba 445端口限制共享linux磁盘

    概述 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内 ...

最新文章

  1. 微软在.NET官网上线.NET 架构指南频道
  2. TPO 按主题刷题记录
  3. 数据科学家 数据工程师_发展数据科学家和工程师
  4. SPSS Statistics 24 软件安装教程
  5. ModelAndView详解
  6. 像素坐标转换实际坐标python_像素坐标转世界坐标的计算
  7. Pegasus读取传感器AD的值
  8. 单例模式只会懒汉饿汉?读完本篇让你面试疯狂加分
  9. 阿里云免费SSL证书申请
  10. python莫比乌斯内接矩形_用莫比乌斯带巧解内接矩形问题:拓扑学的用处
  11. mysql exists 使用的意义
  12. Win勒索病毒害惨中国学生!微软:最新Win10很安全
  13. AES算法加解密及简单图像化界面实现
  14. A链接点击下载不跳转页面
  15. 百度SEO合集 WordPress插件+seo优化插件+快速收录+网站蜘蛛
  16. 利用AppInventor实现登录功能(完整版)
  17. 如何判断投影坐标是 3 度带还是 6 度带?如何计算中央子午线经度?
  18. 软考中级 真题 2018年上半年 系统集成项目管理工程师 基础知识 上午试卷
  19. 2022年熔化焊接与热切割最新解析及熔化焊接与热切割模拟考试题
  20. 社区共读《Python编程从入门到实践》第三天阅读建议

热门文章

  1. 汤姆大叔JavaCript系列10阅读笔记
  2. tp5更新某字段加1_tp5.1 实现setInc字段自动加1
  3. pip安装的python库Pycharm用不了
  4. VC编程经验汇总(二)
  5. 计算机使用安全标语,计算机保密安全标语
  6. 调整video的播放速率
  7. vue项目中跨域解决方案
  8. oracle替换子字符串,oracle字符/字符串替换
  9. python uiautomator2控制手机点击_Python控制手机03-Uiautomator2配置
  10. Service通过onBind跨进程启动流程源码探究