日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
掌握Linux內(nèi)核:詳盡幫助文檔解讀(linux內(nèi)核幫助文檔)

越來(lái)越多的企業(yè)和個(gè)人選擇使用Linux操作系統(tǒng),原因在于它穩(wěn)定、安全,并且可以根據(jù)需求進(jìn)行定制和優(yōu)化。作為L(zhǎng)inux操作系統(tǒng)的核心部分,Linux內(nèi)核是我們使用Linux系統(tǒng)的基礎(chǔ)。在掌握Linux內(nèi)核方面,閱讀Linux內(nèi)核的幫助文檔是不可或缺的。然而,由于Linux內(nèi)核的復(fù)雜性和深度,幫助文檔可能會(huì)讓初學(xué)者感到困惑。本文將詳細(xì)解讀Linux內(nèi)核的幫助文檔,幫助讀者掌握Linux內(nèi)核的基本概念和操作方法。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、東港網(wǎng)站維護(hù)、網(wǎng)站推廣。

一、什么是Linux內(nèi)核?

Linux內(nèi)核是任何Linux操作系統(tǒng)的核心,它是系統(tǒng)的基礎(chǔ)。Linux內(nèi)核的主要任務(wù)是管理系統(tǒng)的資源,包括CPU、內(nèi)存、文件、網(wǎng)絡(luò)等。它還負(fù)責(zé)處理輸入輸出(I/O)請(qǐng)求,并管理系統(tǒng)的安全性和可靠性。Linux內(nèi)核的源代碼是開(kāi)放的,因此用戶可以根據(jù)自己的需要對(duì)其進(jìn)行修改和優(yōu)化。

二、如何查看和更新Linux內(nèi)核?

通常,Linux內(nèi)核由Linux分發(fā)商(例如Ubuntu、Fedora等)管理。用戶可以使用以下命令來(lái)查看當(dāng)前安裝的Linux內(nèi)核版本:

“`

uname -r

“`

此命令將顯示當(dāng)前操作系統(tǒng)正在使用的內(nèi)核版本。如果需要更新內(nèi)核版本,則可以使用以下命令:

“`

sudo apt-get update

sudo apt-get upgrade

“`

這些命令將更新操作系統(tǒng)及其組件,包括內(nèi)核。在更新內(nèi)核之前,用戶應(yīng)該確認(rèn)系統(tǒng)上的所有驅(qū)動(dòng)程序都與新內(nèi)核兼容。

三、如何編譯和安裝自定義的Linux內(nèi)核?

用戶有時(shí)需要編譯和安裝自己的內(nèi)核版本,以便添加自定義屬性或修改內(nèi)核源代碼。在進(jìn)行此過(guò)程之前,用戶應(yīng)該確定已經(jīng)安裝了必要的軟件包和工具,例如gcc、make、libssl-dev等。然后,用戶可以按照以下步驟編譯和安裝自定義的Linux內(nèi)核:

1.獲取內(nèi)核源代碼

