在Linux中,如何將本地80埠的請求轉發到8080埠,當前主機IP為192.168.16.1,其中本地網路卡eth0。

黄嘉波發表於2024-07-11

在Linux中,可以使用iptables工具來實現埠轉發。以下是將本地80埠的請求轉發到8080埠的命令:

  1. 首先,確保iptables已經安裝在你的系統上。如果沒有安裝,可以使用以下命令安裝:

    對於Debian/Ubuntu系統:

    sudo apt-get install iptables
    

    對於CentOS/RHEL系統:

    sudo yum install iptables
    
  2. 使用以下命令配置iptables進行埠轉發:

    sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.16.1:8080
    sudo iptables -t nat -A POSTROUTING -p tcp -d 192.168.16.1 --dport 8080 -j MASQUERADE
    

    這些命令的解釋如下:

    • -t nat:指定操作的是網路地址轉換(NAT)表。
    • -A PREROUTING:在PREROUTING鏈中新增一條規則。
    • -p tcp:指定協議為TCP。
    • --dport 80:指定目標埠為80。
    • -j DNAT:指定動作為DNAT(目標網路地址轉換)。
    • --to-destination 192.168.16.1:8080:將目標地址和埠轉換為192.168.16.1:8080。
    • -A POSTROUTING:在POSTROUTING鏈中新增一條規則。
    • -p tcp:指定協議為TCP。
    • -d 192.168.16.1:指定目標IP地址為192.168.16.1。
    • --dport 8080:指定目標埠為8080。
    • -j MASQUERADE:指定動作為MASQUERADE,用於偽裝源地址。
  3. 儲存iptables規則,以便在系統重啟後仍然生效:

    對於Debian/Ubuntu系統:

    sudo sh -c 'iptables-save > /etc/iptables/rules.v4'
    

    對於CentOS/RHEL系統:

    sudo service iptables save
    

綜上所述,所有傳送到本地80埠的請求都會被轉發到192.168.16.1的8080埠。

相關文章