日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
LinuxTap設(shè)備診斷:快速確定問題原因(linuxtap設(shè)備診斷)

Linux Tap設(shè)備是Linux中一個(gè)非常重要的網(wǎng)絡(luò)設(shè)備,它允許我們?cè)诓皇褂梦锢砭W(wǎng)卡的情況下,創(chuàng)建虛擬網(wǎng)絡(luò)設(shè)備。它的應(yīng)用非常廣泛,如網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)、網(wǎng)橋、虛擬專用網(wǎng)絡(luò)(VPN)等等。但是,在實(shí)際應(yīng)用中,我們經(jīng)常會(huì)遇到各種問題,如網(wǎng)絡(luò)延遲、網(wǎng)絡(luò)連接失敗等等。這些問題的原因非常復(fù)雜,本文將從診斷的角度,介紹如何快速定位Linux Tap設(shè)備的問題原因。

一、檢查系統(tǒng)日志

在Linux中,系統(tǒng)日志是一個(gè)非常重要的工具。通過查看系統(tǒng)日志,我們可以了解系統(tǒng)的運(yùn)行情況,包括系統(tǒng)啟動(dòng)、網(wǎng)絡(luò)連接、程序運(yùn)行等等。對(duì)于Linux Tap設(shè)備問題的診斷,我們首先需要檢查系統(tǒng)日志,看看是否有相關(guān)的錯(cuò)誤信息。

在大多數(shù)Linux發(fā)行版中,系統(tǒng)日志通常存儲(chǔ)在/var/log/messages或/var/log/syslog文件中。我們可以使用tl或less命令查看最新的系統(tǒng)日志。例如,使用tl命令查看/var/log/messages文件:

“`

$ tl -f /var/log/messages

“`

如果我們?cè)谑褂肨ap設(shè)備的過程中,發(fā)現(xiàn)網(wǎng)絡(luò)連接失敗,可以使用grep命令查找相關(guān)的錯(cuò)誤信息,例如:

“`

$ grep -i ‘tap’ /var/log/messages

“`

這樣我們就可以篩選出與Tap設(shè)備相關(guān)的錯(cuò)誤信息了。在Linux中,許多錯(cuò)誤信息都會(huì)顯示在系統(tǒng)日志中,因此檢查系統(tǒng)日志是診斷Tap設(shè)備問題的一個(gè)重要步驟。

二、檢查網(wǎng)絡(luò)配置

Linux Tap設(shè)備依賴于網(wǎng)絡(luò)配置,如果網(wǎng)絡(luò)配置不正確,就會(huì)導(dǎo)致網(wǎng)絡(luò)連接失敗。因此,在診斷Tap設(shè)備問題時(shí),需要仔細(xì)檢查網(wǎng)絡(luò)配置,包括IP地址、網(wǎng)關(guān)、DNS等等。我們可以使用ifconfig命令查看Tap設(shè)備的網(wǎng)絡(luò)配置信息,例如:

“`

$ ifconfig tap0

tap0: flags=4099 mtu 1500

ether 00:11:22:33:44:55 txqueuelen 1000 (Ethernet)

RX packets 0 bytes 0 (0.0 B)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 0 bytes 0 (0.0 B)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

“`

可以看到,該Tap設(shè)備的名稱為tap0,其IP地址、網(wǎng)關(guān)等信息并未顯示。如果我們需要查看Tap設(shè)備的詳細(xì)網(wǎng)絡(luò)配置信息,可以使用ip命令,例如:

“`

$ ip addr show tap0

3: tap0: mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000

link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff

inet 192.168.1.100/24 brd 192.168.1.255 scope global tap0

valid_lft forever preferred_lft forever

“`

可以看到,該Tap設(shè)備的IP地址為192.168.1.100,掩碼為24位,網(wǎng)關(guān)等信息并未顯示。如果我們?cè)跈z查網(wǎng)絡(luò)配置時(shí)發(fā)現(xiàn)配置錯(cuò)誤,可以使用ifconfig或ip命令進(jìn)行調(diào)整,例如:

“`

$ ifconfig tap0 192.168.1.100 netmask 255.255.255.0 up

“`

“`

$ ip addr add 192.168.1.100/24 dev tap0

$ ip link set dev tap0 up

“`

三、檢查路由表

在Linux中,路由表是一個(gè)非常重要的概念,它決定了網(wǎng)絡(luò)數(shù)據(jù)包的轉(zhuǎn)發(fā)方式。如果路由表配置不正確,就會(huì)導(dǎo)致網(wǎng)絡(luò)連接失敗。在診斷Tap設(shè)備問題時(shí),需要仔細(xì)檢查路由表信息,包括默認(rèn)路由、靜態(tài)路由等。我們可以使用route命令查看路由表信息,例如:

“`

$ route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth0

192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0

“`

可以看到,該主機(jī)的默認(rèn)路由為192.168.1.1,靜態(tài)路由表為空。如果我們?cè)跈z查路由表時(shí)發(fā)現(xiàn)配置錯(cuò)誤,可以使用route命令進(jìn)行調(diào)整,例如:

“`

$ route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.254

“`

這樣會(huì)添加一條靜態(tài)路由,將網(wǎng)絡(luò)192.168.2.0/24的數(shù)據(jù)包通過網(wǎng)關(guān)192.168.1.254轉(zhuǎn)發(fā)。

四、檢查網(wǎng)絡(luò)流量

在Linux中,網(wǎng)絡(luò)流量是非常重要的,它決定了網(wǎng)絡(luò)質(zhì)量和性能。如果網(wǎng)絡(luò)流量異常,就會(huì)導(dǎo)致網(wǎng)絡(luò)連接失敗等問題。在診斷Tap設(shè)備問題時(shí),需要仔細(xì)檢查網(wǎng)絡(luò)流量,包括流量狀態(tài)、流量速度等。我們可以使用tcpdump命令查看網(wǎng)絡(luò)流量,例如:

“`

$ tcpdump -i tap0

“`

這樣會(huì)抓取該Tap設(shè)備的所有網(wǎng)絡(luò)數(shù)據(jù)包。如果我們?cè)跈z查網(wǎng)絡(luò)流量時(shí)發(fā)現(xiàn)異常,可以使用tcpdump或其他網(wǎng)絡(luò)監(jiān)控工具進(jìn)一步分析,找出流量異常的原因。