用戶可以從Linux內(nèi)核官方網(wǎng)站(http://kernel.org/)下載內(nèi)核源代碼。然后,將源代碼解壓到合適的目錄中。

2.配置內(nèi)核

進(jìn)入解壓后的內(nèi)核源代碼目錄,執(zhí)行以下命令:

“`

make menuconfig

“`

此命令將啟動(dòng)內(nèi)核配置工具,用戶可以在此工具中修改內(nèi)核配置,例如文件系統(tǒng)類型、驅(qū)動(dòng)程序支持等。完成配置后,將配置保存并退出菜單。

3.編譯內(nèi)核

執(zhí)行以下命令進(jìn)行內(nèi)核編譯:

“`

make

“`

此命令將編譯內(nèi)核源代碼并生成內(nèi)核映像文件(vmlinuz)。

4.安裝內(nèi)核

執(zhí)行以下命令安裝內(nèi)核:

“`

sudo make install

“`

此命令將安裝內(nèi)核映像文件,更新GRUB(引導(dǎo)加載程序)、系統(tǒng)映像文件和模塊等。

5.重新啟動(dòng)系統(tǒng)

重啟系統(tǒng)并選擇新內(nèi)核版本,以確保內(nèi)核已正確安裝和配置。

四、如何調(diào)試Linux內(nèi)核問(wèn)題?

在使用Linux操作系統(tǒng)時(shí),有時(shí)會(huì)遇到內(nèi)核問(wèn)題,例如崩潰、死鎖、驅(qū)動(dòng)程序錯(cuò)誤等。這時(shí),調(diào)試內(nèi)核問(wèn)題是必要的。Linux內(nèi)核使用了許多調(diào)試工具,例如kdb、gdb、oops跟蹤器等。下面是其中的一些調(diào)試工具和使用方法:

1.kdb – 內(nèi)核調(diào)試Shell

kdb是Linux內(nèi)核的調(diào)試Shell。用戶可以在kdb Shell中執(zhí)行各種調(diào)試操作,例如打印堆棧、查看變量、查找死鎖等。kdb通常需要安裝和配置,具體步驟請(qǐng)參考相關(guān)文檔。

2.gdb – GNU調(diào)試器

gdb是一種通用調(diào)試器,可以用于調(diào)試多種編程語(yǔ)言。在Linux系統(tǒng)中,用戶可以使用gdb調(diào)試內(nèi)核模塊和驅(qū)動(dòng)程序。例如,執(zhí)行以下命令啟動(dòng)gdb并連接到內(nèi)核模塊:

“`

sudo gdb /path/to/kernel/module

target remote :1234

“`

此命令將使用gdb調(diào)試內(nèi)核模塊,為它建立遠(yuǎn)程連接,并允許用戶在gdb中設(shè)置斷點(diǎn)、查看變量、執(zhí)行命令等。

3.oops跟蹤器

當(dāng)Linux內(nèi)核崩潰或遇到其他問(wèn)題時(shí),它將生成一條Oops消息。Oops消息通常包含有關(guān)內(nèi)核崩潰原因的信息,例如調(diào)用堆棧、寄存器狀態(tài)、內(nèi)存映射等。用戶可以使用dmesg命令查看Oops消息。例如:

“`

dmesg | grep Oops

“`

此命令將顯示最近的Oops消息。用戶需要仔細(xì)閱讀Oops消息并調(diào)查其中的問(wèn)題。

五、結(jié)論

本文介紹了Linux內(nèi)核的基本概念和操作方法。了解Linux內(nèi)核的幫助文檔可以幫助用戶充分利用和定制Linux系統(tǒng)。通過(guò)查看和更新內(nèi)核,編譯和安裝自定義內(nèi)核,以及調(diào)試內(nèi)核問(wèn)題,用戶可以更好地理解和掌握Linux內(nèi)核。雖然Linux內(nèi)核非常復(fù)雜,但掌握它可能會(huì)對(duì)用戶的Linux系統(tǒng)管理和優(yōu)化產(chǎn)生重大影響。

相關(guān)問(wèn)題拓展閱讀:

  • linux 內(nèi)核參數(shù)優(yōu)化

linux 內(nèi)核參數(shù)優(yōu)化

作為高性能WEB服務(wù)器,只調(diào)整Nginx本身的參數(shù)是不行的,因?yàn)镹ginx服務(wù)依賴于高性能的操作系統(tǒng)。

以下為常見(jiàn)的幾個(gè)Linux內(nèi)核參數(shù)優(yōu)化方法。

net.ipv4.tcp_max_tw_buckets

對(duì)于tcp連接,服務(wù)端和客戶端通信完后狀態(tài)變?yōu)閠imewait,假如某臺(tái)服務(wù)器非常忙,連接數(shù)特別多的話,那么這個(gè)timewait數(shù)量就會(huì)越來(lái)越大。

畢竟它也是會(huì)占用一定的資源,所以應(yīng)該有一個(gè)更大值,當(dāng)超過(guò)這個(gè)值,系統(tǒng)就會(huì)刪除最早的連接,這樣始終保持在一個(gè)數(shù)量級(jí)。

這個(gè)數(shù)值就是由net.ipv4.tcp_max_tw_buckets這個(gè)參數(shù)來(lái)決定的。

CentOS7系統(tǒng),你可以使用sysctl -a |grep tw_buckets來(lái)查看它的值,默認(rèn)為32768,

你可以適當(dāng)把它調(diào)低,比如調(diào)整到8000,畢竟這個(gè)狀態(tài)的連接太多也是會(huì)消耗資源的。

但你不要把它返團(tuán)知調(diào)到幾十、幾百這樣,因?yàn)檫@種狀態(tài)的tcp連接也是有用的,

