CentOS7 做 路由器 精簡方法

strivechao發表於2022-04-07

看過網上很多用CentOS7 卻解除安裝掉 firewall-cmd ,去用Iptables. 不是很理解。並且iptable 語法對新手確實有點複雜。

本文使用原生態的firewall-cmd 做軟路由,簡單方面,效率高,幾條命令搞定。

工具/原料

  • CentOS 7.6
  • Vmware workstation
  • 兩個虛擬網路

方法/步驟

  1. 1

    1. CentOS6.7 VM 新增兩張虛擬網路卡,一張直接連家裡的網路 (Bridge)

    另外一張連線 HostOnly獨立網路

  2. 2

    2. 在HostOnly 網路中建立一個主機。

    我這裡是其他實驗的主機,既是DC,又是DNS。

  3. 3

    啟用資料轉發:

    編輯/etc/sysctl.conf  或者/etc/sysctl.d/99-sysctl.conf

    新增如下內容

    net.ipv4.ip_forward = 1

    然後執行如下命令,如下輸出結果,說明啟用了轉發。

    [root@gw ~]# sysctl -p

    net.ipv4.ip_forward = 1

  4. 4

    我們只用firewall-cmd 兩個zone, 一個是internal, 一個是external.

    我的ens33 接的家裡的網路,ens37接的hostonly網路, 這個網路卡的地址,要陪在 hostonly網路中的客戶機上,作為閘道器

    1.把外網介面加到external zone中

     

    [root@gw ~]# f irewall-cmd --permanent --zone=external --change-interface=ens33

    success

    #檢視external zone中的配置, 確保介面已經加進來了。

    [root@gw ~]# firewall-cmd --zone=external --list-all

    external (active)

      target: default

      icmp-block-inversion: no

       interfaces: ens33

      sources:

      services: ssh

      ports:

      protocols:

       masquerade: yes       #external zone 自動開了 MASQUERADE

      forward-ports:

      source-ports:

      icmp-blocks:

      rich rules:

    2.把內網介面加到internal zone中

    [root@gw ~]#

    [root@gw ~]#  firewall-cmd --permanent --zone=internal --change-interface=ens37

    success

    [root@gw ~]#  firewall-cmd --zone=internal --list-all

    internal (active)

      target: default

      icmp-block-inversion: no

       interfaces: ens37

      sources:

      services: ssh mdns samba-client dhcpv6-client

      ports:

      protocols:

      masquerade: no

      forward-ports:

      source-ports:

      icmp-blocks:

      rich rules:

  5. 5

    重新載入配置檔案,配置生效。

    [root@gw ~]# firewall-cmd --complete-reload

    success

  6. 6

    測試:

    客戶機上配置 Centos Internal網路卡地址作為閘道器,既可以與外面通訊。

  7. 7

    命令總結:

    [root@gw ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

    [root@gw ~]# sysctl -p

    [root@gw ~]# firewall-cmd --permanent --zone=external --change-interface=ens33

    [root@gw ~]#firewall-cmd --permanent --zone=internal --change-interface=ens37

    [root@gw ~]#firewall-cmd --complete-reload

    END

注意事項

  • 開啟轉發功能
  • 區分內外用的網路卡,不要搞錯
  • 配置centos 內網網路卡為 其他客戶端的閘道器
  • 測試過程中 DNS可以設定成外網的DNS,比如114.114.114.114


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25469263/viewspace-2886094/,如需轉載,請註明出處,否則將追究法律責任。

相關文章