結(jié)語

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

  • 如何選擇一個(gè) Linux Tracer
  • 在linux中是不是能看到設(shè)備節(jié)點(diǎn)就說明設(shè)備可以被訪問了解決思路

如何選擇一個(gè) Linux Tracer

tracer 是一個(gè)高級(jí)的性能分析和診斷工具,但是不要讓這名詞唬住你,如果你使用過 strace 和tcpdump,其實(shí)你就已經(jīng)使用過 tracer 了。系統(tǒng) tracer 可以獲取更多的系統(tǒng)調(diào)用和數(shù)據(jù)包。它們通常能跟蹤任意的內(nèi)核和應(yīng)用程序。

有太多的 linux tracer 可以選擇。每一種都有其官方的(或非官方的)的卡通的獨(dú)角獸吉祥物,足夠撐起一臺(tái)”兒童劇”了。

那么我們應(yīng)該使用哪個(gè) tracer 呢?

我會(huì)為兩類讀者回答這個(gè)問題,大部分人和性能/內(nèi)核工程師。過一段時(shí)間這些可能會(huì)發(fā)生變化,我會(huì)持續(xù)跟進(jìn)并補(bǔ)充,大概會(huì)一年更新一次。

多數(shù)人

多數(shù)人 (開發(fā)者,系統(tǒng)管理員,開發(fā)管理者,運(yùn)維人員,評(píng)測(cè)人員,等等) 不關(guān)心系統(tǒng)追蹤器的細(xì)節(jié)。下面是對(duì)于追蹤器你應(yīng)該知道和做的:

1. 使用perf_events分析CPU性能

使用 perf_events 做 CPU 性能分析。性能指標(biāo)可以使用flame graph 等工具做可視化。

git clone –depth 1

perf record -F 99 -a -g — sleep 30

perf script | ./FlameGraph/stackcollapse-perf.pl | ./FlameGraph/flamegraph.pl > perf.svg

Linux perf_events (又稱 “perf”,同命令名) 是 Linux 用戶的官方追蹤器和性能分析器。內(nèi)置于內(nèi)核代碼,有很好維護(hù)(近來獲得快速增強(qiáng)),通常通過 linux 命令行工具包添加。

perf 有很多功能,如果只能推薦一個(gè),我選擇 CPU 性能分析。盡陵友管這只是采樣,而不是從技術(shù)上追蹤事件。最難的部分是獲取完整的棧和信息,我為 java 和 node.js 做的一個(gè)演講 Linux Profiling at Netflix中已經(jīng)說過這個(gè)問題

2.了解其他的Tracer

正如我一個(gè)朋友說的:“你不需要知道如何操作 X 射線機(jī)器,但是一旦你吞了一枚硬幣,你得知道這得去做 X 射線”,你應(yīng)該了解各種 tracer 都能做什么,這樣就能在你工作中真正需要 tracer 的時(shí)候,你既可以選擇稍后學(xué)習(xí)使用,也可以雇相應(yīng)的人來完成。

簡(jiǎn)短來說:幾乎所有的東西都可以使用 tracer 來尺手槐進(jìn)行分析和跟蹤。如,文件系統(tǒng),網(wǎng)絡(luò)處理器,硬件驅(qū)動(dòng)器,全部的應(yīng)用程序??梢钥匆幌挛业膫€(gè)人網(wǎng)站上關(guān)于 ftrace的文章,還有我寫的薯螞關(guān)于perf_events 文檔介紹,可以做為一個(gè)追蹤(或者性能分析)的例子。

3. 尋求前端支持工具

如果你正想買一個(gè)能支持跟蹤 Linux 的性能分析工具(有許多賣這類工具的公司)。想像一下,只需要直接點(diǎn)擊一下界面就能“洞察”整個(gè)系統(tǒng)內(nèi)核,包括隱藏的不同堆棧位置的熱圖,我在Monitorama talk 中介紹了一個(gè)這樣帶圖形界面的工具。

我開源了一些我自己開發(fā)的前端工具,盡管只是 CLI (命令行界面)而不是(圖形界面)。這些工具也會(huì)讓人們更加快速容易的使用 tracer。比如下面的例子,用我的 perf_tool,跟蹤一個(gè)新進(jìn)程:

# ./execsnoopTracing exec()s. Ctrl-C to end.

PID PPID ARGS

man ls

preconv -e UTF-8

pager -s

nroff -mandoc -rLL=164n -rLT=164n -Tutf8

在 Netflix 上,我們創(chuàng)建了一個(gè) Vector,一個(gè)分析工具的實(shí)例同時(shí)也是 Linux 上的 tracer 的最終前端。

致性能或內(nèi)核工程師

我們的工作變的越來越困難,很多的人會(huì)問我們?cè)趺礃尤プ粉?,哪種路徑可以用!為了正確理解一個(gè)路徑,你經(jīng)常需要花上至少100個(gè)小時(shí)才能做到。理解所有的 linux 路徑去做出理性的決定是一個(gè)浩大的工程。(我可能是唯一一個(gè)接近做到這件事情的人)

這里是我的建議,可以二選其一:

A) 選中一個(gè)全能的路徑,并且使它標(biāo)準(zhǔn)化,這將涉及花費(fèi)大量的時(shí)間去弄清楚它在測(cè)試環(huán)境中的細(xì)微差別和安全性。我現(xiàn)在推薦 SystemTap 的最新版本(ie,從源代碼構(gòu)建)。我知道有些公司已經(jīng)選用 LTTng,而且他們用的很好,盡管它不是非常的強(qiáng)大(雖然它更安全)。Sysdig 可以成為另一個(gè)候選如果它可以增加追蹤點(diǎn)或者 kprobes。

B) 遵循我上面提供的流程圖,它將意味著盡可能更多的使用 ftrace 或者 perf_event, eBPF 會(huì)得到整合,之后其他的路徑像 SystemTap/LTTng 會(huì)去填補(bǔ)這個(gè)空白。這就是我目前在 Netflix 做的工作。

tracer 的評(píng)論:

1. ftrace