如果同樣的客戶端再次和服務(wù)端通信,就不用再次建立新的連接了,用這個(gè)舊的通道,省時(shí)省力。

net.ipv4.tcp_tw_recycle = 1

該參數(shù)的作用是快速回收timewait狀態(tài)的連接。上面雖然提到系統(tǒng)會(huì)自動(dòng)刪除掉timewait狀態(tài)的連接,但如果把這樣的連接重新利用起來(lái)豈不是更好。

所以該參數(shù)設(shè)置為1就可以讓timewait狀態(tài)的連接快速回收,它需要和下面的參數(shù)配合一起使用。

net.ipv4.tcp_tw_reuse = 1

該參數(shù)設(shè)置為1,將timewait狀態(tài)的連接重新用或盯于新的TCP連接,要結(jié)合上面的參數(shù)一起使用。

net.ipv4.tcp_syncookies = 1

tcp三次握手中,客戶端向服務(wù)端發(fā)起syn請(qǐng)求,服務(wù)端收到后,也會(huì)向客戶端發(fā)起syn請(qǐng)求同時(shí)連帶ack確認(rèn),

假如客戶端發(fā)送請(qǐng)求后直接斷開(kāi)和服務(wù)端的連接,不接收服務(wù)端發(fā)起的這個(gè)請(qǐng)求,服務(wù)端會(huì)重試多次,

這個(gè)重試的過(guò)程會(huì)持續(xù)一段時(shí)間(通常高于30s),當(dāng)這種狀態(tài)的連接數(shù)量非常大時(shí),服務(wù)器會(huì)消耗很大的資源,從而造成癱瘓,

正常的連接進(jìn)不來(lái),這種惡意的半連接行為其實(shí)叫做syn flood攻擊。

設(shè)置為1,是開(kāi)啟SYN Cookies,開(kāi)啟后可以避免發(fā)生上述的syn flood攻擊。

開(kāi)啟該參數(shù)后,服務(wù)端接收客戶端的ack后,再向客戶端發(fā)送ack+syn之前會(huì)要求client在短時(shí)間內(nèi)回應(yīng)一個(gè)序號(hào),

如果客戶端不能提供序號(hào)或者提供的序號(hào)不對(duì)則認(rèn)為該客戶端不合法,于是不會(huì)發(fā)ack+syn給客戶端,更涉及不到重試。

net.ipv4.tcp_max_syn_backlog

該參數(shù)定義系統(tǒng)能接受的更大半連接狀態(tài)的tcp連接數(shù)。客戶端向服務(wù)端發(fā)送了syn包,服務(wù)端收到后,會(huì)記錄一下,

該參數(shù)決定最多能記錄幾個(gè)這樣的連接。在CentOS7,默認(rèn)是256,當(dāng)有syn flood攻擊時(shí),這個(gè)數(shù)值太小則很容易導(dǎo)致服務(wù)器癱瘓,

實(shí)際上此時(shí)服務(wù)器并沒(méi)有消耗太多資源(cpu、內(nèi)存等),所以可以適當(dāng)調(diào)大它,比如調(diào)整到30000。

net.ipv4.tcp_syn_retries

該參數(shù)適用于客戶端,它定義發(fā)起syn的更大重試次數(shù),默認(rèn)為6,建議改為2。

net.ipv4.tcp_synack_retries

該參數(shù)適用于服務(wù)端,它定義發(fā)起syn+ack的更大重試次數(shù),默認(rèn)為5,建議改為2,可以適當(dāng)預(yù)防syn flood攻擊。

net.ipv4.ip_local_port_range

該參數(shù)定義端口范圍,系統(tǒng)默認(rèn)保留端口為1024及以下,以上部分為自定義端口。這個(gè)參數(shù)適用于客戶端,

當(dāng)客戶漏消端和服務(wù)端建立連接時(shí),比如說(shuō)訪問(wèn)服務(wù)端的80端口,客戶端隨機(jī)開(kāi)啟了一個(gè)端口和服務(wù)端發(fā)起連接,

這個(gè)參數(shù)定義隨機(jī)端口的范圍。默認(rèn)為,建議調(diào)整為。

net.ipv4.tcp_fin_timeout

tcp連接的狀態(tài)中,客戶端上有一個(gè)是FIN-WAIT-2狀態(tài),它是狀態(tài)變遷為timewait前一個(gè)狀態(tài)。

