帮助中心>Centos 7.x 下做端口映射/端口转发

Centos 7.x 下做端口映射/端口转发

0 8871
发布于:2021-04-19 21:38:36

如果多台服务器,但是仅有一个公网ip的话,可以在有公网ip的服务器上做端口映射/端口转发,把不同的服务器映射在端口上。这样只要链接唯一公网IP的不同端口就可以在对应的不同服务器上进行操作了。

本文介绍的是centos7,firewalld-cmd是centos7的一大特性,最大的好处有两个:支持动态更新,不用重启服务;第二个就是加入了防火墙的“zone”概念。

firewall常用操作示例:

状态:# systemctl status firewalld 或者 firewall-cmd --state(查看防火墙开启关闭状态)
启动:# systemctl start  firewalld
停止:# systemctl stop firewalld
自启动:# systemctl enable firewalld (可让防火墙开机自启动,防火墙默认开机不启动的,需手动启动)
禁用:# systemctl disable firewalld


允许数据包转发

首先开启IP转发功能,默认是关闭的。
临时修改

echo 1 >/proc/sys/net/ipv4/ip_forward

修改过后就马上生效,但如果系统重启后则又恢复为默认值0。
永久修改

# 找到下面的值并将0改成1
vi /etc/sysctl.conf
# sysctl -p(使之立即生效)
net.ipv4.ip_forward = 1


默认值0是禁止ip转发,修改为1即开启ip转发功能。


端口管理

列出 dmz 级别的被允许的进入端口
 firewall-cmd --zone=dmz --list-ports
允许 tcp 端口 8080 至 dmz 级别 (--permanent 永久生效,没有此参数重启后失效)
firewall-cmd --zone=dmz --add-port=8080/tcp
firewall-cmd --zone=dmz --add-port=12345/tcp --permanent

列出 public 级别的被允许的进入端口
firewall-cmd --zone=public --list-ports
允许某范围的 udp 端口至 public 级别,并永久生效
firewall-cmd --zone=public --add-port=5060-5059/udp --permanent
允许 tcp 端口 58888 至 public 级别 (--permanent 永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --add-port=80/tcp --permanent
重新加载firewalld配置
firewall-cmd --reload


打开防火墙伪装IP

决定你端口转发是否能成功的最重要一点是你得打开防火墙伪装IP的功能,这就是SNAT。

firewall-cmd --query-masquerade # 检查是否允许伪装IP,返回no表示没开启,反之开启伪装IP
firewall-cmd --add-masquerade # 允许防火墙伪装IP
firewall-cmd --add-masquerade --permanent      # --permanent 永久生效,没有此参数重启后失效
或
firewall-cmd --zone=区域 --add-masquerade
firewall-cmd --remove-masquerade# 禁止防火墙伪装IP
重新加载firewalld配置
firewall-cmd --reload
(PS:添加或删除端口后不会立即生效,配置完 --reload后才能生效;--permanent代表永久生效)


下面是端口转发的命令

firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 --permanent    # 将80端口的流量转发至8080
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.0.1 --permanent    # 将80端口的流量转发至192.168.0.1
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080 --permanent     # 将80端口的流量转发至192.168.0.1的8080端口
firewall-cmd --add-forward-port=port=58888:proto=tcp:toaddr=47.97.184.137:toport=80 --permanent # 将58888端口的流量转发至47.97.184.137的80端口
要删除之前设置的转发规则,把以上命令中的--add-forward-port改为--remove-forward-port运行一次即可。
firewall-cmd --permanent --zone=public --remove-forward-port=port=58888:proto=tcp:toaddr=47.97.184.137:toport=8888
firewall-cmd --reload
firewall-cmd --list-all #查询所有配置


重新加载firewalld配置,并查看之前的配置

firewall-cmd --reload
firewall-cmd --list-all

扫码赞赏,鼓励支持

还没有人赞赏,快来当第一个赞赏的人吧!
    强势安利

    Windows远程桌面(mstsc)无法复制粘贴的解决方法

    2021-04-18 19:08:32

    强势安利

    腾讯云轻量应用服务器防火墙开放端口教程

    2021-04-20 21:08:45


    关键词: 腾讯云服务器
    提交成功,系统已安排等保测评顾问稍后为您服务
    微信咨询 获取代理价(更低折扣)
    更低报价 更低折扣 代金券申请
    咨询热线:18120815391
    操作成功
    操作失败
    申请优惠
    立即申请优惠