我喜歡用 ftrace,它是內(nèi)核 hacker 的選擇,內(nèi)置于系統(tǒng)內(nèi)核,可以使用跟蹤點(diǎn)(靜態(tài)檢查點(diǎn)),能調(diào)用內(nèi)核 kprobes 和 uprobes 調(diào)試工具。并且提供幾個(gè)這樣的功能:帶可選過濾器和參數(shù)的事件追蹤功能;在內(nèi)核中進(jìn)行統(tǒng)計(jì)的事件計(jì)數(shù)和定時(shí)功能;還有函數(shù)流程遍歷的功能??梢钥匆幌聝?nèi)核代碼中 ftrace.txt 例子了解一下。ftrace 由 /sys 控制,僅支持單一的 root 用戶使用(但是你可以通過緩沖區(qū)實(shí)例破解以支持多用戶)。某些時(shí)候 Ftrace 的操作界面非常繁瑣,但是的確非常“hack”,而且它有前端界面。Steven Rostedt,ftace 的主要作者,創(chuàng)建了 trace-cmd 命令工具,而我創(chuàng)建了 perf 的工具集。我對(duì)這個(gè)工具更大的不滿就是它不可編程。舉例來說,你不能保存和獲取時(shí)間戳,不能計(jì)算延遲,不能把這些計(jì)算結(jié)果保存成直方圖的形式。你需要轉(zhuǎn)儲(chǔ)事件至用戶級(jí)別,并且花一些時(shí)間去處理結(jié)果。ftrace 可以通過 eBPF 變成可編程的。

2.perf_events

perf_events 是 Linux 用戶的主要跟蹤工具,它內(nèi)置在內(nèi)核源碼中,通常通過 linux-tools-commom 加入。也稱“perf”,同前端工具名稱,通常用來跟蹤和轉(zhuǎn)儲(chǔ)信息到一個(gè)叫做 perf.data 的文件中,perf.data 文件相當(dāng)于一個(gè)動(dòng)態(tài)的緩沖區(qū),用來保存之后需要處理的結(jié)果。ftrace 能做到的,perf_events 大都也可以做到,perf-events 不能做函數(shù)流程遍歷,少了一點(diǎn)兒“hack”勁兒(但是對(duì)于安全/錯(cuò)誤檢查有更好的支持)。它可以進(jìn)行 CPU 分析和性能統(tǒng)計(jì),用戶級(jí)堆棧解析,也可以使用對(duì)于跟蹤每行局部變量產(chǎn)生的調(diào)試信息。它也支持多用戶并發(fā)操作。和 ftrace 一樣也不支持可編程。如果要我只推薦一款 tracer,那一定是 perf 了。它能解決眾多問題,并且它相對(duì)較安全。

3. eBPF

extended Berkeley Packet Filter(eBPF)是一個(gè)可以在事件上運(yùn)行程序的高效內(nèi)核虛擬機(jī)(JIT)。它可能最終會(huì)提供 ftrace 和 perf_events 的內(nèi)核編程,并強(qiáng)化其他的 tracer。這是 Alexei Starovoitov 目前正在開發(fā)的,還沒有完全集成,但是從4.1開始已經(jīng)對(duì)一些優(yōu)秀的工具有足夠的內(nèi)核支持了,如塊設(shè)備I/O的延遲熱圖。可參考其主要作者 Alexei Starovoitov 的BPF slides和eBPF samples。

4. SystemTap

SystemTap 是最強(qiáng)大的tracer。它能做所有事情,如概要分析,跟蹤點(diǎn),探針,uprobes(來自SystemTap),USDT和內(nèi)核編程等。它將程序編譯為內(nèi)核模塊,然后加載,這是一種獲取安全的巧妙做法。它也是從tree發(fā)展而來,在過去有很多問題(多的可怕)。很多不是 SystemTap 本身的錯(cuò)——它常常是之一個(gè)使用內(nèi)核追蹤功能,也是之一個(gè)碰到 bug 的。SystemTap 的最新版本好多了(必須由源代碼編譯),但是很多人仍然會(huì)被早期版本嚇到。如果你想用它,可先在測(cè)試環(huán)境中使用,并與irc.freenode.net上 的 #systemtap 開發(fā)人員交流。(Netflix 有容錯(cuò)機(jī)制,我們已經(jīng)使用了 SystemTap,但是可能我們考慮的安全方面的問題比你們少。)我更大的不滿是,它似乎認(rèn)為你有常常沒有的內(nèi)核 debug 信息。實(shí)際上沒有它也能做很多事情,但是缺少文檔和例子(我必須自己全靠自己開始學(xué)習(xí))。

5. LTTng

LTTng 優(yōu)化了事件采集,這比其他 tracers 做得好。它從 tree 發(fā)展而來,它的核心很簡(jiǎn)單:通過一組小規(guī)模的固定指令集將事件寫入追蹤緩沖區(qū),這種方式使它安全、快速,缺點(diǎn)是它沒有內(nèi)核編碼的簡(jiǎn)單途徑。我一直聽說這不是一個(gè)大問題,因?yàn)楸M管需要后期處理,它也已經(jīng)優(yōu)化到可以充分的度量。此外,它還首創(chuàng)了一個(gè)不同的分析技術(shù),更多對(duì)所有關(guān)注事件的黑盒記錄將稍后以 GUI 的方式進(jìn)行研究。我關(guān)心的是前期沒有考慮到要錄制的事件缺失問題如何解決,但我真正要做的是花更多時(shí)間來看它在實(shí)踐中用的怎么樣。這是我花的時(shí)間最少的一個(gè) tracer(沒有什么特殊原因)。

6. Ktap

ktap 在過去是一款前景很好的 tracer,它使用內(nèi)核中的 lua 虛擬機(jī)處理,在沒有調(diào)試信息的情況下在嵌入式設(shè)備上運(yùn)行的很好。它分為幾個(gè)步驟,并在有一段時(shí)間似乎超過了 Linux 上所有的追蹤器。然后 eBPF 開始進(jìn)行內(nèi)核集成,而 ktap 的集成在它可以使用 eBPF 替代它自己的虛擬機(jī)后才開始。因?yàn)?eBPF 仍將持續(xù)集成幾個(gè)月,ktap 開發(fā)者要繼續(xù)等上一段時(shí)間。我希??今年晚些時(shí)候它能重新開發(fā)。