該參數(shù)定義不屬于任何進(jìn)程的該連接狀態(tài)的超時(shí)時(shí)間,默認(rèn)值為60,建議調(diào)整為6。

net.ipv4.tcp_keepalive_time

tcp連接狀態(tài)里,有一個(gè)是established狀態(tài),只有在這個(gè)狀態(tài)下,客戶端和服務(wù)端才能通信。正常情況下,當(dāng)通信完畢,

客戶端或服務(wù)端會(huì)告訴對(duì)方要關(guān)閉連接,此時(shí)狀態(tài)就會(huì)變?yōu)閠imewait,如果客戶端沒(méi)有告訴服務(wù)端,

并且服務(wù)端也沒(méi)有告訴客戶端關(guān)閉的話(例如,客戶端那邊斷網(wǎng)了),此時(shí)需要該參數(shù)來(lái)判定。

比如客戶端已經(jīng)斷網(wǎng)了,但服務(wù)端上本次連接的狀態(tài)依然是established,服務(wù)端為了確認(rèn)客戶端是否斷網(wǎng),

就需要每隔一段時(shí)間去發(fā)一個(gè)探測(cè)包去確認(rèn)一下看看對(duì)方是否在線。這個(gè)時(shí)間就由該參數(shù)決定。它的默認(rèn)值為7200秒,建議設(shè)置為30秒。

net.ipv4.tcp_keepalive_intvl

該參數(shù)和上面的參數(shù)是一起的,服務(wù)端在規(guī)定時(shí)間內(nèi)發(fā)起了探測(cè),查看客戶端是否在線,如果客戶端并沒(méi)有確認(rèn),

此時(shí)服務(wù)端還不能認(rèn)定為對(duì)方不在線,而是要嘗試多次。該參數(shù)定義重新發(fā)送探測(cè)的時(shí)間,即之一次發(fā)現(xiàn)對(duì)方有問(wèn)題后,過(guò)多久再次發(fā)起探測(cè)。

默認(rèn)值為75秒,可以改為3秒。

net.ipv4.tcp_keepalive_probes

第10和第11個(gè)參數(shù)規(guī)定了何時(shí)發(fā)起探測(cè)和探測(cè)失敗后再過(guò)多久再發(fā)起探測(cè),但并沒(méi)有定義一共探測(cè)幾次才算結(jié)束。

該參數(shù)定義發(fā)起探測(cè)的包的數(shù)量。默認(rèn)為9,建議設(shè)置2。

設(shè)置和范例

在Linux下調(diào)整內(nèi)核參數(shù),可以直接編輯配置文件/etc/sysctl.conf,然后執(zhí)行sysctl -p命令生效。

一、Sysctl命令用來(lái)配置與顯示在/proc/sys目錄中的內(nèi)核參數(shù).如果想使參數(shù)長(zhǎng)期保存,可以通過(guò)編輯/etc/sysctl.conf文件來(lái)實(shí)現(xiàn)。

命令格式:

sysctl -w variable=value

sysctl -p (default /etc/sysctl.conf)

sysctl –a

常用參數(shù)的意義:

-w 臨時(shí)改變某個(gè)指定參數(shù)的值,如

# sysctl -w net.ipv4.ip_forward=1

-a 顯示所有的系統(tǒng)參數(shù)

-p從指定的文件加載系統(tǒng)參數(shù),默認(rèn)從/etc/sysctl.conf 文件中加載,如:

以上兩種方法都可能立即開(kāi)啟路由功能,但如果系統(tǒng)重啟,或執(zhí)行了

# service network restart

命令,所設(shè)置的值即會(huì)丟失,如果想永久保留配置,可以修改/etc/sysctl.conf文件,將 net.ipv4.ip_forward=0改為net.ipv4.ip_forward=1

二、linux內(nèi)核參數(shù)調(diào)整:linux 內(nèi)核參數(shù)調(diào)整有兩種方式

方法一:修改/proc下內(nèi)核參數(shù)文件內(nèi)容,不能使用編輯器來(lái)修改內(nèi)核參數(shù)文件,理由是由于內(nèi)核隨時(shí)可能更改這些文件中的任意一個(gè),另外,這或桐鄭些內(nèi)核參數(shù)文件都是虛擬文件,實(shí)際中不存在,因此不能使用編輯器進(jìn)行編輯,而是使用echo命令,然后從命令行將輸出重定向至 /proc 下所選定的文件中。如:將 timeout_timewait 參數(shù)設(shè)置為30秒:

參數(shù)修改后立即生效,但是重啟系統(tǒng)后,該參數(shù)又恢復(fù)成默認(rèn)值。因此,想永久更改內(nèi)核參數(shù),需要修改/etc/sysctl.conf文件

方法二.修改/etc/sysctl.conf文件。檢查sysctl.conf文件,如果已經(jīng)包含需要修改的參數(shù),則修改該參數(shù)的值,如果沒(méi)有需要修改的參數(shù),在sysctl.conf文件中添加參數(shù)。如:

net.ipv4.tcp_fin_timeout=30

保存退出后,可以重啟機(jī)器使參數(shù)生效,如果想使參數(shù)馬上生效,也可以執(zhí)行如下命令:

三、sysctl.conf 文件中參數(shù)設(shè)置及說(shuō)明

proc/sys/net/core/wmem_max

更大socket寫(xiě)buffer,可參考的優(yōu)化值:873200

/proc/sys/net/core/rmem_max

更大socket讀buffer,可參考的優(yōu)化值:873200

/proc/sys/net/ipv4/tcp_wmem

TCP寫(xiě)buffer,可參考的優(yōu)化值:73200

/proc/sys/net/ipv4/tcp_rmem

TCP讀buffer,可參考的優(yōu)化值:873200

/proc/sys/net/衫頌ipv4/tcp_mem

同樣有3個(gè)值,意思是:

net.ipv4.tcp_mem:低于此值,TCP沒(méi)有內(nèi)存壓力.

net.ipv4.tcp_mem:在此值下,進(jìn)入內(nèi)存壓力階段.

net.ipv4.tcp_mem:高于輪啟此值,TCP拒絕分配socket.

上述內(nèi)存單位是頁(yè),而不是字節(jié).可參考的優(yōu)化值是:

/proc/sys/net/core/netdev_max_backlog

進(jìn)入包的更大設(shè)備隊(duì)列.默認(rèn)是300,對(duì)重負(fù)載服務(wù)器而言,該值太低,可調(diào)整到1000

/proc/sys/net/core/somaxconn

listen()的默認(rèn)參數(shù),掛起請(qǐng)求的更大數(shù)量.默認(rèn)是128.對(duì)繁忙的服務(wù)器,增加該值有助于網(wǎng)絡(luò)性能.可調(diào)整到256.

/proc/sys/net/core/optmem_max

socket buffer的更大初始化值,默認(rèn)10K

/proc/sys/net/ipv4/tcp_max_syn_backlog

進(jìn)入SYN包的更大請(qǐng)求隊(duì)列.默認(rèn)1024.對(duì)重負(fù)載服務(wù)器,可調(diào)整到2023

/proc/sys/net/ipv4/tcp_retries2

TCP失敗重傳次數(shù),默認(rèn)值15,意味著重傳15次才徹底放棄.可減少到5,盡早釋放內(nèi)核資源.

/proc/sys/net/ipv4/tcp_keepalive_time

/proc/sys/net/ipv4/tcp_keepalive_intvl

/proc/sys/net/ipv4/tcp_keepalive_probes

這3個(gè)參數(shù)與TCP KeepAlive有關(guān).默認(rèn)值是:

tcp_keepalive_time = 7200 seconds (2 hours)

tcp_keepalive_probes = 9

tcp_keepalive_intvl = 75 seconds

意思是如果某個(gè)TCP連接在idle 2個(gè)小時(shí)后,內(nèi)核才發(fā)起probe.如果probe 9次(每次75秒)不成功,內(nèi)核才徹底放棄,認(rèn)為該連接已失效.對(duì)服務(wù)器而言,顯然上述值太大. 可調(diào)整到:

/proc/sys/net/ipv4/tcp_keepalive_time 1800

/proc/sys/net/ipv4/tcp_keepalive_intvl 30

/proc/sys/net/ipv4/tcp_keepalive_probes 3

/proc/sys/net/ipv4/ip_local_port_range

指定端口范圍的一個(gè)配置,默認(rèn)是,已夠大.

net.ipv4.tcp_syncookies = 1

表示開(kāi)啟SYN Cookies。當(dāng)出現(xiàn)SYN等待隊(duì)列溢出時(shí),啟用cookies來(lái)處理,可防范少量SYN攻擊,默認(rèn)為0,表示關(guān)閉;

