如何在Ubuntu系統(tǒng)下開啟IP轉(zhuǎn)發(fā)功能
在網(wǎng)絡(luò)通信中,IP地址分為公有和私有兩種類型。Public Address由Internet Network Information Center (INIC) 負責分配給注冊并向其提出申請的組織機構(gòu)
在網(wǎng)絡(luò)通信中,IP地址分為公有和私有兩種類型。Public Address由Internet Network Information Center (INIC) 負責分配給注冊并向其提出申請的組織機構(gòu),而Private Address則為非注冊地址,專門供組織內(nèi)部使用。由于私有地址無法直接與WAN通信,因此需要利用幀中繼(FRE)、高級數(shù)據(jù)鏈路控制(HDLC)、點對點協(xié)議(PPP)或路由器轉(zhuǎn)發(fā)(NAT)功能將其轉(zhuǎn)換為公有地址。
1. Linux系統(tǒng)默認禁止數(shù)據(jù)包轉(zhuǎn)發(fā)
出于安全考慮,Linux系統(tǒng)默認禁止數(shù)據(jù)包轉(zhuǎn)發(fā)。所謂轉(zhuǎn)發(fā)即當主機擁有多于一塊的網(wǎng)卡時,其中一塊收到數(shù)據(jù)包,根據(jù)數(shù)據(jù)包的目的IP地址將數(shù)據(jù)包發(fā)往本機另一塊網(wǎng)卡,該網(wǎng)卡根據(jù)路由表繼續(xù)發(fā)送數(shù)據(jù)包。這通常是路由器所要實現(xiàn)的功能。
2. 檢查是否開啟轉(zhuǎn)發(fā)功能
通過訪問sysctl的內(nèi)核ipv4.ip_forward來判斷轉(zhuǎn)發(fā)是否開啟,其中IPv6可以改為ipv6使用sysctl:sysctl net.ipv4.ip_forward。如果輸出結(jié)果為0,則IPv4轉(zhuǎn)發(fā)沒有開啟。
3. 啟動IP轉(zhuǎn)發(fā)
通過執(zhí)行以下命令,可以在無需重啟計算機的情況下開啟IPv4的轉(zhuǎn)發(fā)功能:
sysctl -w net.ipv4.ip_forward1 或 echo 1 > /proc/sys/net/ipv4/ip_forward
這種設(shè)置只是暫時的,并且會隨著計算機的重啟而失效。若想使IP轉(zhuǎn)發(fā)永久生效,需修改文件,在其中增加一條net.ipv4.ip_forward1的記錄。如果ipv4轉(zhuǎn)發(fā)項已被設(shè)為0,則只需要將其改為1。
4. 使設(shè)置生效
為了使更改生效,需要執(zhí)行以下指令:sysctl -p 。在紅帽系列的發(fā)行版上,可以通過重啟網(wǎng)絡(luò)服務來使設(shè)置生效,而在Debian/Ubuntu系列的發(fā)行版中,則需使用以下命令:
早期版本: restart
最新版本:/etc/init.d/procps restart
總結(jié):
在Ubuntu系統(tǒng)下開啟IP轉(zhuǎn)發(fā)功能需要先檢查是否開啟轉(zhuǎn)發(fā)功能,然后通過執(zhí)行相關(guān)命令或修改文件來啟用IP轉(zhuǎn)發(fā)。最后,需要執(zhí)行指令來使設(shè)置生效。