7. dtrace4linux

dtrace4linux 主要是 Paul Fox 一個(gè)人在業(yè)余時(shí)間完成的,它是 Sun DTrace 的 Linux 版本。它引入矚目,還有一些 provider 可以運(yùn)行,但是從某種程度上來說還不完整,更多的是一種實(shí)驗(yàn)性的工具(不安全)。我認(rèn)為,顧忌到許可問題,人們會(huì)小心翼翼的為 dtrace4linux 貢獻(xiàn)代碼:由于當(dāng)年 Sun 開源DTrace 使用的是 CDDL 協(xié)議,而 dtrace4linux 也不大可能最終進(jìn)入 Linux kernel。Paul 的方法很可能會(huì)使其成為一個(gè) add-on。我很樂意看到 Linux 平臺(tái)上的 DTrace 和這個(gè)項(xiàng)目的完成,我認(rèn)為當(dāng)我加入 Netflix 后將會(huì)花些時(shí)間來協(xié)助完成這個(gè)項(xiàng)目。然而,我還是要繼續(xù)使用內(nèi)置的 tracers,如 ftrace 和 perf_events。

8.OL DTrace

Oracle Linux DTrace為了將 DTrace 引入 Linux,特別是 Oracle Linux,做出了很大的努力。這些年來發(fā)布的多個(gè)版本表明了它的穩(wěn)定進(jìn)展。開發(fā)者們以一種對(duì)這個(gè)項(xiàng)目的前景看好的態(tài)度談?wù)撝倪M(jìn) DTrace 測(cè)試套件。很多有用的 provider 已經(jīng)完成了,如:syscall, profile, sdt, proc, sched 以及 USDT。我很期待 fbt(function boundary tracing, 用于內(nèi)核動(dòng)態(tài)跟蹤)的完成,它是 Linux 內(nèi)核上非常棒的 provider。OL DTrace 最終的成功將取決于人們對(duì)運(yùn)行 Oracle Linux(為技術(shù)支持付費(fèi))有多大興趣,另一方面取決于它是否完全開源:它的內(nèi)核元件是開源的,而我沒有看到它的用戶級(jí)別代碼。

9. sysdig

sysdig是一個(gè)使用類tcpdump語法來操作系統(tǒng)事件的新tracer,它使用lua提交進(jìn)程。它很優(yōu)秀,它見證了系統(tǒng)跟蹤領(lǐng)域的變革。它的局限性在于它只在當(dāng)前進(jìn)行系統(tǒng)調(diào)用,在提交進(jìn)行時(shí)將所有事件轉(zhuǎn)儲(chǔ)為用戶級(jí)別。你可以使用系統(tǒng)調(diào)用做很多事情,然而我還是很希望它能支持跟蹤點(diǎn)、kprobe和uprobe。我還期待它能支持eBPF做內(nèi)核摘要。目前,sysdig開發(fā)者正在增加容器支持。留意這些內(nèi)容。

延伸閱讀

我關(guān)于 tracer 的工作包括:

ftrace:我的 perf-tools工具集(參考實(shí)例目錄);我在 lwn.net 上的 關(guān)于ftrace的文章;LISA14的發(fā)言;還有帖子:函數(shù)計(jì)數(shù), iosnoop,opensnoop,execsnoop,TCP轉(zhuǎn)發(fā), uprobes 以及USDT。

perf_evenets:我的網(wǎng)頁(yè) perf_events實(shí)例;SCALE上的發(fā)言Netflix的Linux性能分析;還有帖子CPU采樣,靜態(tài)追蹤點(diǎn),熱點(diǎn)圖,計(jì)數(shù),內(nèi)核行追蹤,off-CPU時(shí)間圖。

eBPF:帖子eBPF:邁出一小步,和一些BPF工具(我需要發(fā)布更多)。

SystemTap:我很久以前寫了一篇有點(diǎn)過期的帖子使用SystemTap。最近,我發(fā)布了一些工具systemtap-lwtools來演示如何在沒有內(nèi)核診斷信息的情況下使用SystemTap。

LTTng:我只花了一點(diǎn)時(shí)間,還不足以發(fā)表任何內(nèi)容。

ktap:我的網(wǎng)頁(yè)ktap實(shí)例包含一些早期版本的單行小程序和腳本。

dtrace4linux:我在系統(tǒng)性能一書中給出了一些實(shí)例,并曾經(jīng)開發(fā)了一些小的修復(fù)程序,如timestamps。

OL DTrace:由于它直接由DTrace轉(zhuǎn)變而來,很多我早期關(guān)于DTrace的工作都有相關(guān)性(如果在這里給出鏈接的話就太多了,可以在我的主頁(yè)上搜索)。當(dāng)它更完善時(shí),我會(huì)開發(fā)一些特殊工具。

sysdig:我向 fileslower 和 subsecond offset spectrogram 貢獻(xiàn)了代碼。

其他:我寫了關(guān)于strace 的注意事項(xiàng)。

請(qǐng)不要有更多的 tracer!如果你想知道為什么 Linux 不僅僅只有一個(gè) tracer,或者只用本身的DTrace,你可以在我的演講稿從DTrace到Linux中找到答案,從28張幻燈片開始。

在linux中是不是能看到設(shè)備節(jié)點(diǎn)就說明設(shè)備可以被訪問了解決思路

Linux 中的設(shè)備有2種類型:字符設(shè)備(無緩沖且只能順序存取)、塊設(shè)備(有緩沖且磨洞桐可以隨機(jī)存取)。每個(gè)字符設(shè)備和塊設(shè)備都必須有主、次設(shè)備號(hào),主設(shè)備號(hào)相同的設(shè)備是同類設(shè)備(使用同一個(gè)驅(qū)動(dòng)程序)。這些設(shè)備中,有些設(shè)備是對(duì)實(shí)際存在的物理硬件的抽象,而有些設(shè)備則是內(nèi)核自身提供的功能(不依賴于特定的物理硬件,又稱為”虛擬設(shè)備”)。每個(gè)設(shè)備在 /dev 目錄下都有一個(gè)對(duì)應(yīng)的文件(節(jié)點(diǎn))??梢酝ㄟ^ cat /proc/devices 命令查看當(dāng)前已經(jīng)加載的設(shè)備驅(qū)動(dòng)程序的主設(shè)備號(hào)。內(nèi)核能夠識(shí)別的所有設(shè)備都記錄在原碼樹下的 Documentation/devices.txt 文件中。在 /dev 目錄下除了字符設(shè)備和塊設(shè)備節(jié)點(diǎn)之外還通常還會(huì)存在:FIFO管道、Socket、軟/硬連接、目錄。這些東西沒有主/次設(shè)備號(hào)。