net.ipv4.tcp_tw_reuse = 1

表示開(kāi)啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接,默認(rèn)為0,表示關(guān)閉;

net.ipv4.tcp_tw_recycle = 1

表示開(kāi)啟TCP連接中TIME-WAIT sockets的快速回收,默認(rèn)為0,表示關(guān)閉。

net.ipv4.tcp_fin_timeout = 30

表示如果套接字由本端要求關(guān)閉,這個(gè)參數(shù)決定了它保持在FIN-WAIT-2狀態(tài)的時(shí)間。

net.ipv4.tcp_keepalive_time = 1200

表示當(dāng)keepalive起用的時(shí)候,TCP發(fā)送keepalive消息的頻度。缺省是2小時(shí),改為20分鐘。

net.ipv4.ip_local_port_range =

表示用于向外連接的端口范圍。缺省情況下很小:32768到61000,改為1024到65000。

net.ipv4.tcp_max_syn_backlog = 8192

表示SYN隊(duì)列的長(zhǎng)度,默認(rèn)為1024,加大隊(duì)列長(zhǎng)度為8192,可以容納更多等待連接的網(wǎng)絡(luò)連接數(shù)。

net.ipv4.tcp_max_tw_buckets = 5000

表示系統(tǒng)同時(shí)保持TIME_WAIT套接字的更大數(shù)量,如果超過(guò)這個(gè)數(shù)字,TIME_WAIT套接字將立刻被清除并打印警告信息。默認(rèn)為,改為 5000。對(duì)于Apache、Nginx等服務(wù)器,上幾行的參數(shù)可以很好地減少TIME_WAIT套接字?jǐn)?shù)量,但是對(duì)于Squid,效果卻不大。此項(xiàng)參數(shù)可以控制TIME_WAIT套接字的更大數(shù)量,避免Squid服務(wù)器被大量的TIME_WAIT套接字拖死。

Linux上的NAT與iptables

談起Linux上的NAT,大多數(shù)人會(huì)跟你提到iptables。原因是因?yàn)閕ptables是目前在linux上實(shí)現(xiàn)NAT的一個(gè)非常好的接口。它通過(guò)和內(nèi)核級(jí)直接操作網(wǎng)絡(luò)包,效率和穩(wěn)定性都非常高。這里簡(jiǎn)單列舉一些NAT相關(guān)的iptables實(shí)例命令,可能對(duì)于大多數(shù)實(shí)現(xiàn)有多幫助。

這里說(shuō)明一下,為了節(jié)省篇幅,這里把準(zhǔn)備工作的命令略去了,僅僅列出核心步驟命令,所以如果你單單執(zhí)行這些沒(méi)有實(shí)現(xiàn)功能的話,很可能由于準(zhǔn)備工作沒(méi)有做好。如果你對(duì)整個(gè)命令細(xì)節(jié)感興趣的話,可以直接訪問(wèn)我的《如何讓你的Linux網(wǎng)關(guān)更強(qiáng)大》系列文章,其中對(duì)于各個(gè)腳本有詳細(xì)的說(shuō)明和描述。

EXTERNAL=”eth0″

INTERNAL=”eth1″

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

iptables -t nat -A POSTROUTING -o $EXTERNAL -j MASQUERADE

LOCAL_EX_IP=11.22.33.44 #設(shè)定網(wǎng)關(guān)的外網(wǎng)卡ip,對(duì)于多ip情況,參考《如何讓你的Linux網(wǎng)關(guān)更強(qiáng)大》系列文章

LOCAL_IN_IP=192.168.1.1 #設(shè)定網(wǎng)關(guān)的內(nèi)網(wǎng)卡ip

INTERNAL=”eth1″ #設(shè)定內(nèi)網(wǎng)卡

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

modprobe ip_conntrack_ftp

modprobe ip_nat_ftp

iptables -t nat -A PREROUTING -d $LOCAL_EX_IP -p tcp –dport 80 -j DNAT –to 192.168.1.10

iptables -t nat -A POSTROUTING -d 192.168.1.10 -p tcp –dport 80 -j SNAT –to $LOCAL_IN_IP

iptables -A FORWARD -o $INTERNAL -d 192.168.1.10 -p tcp –dport 80 -j ACCEPT

iptables -t nat -A OUTPUT -d $LOCAL_EX_IP -p tcp –dport 80 -j DNAT –to 192.168.1.10

