小编Mat*_*ani的帖子

使用 firewall-cmd 进行端口转发

我有几个 VM 运行在服务器(虚拟机管理器,VMM)之上。我想将服务器上的端口 80 转发到我的一台虚拟机的端口 80。主机运行 CentOS7,因此 firewalld 负责。显然,VMM 也使用 firewalld 来处理虚拟连接,所以我不能把它扔出窗口。

我基本上没有成功地复制了这个线程中的所有命令,归结为:

firewall-cmd --permanent --zone=public --add-forward-port=port=80:proto=tcp:toport=80:toaddr=192.168.122.224
Run Code Online (Sandbox Code Playgroud)

或者

firewall-cmd --permanent --zone=public --add-rich-rule 'rule family=ipv4 forward-port port=80 protocol=tcp to-port=80 to-addr=192.168.122.224'
Run Code Online (Sandbox Code Playgroud)

firewalld 目前的状态如下:

[root@my-machine ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp8s0
  sources: 
  services: ssh dhcpv6-client samba smtp http
  ports: 25/tcp
  protocols: 
  masquerade: yes
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
  rule family="ipv4" forward-port port="80" protocol="tcp" to-port="80" to-addr="192.168.xxx.xxx"
Run Code Online (Sandbox Code Playgroud)

这是输出

iptables -L -n -v

Chain FORWARD (policy ACCEPT 0 packets, …
Run Code Online (Sandbox Code Playgroud)

virtual-machines port-forwarding firewalld centos7

1
推荐指数
1
解决办法
5447
查看次数