了解這些設(shè)備的最基本要求就是對(duì) 每個(gè)設(shè)備文件的含義了如指掌,下面就醫(yī)列表的形式列出常見的設(shè)備文件以及相應(yīng)的含義(比較偏僻的就省略了):

主設(shè)備號(hào) 設(shè)備類型

次設(shè)備號(hào)=文件名 簡(jiǎn)要說明

0 未命名設(shè)備(例如:掛載的非設(shè)備)

0 = 未空設(shè)備號(hào)保留

1 char 內(nèi)存設(shè)備

1 = /dev/mem 直接存取物理瞎坦內(nèi)存

2 = /dev/kmem 存取經(jīng)過內(nèi)核虛擬之后的內(nèi)存

3 = /dev/null 空設(shè)備。任何寫入都將被直接丟棄,任何讀取都將得到EOF。

4 = /dev/port 存取 I/O 端口

5 = /dev/zero 零字節(jié)源,只能讀取到無限多的零字節(jié)。

7 = /dev/full 滿設(shè)備。任何寫入都將失敗,并把errno設(shè)為ENOSPC以表示沒有剩余空間。

8 = /dev/random 隨機(jī)數(shù)發(fā)生器。完全由用戶的輸入來產(chǎn)生隨機(jī)數(shù)。

如果用戶停止所有動(dòng)作,則停止產(chǎn)生新的隨機(jī)數(shù)。

9 = /dev/urandom 更快,但是不夠安全的隨機(jī)數(shù)發(fā)生器。盡可能由用戶的輸入來產(chǎn)生隨機(jī)數(shù),

如果用戶停止所有動(dòng)作,則把已經(jīng)產(chǎn)生的隨機(jī)數(shù)做為種子來產(chǎn)生新的隨機(jī)數(shù)。

10 = /dev/aio 異步 I/O 通知接口

11 = /dev/kmsg 任何對(duì)該文件的寫入都將作為 printk 的輸出

1 block RAM disk

0 = /dev/ram0 第1個(gè) RAM disk (initrd只能使用ram0)

1 = /dev/ram1 第2個(gè) RAM disk

200 = /dev/ram200 第200個(gè) RAM disk

4 char TTY(終端)設(shè)備

0 = /dev/tty0 當(dāng)前虛擬控制臺(tái)

1 = /dev/tty1 第1個(gè)虛擬控制臺(tái)

63 = /dev/tty63 第63個(gè)虛擬控制臺(tái)

4 block 如果根文件系統(tǒng)以是以只讀方式掛載的,那么就不可能創(chuàng)建真正的設(shè)備節(jié)顫顫點(diǎn),

此時(shí)就使用該設(shè)備作為動(dòng)態(tài)分配的主(major)設(shè)備的別名

0 = /dev/root

5 char 其他 TTY 設(shè)備

0 = /dev/tty 當(dāng)前 TTY 設(shè)備

1 = /dev/console 系統(tǒng)控制臺(tái)

2 = /dev/ptmx 所有 PTY master 的復(fù)用器

7 char 虛擬控制臺(tái)捕捉設(shè)備(這些設(shè)備既允許讀也允許寫)

0 = /dev/vcs 當(dāng)前虛擬控制臺(tái)(vc)的文本內(nèi)容

1 = /dev/vcs1 tty1 的文本內(nèi)容

63 = /dev/vcs63 tty63 的文本內(nèi)容

128 = /dev/vcsa 當(dāng)前虛擬控制臺(tái)(vc)的文本/屬性內(nèi)容

129 = /dev/vcsa1 tty1 的文本/屬性內(nèi)容

191 = /dev/vcsa63 tty63 的文本/屬性內(nèi)容

7 block 回環(huán)設(shè)備(用一個(gè)普通的磁盤文件來模擬一個(gè)塊設(shè)備)

對(duì)回環(huán)設(shè)備的綁定由 mount(8) 或 losetup(8) 處理

0 = /dev/loop0 第1個(gè)回環(huán)設(shè)備

1 = /dev/loop1 第2個(gè)回環(huán)設(shè)備

8 block SCSI 磁盤(0-15)

0 = /dev/sda 第1個(gè) SCSI 磁盤(整個(gè)磁盤)

16 = /dev/sdb 第2個(gè) SCSI 磁盤(整個(gè)磁盤)

32 = /dev/sdc 第3個(gè) SCSI 磁盤(整個(gè)磁盤)

240 = /dev/sdp 第16個(gè) SCSI 磁盤(整個(gè)磁盤)

分區(qū)表示方法如下(以第3個(gè) SCSI 磁盤為例)

33 = /dev/sdc1 第1個(gè)分區(qū)

34 = /dev/sdc2 第2個(gè)分區(qū)

47 = /dev/sdc15 第15個(gè)分區(qū)

對(duì)于Linux/i386來說,分區(qū)1-4是主分區(qū),5-15是邏輯分區(qū)。

9 block Metadisk(RAID)設(shè)備

0 = /dev/md0 第1組 metadisk

1 = /dev/md1 第2組 metadisk

metadisk 驅(qū)動(dòng)用于將同一個(gè)文件系統(tǒng)分割到多個(gè)物理磁盤上。

10 char 非串口鼠標(biāo),各種雜項(xiàng)設(shè)備和特性

1 = /dev/psaux PS/2鼠標(biāo)

131 = /dev/temperature 機(jī)器內(nèi)部溫度

134 = /dev/apm_bios APM(高級(jí)電源管理) BIOS

135 = /dev/rtc 實(shí)時(shí)時(shí)鐘(Real Time Clock)

144 = /dev/nvram 非易失配置 RAM

162 = /dev/bus 系統(tǒng)管理總線(System Management Bus)