獲取系統(tǒng)中的NAT信息和診斷錯(cuò)誤

了解/proc目錄的意義

在Linux系統(tǒng)中,/proc是一個(gè)特殊的目錄,proc文件系統(tǒng)是一個(gè)偽文件系統(tǒng),它只存在內(nèi)存當(dāng)中,而不占用外存空間。它包含當(dāng)前系統(tǒng)的一些參數(shù)(variables)和狀態(tài)(status)情況。它以文件系統(tǒng)的方式為訪問(wèn)系統(tǒng)內(nèi)核數(shù)據(jù)的操作提供接口

通過(guò)/proc可以了解到系統(tǒng)當(dāng)前的一些重要信息,包括磁盤(pán)使用情況,內(nèi)存使用狀況,硬件信息,網(wǎng)絡(luò)使用情況等等,很多系統(tǒng)監(jiān)控工具(如HotSaNIC)都通過(guò)/proc目錄獲取系統(tǒng)數(shù)據(jù)。

另一方面通過(guò)直接操作/proc中的參數(shù)可以實(shí)現(xiàn)系統(tǒng)內(nèi)核參數(shù)的調(diào)節(jié),比如是否允許ip轉(zhuǎn)發(fā),syn-cookie是否打開(kāi),tcp超時(shí)時(shí)間等。

獲得參數(shù)的方式:

之一種:cat /proc/xxx/xxx,如 cat /proc/sys/net/ipv4/conf/all/rp_filter

第二種:sysctl xxx.xxx.xxx,如 sysctl net.ipv4.conf.all.rp_filter

改變參數(shù)的方式:

之一種:echo value > /proc/xxx/xxx,如 echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter

第二種:sysctl variable=value,如 sysctl net.ipv4.conf.all.rp_filter=1

以上設(shè)定系統(tǒng)參數(shù)的方式只對(duì)當(dāng)前系統(tǒng)有效,重起系統(tǒng)就沒(méi)了,想要保存下來(lái),需要寫(xiě)入/etc/sysctl.conf文件中

通過(guò)執(zhí)行 man 5 proc可以獲得一些關(guān)于proc目錄的介紹

查看系統(tǒng)中的NAT情況

和NAT相關(guān)的系統(tǒng)變量

/proc/slabinfo:內(nèi)核緩存使用情況統(tǒng)計(jì)信息(Kernel slab allocator statistics)

/proc/sys/net/ipv4/ip_conntrack_max:系統(tǒng)支持的更大ipv4連接數(shù),默認(rèn)65536(事實(shí)上這也是理論更大值)

/proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established 已建立的tcp連接的超時(shí)時(shí)間,默認(rèn)432023,也就是5天

和NAT相關(guān)的狀態(tài)值

/proc/net/ip_conntrack:當(dāng)前的前被跟蹤的連接狀況,nat翻譯表就在這里體現(xiàn)(對(duì)于一個(gè)網(wǎng)關(guān)為主要功能的Linux主機(jī),里面大部分信息是NAT翻譯表)

/proc/sys/net/ipv4/ip_local_port_range:本地開(kāi)放端口范圍,這個(gè)范圍同樣會(huì)間接限制NAT表規(guī)模

cat /proc/sys/net/ipv4/ip_conntrack_max

cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established

cat /proc/net/ip_conntrack

cat /proc/sys/net/ipv4/ip_local_port_range

wc -l /proc/net/ip_conntrack

grep ip_conntrack /proc/slabinfo | grep -v expect | awk ‘{print 2;}’

grep ip_conntrack /proc/slabinfo | grep -v expect | awk ‘{print 3;}’

cat /proc/net/ip_conntrack | cut -d ‘ ‘ -f 10 | cut -d ‘=’ -f 2 | sort | uniq -c | sort -nr | head -n 10

linux 內(nèi)核幫助文檔的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux 內(nèi)核幫助文檔,掌握Linux內(nèi)核:詳盡幫助文檔解讀,linux 內(nèi)核參數(shù)優(yōu)化的信息別忘了在本站進(jìn)行查找喔。

香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。


文章標(biāo)題:掌握Linux內(nèi)核:詳盡幫助文檔解讀(linux內(nèi)核幫助文檔)
網(wǎng)頁(yè)路徑:http://www.dlmjj.cn/article/dhphoie.html