首頁 >系統教程 >Linux >如何在Ubuntu上啟用IP轉發

如何在Ubuntu上啟用IP轉發

WBOY
WBOY轉載
2024-01-02 10:36:011293瀏覽

IP位址分為公有ip位址和私有ip位址,Public Address是由INIC(internet network information center)負責的,這些IP位址分配給了註冊並向INIC提出申請的組織機構。 Private Address屬於非註冊地址,專為組織內部使用。 Private Address是不可能直接用來跟WAN通訊的,要麼利用幀來通訊(FRE幀中繼,HDLC,PPP),要麼需要路由的轉送(nat)功能把私有位址轉換為公有位址才行。

出於安全考慮,Linux系統預設是禁止資料包轉送的。所謂轉送即當主機擁有多於一塊的網卡時,其中一塊收到資料包,根據資料包的目的ip位址將資料包發送到本機另一塊網卡,該網卡根據路由表繼續發送資料包。這通常是路由器所要實現的功能。
如何在Ubuntu上啟用IP轉發

1、透過存取sysctl的核心ipv4.ip_forward來判斷轉送是否開啟。

說明:現在有些網路已經普及ipv6的,所以下面的指令可以從ipv4改為ipv6即可

使用sysctl:

#sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 0

或檢查/proc下的檔案:

cat /proc/sys/net/ipv4/ip_forward 0

ipv4轉送沒有開啟 (值為 0)

2、啟動IP轉送

#透過sysctl可以開啟ipv4的轉送功能 (無需重新啟動):

sysctl -w net.ipv4.ip_forward=1

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

這種設定只是暫時的,它的效果會隨著電腦的重啟而失效。

透過在/etc/sysctl.conf設定參數:

如果想要讓IP轉送永久生效,就請修改/etc/sysctl.conf ,在這裡可以增加一條net.ipv4.ip_forward = 1

/etc/sysctl.conf: net.ipv4.ip_forward = 1

如果ipv4轉送項已被設為0那麼你只需要將它改為1。

3、要想是更改生效,你需要執行以下指令:

sysctl -p /etc/sysctl.conf

#在紅帽系列的發行版上可以透過重啟網路服務使之生效:

service network restart

而在Debian/Ubuntu系列的發行版則用這樣的指令:

#早期版本

/etc/init.d/procps.sh restart

##最新版本

/etc/init.d/procps restart###

以上是如何在Ubuntu上啟用IP轉發的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:linuxprobe.com。如有侵權,請聯絡admin@php.cn刪除