164 = /dev/ipmo Intel的智能平臺(tái)管理(Intelligent Platform Management)接口

173 = /dev/ipmikcs 智能平臺(tái)管理(Intelligent Platform Management)接口

175 = /dev/agpgart AGP圖形地址重映射表(Graphics Address Remapping Table)

182 = /dev/perfctr 性能監(jiān)視計(jì)數(shù)器

183 = /dev/hwrng 通用硬件隨機(jī)數(shù)發(fā)生器

184 = /dev/cpu/microcode CPU微代碼更新接口

186 = /dev/atomicps 進(jìn)程狀態(tài)數(shù)據(jù)的原子快照

188 = /dev/buios Bus(系統(tǒng)管理總線) BIOS

200 = /dev/net/tun TAP/TUN 網(wǎng)絡(luò)設(shè)備(TAP/TUN以軟件的方式實(shí)現(xiàn)了網(wǎng)絡(luò)設(shè)備)

TAP模擬了以太網(wǎng)幀(第二層),TUN模擬了IP包(第三層)。

202 = /dev/emd/ctl 增強(qiáng)型 Metadisk RAID (EMD) 控制器

220 = /dev/mptctl Message passing technology (MPT) control

223 = /dev/input/uinput 用戶層輸入設(shè)備驅(qū)動(dòng)支持

227 = /dev/mcelog X86_64 Machine Check Exception driver

228 = /dev/hpet HPET driver

229 = /dev/fuse Fuse(用戶空間的虛擬文件系統(tǒng))

231 = /dev/snapshot 系統(tǒng)內(nèi)存快照

232 = /dev/kvm 基于內(nèi)核的虛構(gòu)機(jī)(基于AMD SVM和Intel VT硬件虛擬技術(shù))

11 block SCSI CD-ROM 設(shè)備

0 = /dev/scd0 第1個(gè) SCSI CD-ROM

1 = /dev/scd1 第2個(gè) SCSI CD-ROM

13 char 核心輸入設(shè)備

32 = /dev/input/mouse0 第1個(gè)鼠標(biāo)

33 = /dev/input/mouse1 第2個(gè)鼠標(biāo)

62 = /dev/input/mouse30 第31個(gè)鼠標(biāo)

63 = /dev/input/mice 所有鼠標(biāo)的統(tǒng)一

64 = /dev/input/event0 第1個(gè)事件隊(duì)列

65 = /dev/input/event1 第2個(gè)事件隊(duì)列

95 = /dev/input/event1 第32個(gè)事件隊(duì)列

21 char 通用 SCSI 設(shè)備(通常是SCSI光驅(qū))

0 = /dev/sg0 第1個(gè)通用 SCSI 設(shè)備

1 = /dev/sg1 第2個(gè)通用 SCSI 設(shè)備

29 char 通用幀緩沖(frame buffer)設(shè)備

0 = /dev/fb0 第1個(gè)幀緩沖設(shè)備

1 = /dev/fb1 第2個(gè)幀緩沖設(shè)備

31 = /dev/fb31 第32個(gè)幀緩沖設(shè)備

30 char iBCS-2 兼容設(shè)備

0 = /dev/socksys 套接字訪問接口

1 = /dev/spx SVR3 本地 X 接口

32 = /dev/inet/ip 網(wǎng)絡(luò)訪問接口

33 = /dev/inet/icmp

34 = /dev/inet/ggp

35 = /dev/inet/ipip

36 = /dev/inet/tcp

37 = /dev/inet/egp

38 = /dev/inet/pup

39 = /dev/inet/udp

40 = /dev/inet/idp

41 = /dev/inet/rawip

此外,iBCS-2 還需要下面的連接必須存在

/dev/ip -> /dev/inet/ip

/dev/icmp -> /dev/inet/icmp

/dev/ggp -> /dev/inet/ggp

/dev/ipip -> /dev/inet/ipip

/dev/tcp -> /dev/inet/tcp

/dev/egp -> /dev/inet/egp

/dev/pup -> /dev/inet/pup

/dev/udp -> /dev/inet/udp

/dev/idp -> /dev/inet/idp

/dev/rawip -> /dev/inet/rawip

/dev/inet/arp -> /dev/inet/udp

/dev/inet/rip -> /dev/inet/udp

/dev/nfsd -> /dev/socksys

/dev/X0R -> /dev/null

36 char Netlink 支持

0 = /dev/route 路由, 設(shè)備更新, kernel to user

3 = /dev/fwmonitor Firewall packet 復(fù)制

59 char sf 防火墻模塊

0 = /dev/firewall 與 sf 內(nèi)核模塊通信

65 block SCSI 磁盤(16-31)

0 = /dev/sdq 第17個(gè) SCSI 磁盤(整個(gè)磁盤)

16 = /dev/sdr 第18個(gè) SCSI 磁盤(整個(gè)磁盤)

32 = /dev/sds 第19個(gè) SCSI 磁盤(整個(gè)磁盤)

240 = /dev/sdaf 第32個(gè) SCSI 磁盤(整個(gè)磁盤)

66 block SCSI 磁盤(32-47)

0 = /dev/sdag 第33個(gè) SCSI 磁盤(整個(gè)磁盤)

16 = /dev/sdah 第34個(gè) SCSI 磁盤(整個(gè)磁盤)

32 = /dev/sdai 第35個(gè) SCSI 磁盤(整個(gè)磁盤)

240 = /dev/sdav 第48個(gè) SCSI 磁盤(整個(gè)磁盤)

89 char I2C 總線接口

0 = /dev/i2c-0 第1個(gè) I2C 適配器

1 = /dev/i2c-1 第2個(gè) I2C 適配器

98 block 用戶模式下的虛擬塊設(shè)備(分區(qū)處理方式與 SCSI 磁盤相同)

0 = /dev/ubda 第1個(gè)用戶模式塊設(shè)備

16 = /dev/udbb 第2個(gè)用戶模式塊設(shè)備

103 block 審計(jì)(Audit)設(shè)備

0 = /dev/audit 審計(jì)(Audit)設(shè)備

char Unix98 PTY master

這些設(shè)備不應(yīng)當(dāng)存在設(shè)備節(jié)點(diǎn),而應(yīng)當(dāng)通過 /dev/ptmx 接口訪問。

