溫馨提示×

Linux防火墻怎樣實現端口轉發

小樊
43
2025-09-14 17:44:40
欄目: 智能運維

在Linux系統中,可以使用iptables或者firewalld來實現端口轉發。這里分別介紹這兩種方法:

方法一:使用iptables實現端口轉發

  1. 首先,確保iptables已經安裝。在大多數Linux發行版中,iptables已經預裝。如果沒有安裝,可以使用以下命令安裝:

    對于基于Debian的系統(如Ubuntu):

    sudo apt-get update
    sudo apt-get install iptables
    

    對于基于RPM的系統(如CentOS、Fedora):

    sudo yum install iptables
    
  2. 使用iptables實現端口轉發的命令格式如下:

    sudo iptables -t nat -A PREROUTING -p tcp --dport [外部端口] -j DNAT --to-destination [內部IP地址]:[內部端口]
    sudo iptables -t nat -A POSTROUTING -p tcp -d [內部IP地址] --dport [內部端口] -j MASQUERADE
    sudo iptables -A FORWARD -p tcp -d [內部IP地址] --dport [內部端口] -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    

    [外部端口]、[內部IP地址][內部端口]替換為實際的值。例如,將外部端口80轉發到內部IP地址192.168.1.100的端口8080:

    sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:8080
    sudo iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.100 --dport 8080 -j MASQUERADE
    sudo iptables -A FORWARD -p tcp -d 192.168.1.100 --dport 8080 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    
  3. 保存iptables規則。這樣在系統重啟后,規則仍然有效。這一步驟因發行版而異。在基于Debian的系統中,可以使用以下命令:

    sudo iptables-save > /etc/iptables/rules.v4
    

    在基于RPM的系統中,可以使用以下命令:

    sudo service iptables save
    

方法二:使用firewalld實現端口轉發

  1. 首先,確保firewalld已經安裝。在大多數Linux發行版中,firewalld已經預裝。如果沒有安裝,可以使用以下命令安裝:

    對于基于Debian的系統(如Ubuntu):

    sudo apt-get update
    sudo apt-get install firewalld
    

    對于基于RPM的系統(如CentOS、Fedora):

    sudo yum install firewalld
    
  2. 啟動firewalld服務并設置為開機啟動:

    sudo systemctl start firewalld
    sudo systemctl enable firewalld
    
  3. 使用firewall-cmd命令實現端口轉發。例如,將外部端口80轉發到內部IP地址192.168.1.100的端口8080:

    sudo firewall-cmd --permanent --zone=public --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.100:toport=8080
    
  4. 重新加載firewalld配置使規則生效:

    sudo firewall-cmd --reload
    

現在,端口轉發已經設置完成。外部訪問80端口時,請求將被轉發到內部IP地址192.168.1.100的8080端口。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女