IP位址分為公有ip位址和私有ip位址,Public Address是由INIC(internet network information center)負責的,這些IP位址分配給了註冊並向INIC提出申請的組織機構。 Private Address屬於非註冊地址,專為組織內部使用。 Private Address是不可能直接用來跟WAN通訊的,要麼利用幀來通訊(FRE幀中繼,HDLC,PPP),要麼需要路由的轉送(nat)功能把私有位址轉換為公有位址才行。
出於安全考慮,Linux系統預設是禁止資料包轉送的。所謂轉送即當主機擁有多於一塊的網卡時,其中一塊收到資料包,根據資料包的目的ip位址將資料包發送到本機另一塊網卡,該網卡根據路由表繼續發送資料包。這通常是路由器所要實現的功能。
說明:現在有些網路已經普及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中文網其他相關文章!