char Unix98 PTY slave

這些設(shè)備節(jié)點(diǎn)是自動(dòng)生成的(伴有適當(dāng)?shù)臋?quán)限和模式),不能手動(dòng)創(chuàng)建。

方法是通過使用適當(dāng)?shù)?mount 選項(xiàng)(通常是:mode=0620,gid=)

將 devpts 文件系統(tǒng)掛載到 /dev/pts 目錄即可。

0 = /dev/pts/0 第1個(gè) Unix98 PTY slave

1 = /dev/pts/1 第2個(gè) Unix98 PTY slave

153 block Enhanced Metadisk RAID (EMD) 存儲(chǔ)單元(分區(qū)處理方式與 SCSI 磁盤相同)

0 = /dev/emd/0 第1個(gè)存儲(chǔ)單元

1 = /dev/emd/0p1 第1個(gè)存儲(chǔ)單元的第1個(gè)分區(qū)

2 = /dev/emd/0p2 第1個(gè)存儲(chǔ)單元的第2個(gè)分區(qū)

15 = /dev/emd/0p15 第1個(gè)存儲(chǔ)單元的第15個(gè)分區(qū)

16 = /dev/emd/1 第2個(gè)存儲(chǔ)單元

32 = /dev/emd/2 第3個(gè)存儲(chǔ)單元

240 = /dev/emd/15 第16個(gè)存儲(chǔ)單元

180 char USB 字符設(shè)備

96 = /dev/u/hiddev0 第1個(gè)USB人機(jī)界面設(shè)備(鼠標(biāo)/鍵盤/游戲桿/手寫版等人操作計(jì)算機(jī)的設(shè)備)

111 = /dev/u/hiddev15 第16個(gè)USB人機(jī)界面設(shè)備

180 block USB 塊設(shè)備(U盤之類)

0 = /dev/uba 第1個(gè)USB 塊設(shè)備

8 = /dev/ubb 第2個(gè)USB 塊設(shè)備

16 = /dev/ubc 第3個(gè)USB 塊設(shè)備

192 char 內(nèi)核 profiling 接口

0 = /dev/profile Profiling 控制設(shè)備

1 = /dev/profile0 CPU 0 的 Profiling 設(shè)備

2 = /dev/profile1 CPU 1 的 Profiling 設(shè)備

193 char 內(nèi)核事件跟蹤接口

0 = /dev/trace 跟蹤控制設(shè)備

1 = /dev/trace0 CPU 0 的跟蹤設(shè)備

2 = /dev/trace1 CPU 1 的跟蹤設(shè)備

195 char Nvidia 圖形設(shè)備(比如顯卡)

0 = /dev/nvidia0 第1個(gè) Nvidia 卡

1 = /dev/nvidia1 第2個(gè) Nvidia 卡

255 = /dev/nvidiactl Nvidia 卡控制設(shè)備

202 char 特定于CPU模式的寄存器(model-specific register,MSR)

0 = /dev/cpu/0/msr CPU 0 的 MSRs

1 = /dev/cpu/1/msr CPU 1 的 MSRs

203 char CPU CPUID 信息

0 = /dev/cpu/0/cpuid CPU 0 的 CPUID

1 = /dev/cpu/1/cpuid CPU 1 的 CPUID

===================================================================

這部分詳細(xì)說明一些應(yīng)該或可能存在于 /dev 目錄之外的文件。

鏈接更好使用與這里完全相同的格式(絕對(duì)路徑或相對(duì)路徑)。

究竟是使用硬鏈接(hard)還是軟連接(symbolic)取決于不同的設(shè)備。

必須的鏈接

必須在所有的系統(tǒng)上都存在這些連接:

鏈接 目標(biāo) 鏈接類型 簡(jiǎn)要說明

/dev/fd /proc/self/fd symbolic 文件描述府

/dev/stdin fd/0 symbolic 標(biāo)準(zhǔn)輸入文件描述府

/dev/stdout fd/1 symbolic 標(biāo)準(zhǔn)輸出文件描述符

/dev/stderr fd/2 symbolic 標(biāo)準(zhǔn)錯(cuò)誤文件描述符

/dev/nfsd socksys symbolic 僅為 iBCS-2 所必須

/dev/X0R null symbolic 僅為 iBCS-2 所必須

/dev/X0R 是 —

推薦的鏈接

推薦在所有的系統(tǒng)上都存在這些連接:

鏈接 目標(biāo) 鏈接類型 簡(jiǎn)要說明

/dev/core /proc/kcore symbolic 為了向后兼容

/dev/ramdisk ram0 symbolic 為了向后兼容

/dev/ftape qft0 symbolic 為了向后兼容

/dev/bttv0 video0 symbolic 為了向后兼容

/dev/radio radio0 symbolic 為了向后兼容

/dev/i2o* /dev/i2o/* symbolic 為了向后兼容

/dev/scd? sr? hard 代替 SCSI CD-ROM 的名字

本地定義的鏈接

下面的鏈接很可能需要根據(jù)機(jī)器的實(shí)際硬件配置創(chuàng)建其中的一部分甚至全部。

這些鏈接僅僅是為了迎合習(xí)慣用法,它們既非必須也非推薦。

鏈接 目標(biāo) 鏈接類型 簡(jiǎn)要說明

/dev/mouse mouse port symbolic 當(dāng)前鼠標(biāo)

/dev/tape tape device symbolic 當(dāng)前磁帶

/dev/cdrom CD-ROM device symbolic 當(dāng)前CD-ROM

/dev/cdwriter CD-writer symbolic 當(dāng)前CD-writer

/dev/scanner scanner symbolic 當(dāng)前掃描儀

/dev/modem modem port symbolic 當(dāng)前調(diào)制解調(diào)器

/dev/root root device symbolic 當(dāng)前根文件系統(tǒng)所在設(shè)備

/dev/swap swap device symbolic 當(dāng)前swap所在設(shè)備

/dev/modem 不應(yīng)當(dāng)用于能夠同時(shí)支持呼入和呼出的modem,因?yàn)橥鶗?huì)導(dǎo)致鎖文件問題。

如果存在 /dev/modem ,那么它應(yīng)當(dāng)指向一個(gè)恰當(dāng)?shù)闹?TTY 設(shè)備。

對(duì)于SCSI設(shè)備,

/dev/tape 和 /dev/cdrom 應(yīng)該分別指向”cooked”設(shè)備 /dev/st* 和 /dev/sr* ;

而 /dev/cdwriter 和 /dev/scanner 應(yīng)當(dāng)分別指向恰當(dāng)?shù)?/dev/sg* 。

/dev/mouse 可以指向一個(gè)主串行 TTY 設(shè)備、一個(gè)硬件鼠標(biāo)、

或者一個(gè)對(duì)應(yīng)鼠標(biāo)驅(qū)動(dòng)程序的套接字(例如 /dev/gpmdata)。

套接字和管道

持久套接字和命名管道可以存在于 /dev 中。常見的有:

/dev/printer socket lpd 本地套接字

/dev/log socket syslog 本地套接字

/dev/gpmdata socket gpm 鼠標(biāo)多路復(fù)用器(multiplexer)

/dev/gpmctl socket (LFS-LiveCD中出現(xiàn))

/dev/initctl fifo pipe init 監(jiān)聽它并從中獲取信息(用戶與 init 進(jìn)程交互的通道)

掛載點(diǎn)

以下名稱被保留用于掛載特殊的文件系統(tǒng)。

這些特殊的文件系統(tǒng)只提供內(nèi)核界面而不提供標(biāo)準(zhǔn)的設(shè)備節(jié)點(diǎn)。

/dev/pts devpts PTY slave 文件系統(tǒng)

/dev/shm tmpfs 提供對(duì) POSIX 共享內(nèi)存的直接訪問

===================================================================

終端(或TTY)設(shè)備是一種特殊的字符設(shè)備。終端設(shè)備是可以在會(huì)話中扮演控制終端角色的任何設(shè)備,

包括:虛擬控制臺(tái)、串行接口(已廢棄)、偽終端(PTY)。

所有的終端設(shè)備共享一個(gè)通用的功能:line discipline,

它既包含通用的終端 line discipline 也包含SLIP和PPP模式。

所有的終端設(shè)備的命名都很相似。這部分內(nèi)容將解釋命名規(guī)則和各種類型的TTY(終端)的使用。

需要注意的是這些命名習(xí)慣包含了幾個(gè)歷史遺留包袱。

其中的一些是Linux所特有的,另一些則是繼承自其他系統(tǒng),

還有一些反映了Linux在成長(zhǎng)過程中拋棄了原來借用自其它系統(tǒng)的一些習(xí)慣。

井號(hào)(#)在設(shè)備名里表示一個(gè)無前導(dǎo)零的十進(jìn)制數(shù)。

虛擬控制臺(tái)(Virtual console)和控制臺(tái)設(shè)備(console device)

虛擬控制臺(tái)是在系統(tǒng)視頻監(jiān)視器上全屏顯示的終端。

虛擬控制臺(tái)被命名為編號(hào)從 /dev/tty1 開始的 /dev/tty# 。

/dev/tty0 是當(dāng)前虛擬控制臺(tái)。

/dev/tty0 用于在不能使用幀緩沖設(shè)備(/dev/fb*)的機(jī)器上存取系統(tǒng)視頻卡,

注意,不要將 /dev/console 用于此目的。

/dev/console 由內(nèi)核管理,系統(tǒng)消息將被發(fā)送到這里。

單用戶模式下必須允許 login 使用 /dev/console 。

串行接口(已廢棄)

這里所說的”串行接口”是指 RS-232 串行接口和任何模擬這種接口的設(shè)備,

不管是在硬件(例如調(diào)制解調(diào)器)還是在軟件(例如ISDN驅(qū)動(dòng))中模擬。

在linux中的每一個(gè)串行接口都有兩個(gè)設(shè)備名:

主設(shè)備或呼入(callin)設(shè)備、交替設(shè)備或呼出(callout)設(shè)備。

設(shè)備類型之間使用字母的大小寫進(jìn)行區(qū)分。

比如,對(duì)于任意字母X,”tty”設(shè)備名為 /dev/ttyX# ,而”cu”設(shè)備名則為 /dev/cux# 。

由于歷史原因,/dev/ttyS# 和 /dev/ttyC# 分別等價(jià)于 /dev/cua# 和 /dev/cub# 。

名稱 /dev/ttyQ# 和 /dev/cuq# 被保留為本地使用。

偽終端(PTY)

偽終端用于創(chuàng)建登陸會(huì)話或提供其它功能,

比如通過 TTY line discipline (包括SLIP或者PPP功能)來處理任意的數(shù)據(jù)生成。

每一個(gè) PTY 都有一個(gè)master端和一個(gè)slave端。按照 System V/Unix98 的 PTY 命名方案,

所有master端共享同一個(gè) /dev/ptmx 設(shè)備節(jié)點(diǎn)(打開它內(nèi)核將自動(dòng)給出一個(gè)未分配的PTY),

所有slave端都位于 /dev/pts 目錄下,名為 /dev/pts/# (內(nèi)核會(huì)根據(jù)需要自動(dòng)生成和刪除它們)。

一旦master端被打開,相應(yīng)的slave設(shè)備就可以按照與 TTY 設(shè)備完全相同的方式使用。

master設(shè)備與slave設(shè)備之間通過內(nèi)核進(jìn)行連接,等價(jià)于擁有 TTY 功能的雙向管道(pipe)。

===============================

你可能會(huì)很奇怪,為什么沒有 /dev/hda 這樣的設(shè)備,難道不常用么?

linux tap設(shè)備 診斷的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux tap設(shè)備 診斷,Linux Tap設(shè)備診斷:快速確定問題原因,如何選擇一個(gè) Linux Tracer,在linux中是不是能看到設(shè)備節(jié)點(diǎn)就說明設(shè)備可以被訪問了解決思路的信息別忘了在本站進(jìn)行查找喔。

創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級(jí)標(biāo)準(zhǔn)機(jī)房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機(jī)柜接入千兆交換機(jī),能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運(yùn)行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。


當(dāng)前名稱:LinuxTap設(shè)備診斷:快速確定問題原因(linuxtap設(shè)備診斷)
當(dāng)前地址:http://m.5511xx.com/article/cccdcod.html